# AirShelf Backend All backend code lives under `AirShelf/core/backend` by project decision. Architecture and module boundaries: [ARCHITECTURE.md](ARCHITECTURE.md). ## Local bootstrap ```bash cd /Users/maidong/Desktop/zyc/qiyuan_gitea/AirShelf/core/backend python3.12 -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env python manage.py migrate python manage.py runserver 0.0.0.0:8000 ``` Start workers in separate terminals: ```bash cd /Users/maidong/Desktop/zyc/qiyuan_gitea/AirShelf/core/backend source .venv/bin/activate celery -A airshelf worker -l info -P threads -c 4 -Q celery,airshelf.quick,airshelf.local # 建议带 airshelf.quick;本机共用远程 broker 时务必带 airshelf.local(见 CREATION_AGENT_TASK_QUEUE),否则整理方案会被远程 worker 偷走 ``` `ffmpeg` must be available on `PATH` for Stage5 export jobs. ## Runtime layout - Django project: `airshelf` - Domain apps: `apps/*` - Settings module: `airshelf.settings.development` - Celery app: `airshelf.celery` Secrets must be supplied by environment variables or `.env`; never commit values from `account.md`. ## Useful commands ```bash python manage.py check python manage.py makemigrations --check --dry-run python manage.py migrate python manage.py bootstrap_volcano_models python manage.py test apps.accounts apps.projects apps.billing ```