web-bootcamp-2026-backend
Описание
Языки
- Python96,1%
- Dockerfile3,4%
- Mako0,5%
Quick setup: Run the interactive setup script to choose your deployment configuration:
Or directly specify the deployment type: , , or .
The script copies the right files for your deployment scenario. Here's what each option sets up:
Option 1: Local development with Uvicorn
Best for: Development and testing
Copies:
→scripts/local_with_uvicorn/DockerfileDockerfile→scripts/local_with_uvicorn/docker-compose.ymldocker-compose.yml→scripts/local_with_uvicorn/.env.examplesrc/.env
Sets up Uvicorn with auto-reload enabled. The example environment values work fine for development.
Manual setup: or copy the files above manually.
Option 2: Staging with Gunicorn managing Uvicorn workers
Best for: Staging environments and load testing
Copies:
→scripts/gunicorn_managing_uvicorn_workers/DockerfileDockerfile→scripts/gunicorn_managing_uvicorn_workers/docker-compose.ymldocker-compose.yml→scripts/gunicorn_managing_uvicorn_workers/.env.examplesrc/.env
Sets up Gunicorn managing multiple Uvicorn workers for production-like performance testing.
Warning
Change
and passwords in theSECRET_KEYfile for staging environments..env
Manual setup: or copy the files above manually.
Option 3: Production with NGINX
Best for: Production deployments
Copies:
→scripts/production_with_nginx/DockerfileDockerfile→scripts/production_with_nginx/docker-compose.ymldocker-compose.yml→scripts/production_with_nginx/.env.examplesrc/.env
Sets up NGINX as reverse proxy with Gunicorn + Uvicorn workers for production.
Caution
You MUST change
, all passwords, and sensitive values in theSECRET_KEYfile before deploying!.env
Manual setup: or copy the files above manually.
Start your application:
Access your app:
- Local: http://127.0.0.1:8000 (auto-reload enabled) → API docs
- Staging: http://127.0.0.1:8000 (production-like performance)
- Production: http://localhost (NGINX reverse proxy)
Next steps
Create your first admin user:
Run database migrations (if you add models):
Test background jobs:
Or run locally without Docker: