first working version

This commit is contained in:
howard
2025-10-22 20:14:31 +08:00
parent c9767b830b
commit 8dc869634e
118 changed files with 22518 additions and 0 deletions

35
docs/deploy-minimal.md Normal file
View File

@@ -0,0 +1,35 @@
# Minimal Deployment (Nginx + Django + Angular)
## Overview
Serve Angular as static assets via Nginx and proxy `/api/` to Django. Use file system storage on a single host.
## Build Outputs
- Angular build → `/var/www/app` (or similar)
- Django app → `/srv/api` (Gunicorn/Uvicorn on 127.0.0.1:8000)
- Data folders: `/srv/data/input`, `/srv/data/attempts`, `/srv/data/output`, `/srv/data/progress`, `/srv/data/manifest.json`
## Nginx (concept)
- `/` → Angular index.html + assets
- `/api/` → proxy to Django (127.0.0.1:8000)
- Cache static; no caching for `/api/`
## Django Configuration
- Env vars for folder paths (INPUT_DIR, ATTEMPTS_DIR, OUTPUT_DIR, PROGRESS_DIR, MANIFEST_FILE)
- CORS/CSRF: allow Angular origin
- Logging to files under `/var/log/app`
## Health
- `/api/health` endpoint returns `{ ok: true }`
- Nginx upstream failover not required (single host)
## Backups
- Periodic tar of `/srv/data` (retain N days)
## TLS
- Terminate HTTPS at Nginx (e.g., with Let's Encrypt)
## Rollout Steps (high level)
1. Build Angular → copy to web root
2. Run Django server → behind Nginx
3. Create data folders and set permissions
4. Verify `/api/exams` and basic start/submit flows