Quick Start¶
Prerequisites¶
- Docker Engine + Docker Compose plugin (
docker compose) - At least 8 GB RAM (16 GB recommended)
- 20+ GB free disk
1. Configure Environment¶
Edit .env and set at minimum:
CMS_DB_PASSWORDSECRET_KEYFLOODPROOFS_SFTP_*credentialsENSEMBLE_FTP_*credentialsWRF_FTP_*credentials
If using Drive sync:
- Place Google service account credentials at
eafw_jobs/credentials/google-credentials.json - Set
DRIVE_FOLDER_ID
2. Start Services¶
3. Verify¶
Common Operations¶
Logs¶
docker compose logs -f
docker compose logs -f eafw_cms
docker compose logs -f eafw_api
docker compose logs -f eafw_jobs
Stop / Restart¶
Django Admin and Migrations¶
docker compose exec eafw_cms python manage.py migrate
docker compose exec eafw_cms python manage.py createsuperuser
Run Jobs Manually¶
docker compose exec eafw_jobs python -m pyfloodwatch.floodproofs_sync
docker compose exec eafw_jobs python -m pyfloodwatch.ensemble_sync
docker compose exec eafw_jobs python -m pyfloodwatch.wrf_rainfall_job
Database Backup / Restore¶
Troubleshooting¶
CMS Login Loop on Staging¶
Jobs Failing Due to Credentials¶
- Confirm
.envhas validFLOODPROOFS_SFTP_*,ENSEMBLE_FTP_*, andWRF_FTP_* - If
SYNC_SOURCE=drive, verifyDRIVE_FOLDER_IDand credential file path