chore: project scaffolding — Docker, nginx, dependencies

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 21:58:58 +05:00
parent ebd86cd6e8
commit 296538b0ea
7 changed files with 303 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
services:
app:
build: ./backend
env_file: .env
ports:
- "8000:8000"
volumes:
- uploads:/app/uploads
- exports:/app/exports
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
command: >
sh -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"
worker:
build: ./backend
env_file: .env
volumes:
- uploads:/app/uploads
- exports:/app/exports
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
command: celery -A app.tasks.celery_app worker --loglevel=info --concurrency=2
beat:
build: ./backend
env_file: .env
depends_on:
redis:
condition: service_healthy
command: celery -A app.tasks.celery_app beat --loglevel=info
redis:
image: redis:7-alpine
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
db:
image: postgres:16-alpine
env_file: .env
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $POSTGRES_USER -d $POSTGRES_DB"]
interval: 5s
timeout: 3s
retries: 5
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./frontend/dist:/usr/share/nginx/html
depends_on:
- app
volumes:
pgdata:
uploads:
exports: