ai insight rework #2
This commit is contained in:
1 parent
9d76f54d33
commit
e1987d6999
39 files changed
+2311
-830
No files matched your search
@@ -24,12 +24,12 @@ Deploy **dashboard-cpsp** with Docker Compose. Layout mirrors the legacy `dashbo
|
||||
* 15432 on host → 5432 in container (SSH tunnel / DBeaver)
|
||||
```
|
||||
|
||||
| Container | Image / build | Host port | Role |
|
||||
| ---------- | ------------------ | ---------------- | ----------------------------- |
|
||||
| frontend | `docker/Dockerfile.web` | 80 → 80 | React SPA + Nginx API proxy |
|
||||
| api | `docker/Dockerfile.api` | 18000 → 8000 | Gunicorn, migrations, static |
|
||||
| cron | same as api | — | Scheduled management commands |
|
||||
| database | postgres:16-alpine | 15432 → 5432 | PostgreSQL |
|
||||
| Container | Image / build | Host port | Role |
|
||||
| --------- | ----------------------- | ------------ | ----------------------------- |
|
||||
| frontend | `docker/Dockerfile.web` | 80 → 80 | React SPA + Nginx API proxy |
|
||||
| api | `docker/Dockerfile.api` | 18000 → 8000 | Gunicorn, migrations, static |
|
||||
| cron | same as api | — | Scheduled management commands |
|
||||
| database | postgres:16-alpine | 15432 → 5432 | PostgreSQL |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -82,16 +82,16 @@ Open **http://localhost** in a browser.
|
||||
|
||||
## Configuration files (`docker/`)
|
||||
|
||||
| File | Purpose |
|
||||
| ---- | ------- |
|
||||
| `Dockerfile.web` | Frontend image (Vite + Nginx) |
|
||||
| `Dockerfile.api` | Backend image (Django + Gunicorn) |
|
||||
| `nginx.conf` | Nginx proxy config for frontend |
|
||||
| `entrypoint-api.sh` | API container startup |
|
||||
| `entrypoint-cron.sh` | Cron container startup |
|
||||
| `crontab` | Fallback schedule; runtime regenerated from `DASHBOARD_PUBLISH_*` |
|
||||
| `.env.example` | Compose env template → copy to project root `.env` |
|
||||
| `compose.override.local.example` | Optional local Postgres port override |
|
||||
| File | Purpose |
|
||||
| -------------------------------- | ----------------------------------------------------------------- |
|
||||
| `Dockerfile.web` | Frontend image (Vite + Nginx) |
|
||||
| `Dockerfile.api` | Backend image (Django + Gunicorn) |
|
||||
| `nginx.conf` | Nginx proxy config for frontend |
|
||||
| `entrypoint-api.sh` | API container startup |
|
||||
| `entrypoint-cron.sh` | Cron container startup |
|
||||
| `crontab` | Fallback schedule; runtime regenerated from `DASHBOARD_PUBLISH_*` |
|
||||
| `.env.example` | Compose env template → copy to project root `.env` |
|
||||
| `compose.override.local.example` | Optional local Postgres port override |
|
||||
|
||||
## Configuration
|
||||
|
||||
@@ -99,18 +99,18 @@ Compose reads variables from a root `.env` file. Template: `docker/.env.example`
|
||||
|
||||
Important production values:
|
||||
|
||||
| Variable | Purpose |
|
||||
| -------- | ------- |
|
||||
| `SECRET_KEY` | Django secret — use a long random string |
|
||||
| `DB_PASSWORD` | PostgreSQL password |
|
||||
| `CSRF_TRUSTED_ORIGINS` | Must include your public UI origin (e.g. `https://dashboard.example.com`) |
|
||||
| `CORS_ALLOWED_ORIGINS` | Same as above if the SPA is on a different origin |
|
||||
| Variable | Purpose |
|
||||
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| `SECRET_KEY` | Django secret — use a long random string |
|
||||
| `DB_PASSWORD` | PostgreSQL password |
|
||||
| `CSRF_TRUSTED_ORIGINS` | Must include your public UI origin (e.g. `https://dashboard.example.com`) |
|
||||
| `CORS_ALLOWED_ORIGINS` | Same as above if the SPA is on a different origin |
|
||||
| `KARUNG_WEB_ADMIN_BASE_URL` | External karung service; default `http://host.docker.internal:5000` reaches the host from containers |
|
||||
| `BOOTSTRAP_ADMIN_USER` | Superadmin username for `bootstrap_admin` (default `admin`) |
|
||||
| `BOOTSTRAP_ADMIN_PASSWORD` | Superadmin password for `bootstrap_admin` (required for production bootstrap) |
|
||||
| `BOOTSTRAP_STAFF_USER` | Optional staff username; leave empty to skip staff creation |
|
||||
| `BOOTSTRAP_STAFF_PASSWORD` | Staff password (required when `BOOTSTRAP_STAFF_USER` is set) |
|
||||
| `SITE_API_KEY` | Optional fixed API key for scripts (hashed at rest) |
|
||||
| `BOOTSTRAP_ADMIN_USER` | Superadmin username for `bootstrap_admin` (default `admin`) |
|
||||
| `BOOTSTRAP_ADMIN_PASSWORD` | Superadmin password for `bootstrap_admin` (required for production bootstrap) |
|
||||
| `BOOTSTRAP_STAFF_USER` | Optional staff username; leave empty to skip staff creation |
|
||||
| `BOOTSTRAP_STAFF_PASSWORD` | Staff password (required when `BOOTSTRAP_STAFF_USER` is set) |
|
||||
| `SITE_API_KEY` | Optional fixed API key for scripts (hashed at rest) |
|
||||
|
||||
Wagtail admin is proxied at **http://localhost/admin/** (through Nginx → Django).
|
||||
|
||||
|
||||
Reference in new issue
Block a user