- Docker + Docker Compose 2.24+
- (Optional, local dev) Python 3.12+, uv, Node 22/24 LTS, PostgreSQL 18
git clone git@github.com:skilluv-community/starter-fullstack-python.git
cd starter-fullstack-python
cp .env.example .env
docker compose up --buildAlembic runs alembic upgrade head at startup, so the DB schema is applied automatically.
- Frontend at http://localhost:5173
- Backend health at http://localhost:3001/health
- OpenAPI docs at http://localhost:3001/docs
- Backend (
backend/): edit code underbackend/app/. uvicorn--reloadisn't the default in the container — for hot-reload, runuv run uvicorn app.main:app --reloadlocally instead. - Frontend (
frontend/): Vite HMR reloads automatically. - DB schema: edit models under
backend/app/models/then generate a new migration:
cd backend
uv run alembic revision --autogenerate -m "your change"Then commit the file under backend/alembic/versions/.
make testBackend tests use FastAPI's TestClient — no live DB required by default.
Point Coolify at the repo. In production:
- Turn off
uvicorn --reload(already off) - Set a strong
POSTGRES_PASSWORD - Restrict
CORS_ORIGINto your frontend URL