Skip to content

apogee new

Generates a new project from the official Apogee scaffold.

Synopsis

Bash
apogee new <name> [options]

Arguments

Argument Description
<name> Project directory name (also becomes the Python package name in src/). Use kebab-case.

Common options

Option Default Description
--path <dir> ./ Where to place the generated project
--db <engine> postgres Default DB engine: postgres, mysql, mongo (more via add:*)
--no-docker off Skip generating Docker assets (advanced)

Run apogee new --help for the live list β€” flags evolve between releases.

Example

Bash
apogee new shop-api --db postgres
cd shop-api
apogee up

What gets generated

The scaffold creates roughly 31 files spanning:

Text Only
shop-api/
β”œβ”€β”€ docker-compose.yml          # postgres + app
β”œβ”€β”€ Dockerfile.dev              # dev image
β”œβ”€β”€ alembic.ini
β”œβ”€β”€ apogee.yml                  # project metadata read by future apogee commands
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ domain/
β”‚   β”œβ”€β”€ application/
β”‚   β”œβ”€β”€ infrastructure/
β”‚   └── presentation/
β”‚       β”œβ”€β”€ api/                # FastAPI routers
β”‚       β”œβ”€β”€ cli/                # custom CLIs (optional)
β”‚       └── container.py        # Dishka DI container
β”œβ”€β”€ migrations/                 # Alembic
└── tests/

The generated project is standalone β€” it depends on apogee-core (and any modules you opt in to) as normal pip packages. It does not need this CLI at runtime.