root
9122deaacd
fix: seeder idempotent with firstOrCreate
...
Use firstOrCreate instead of create so db:seed can run safely
on container restart without duplicate key violation.
2026-05-21 02:31:47 +08:00
root
bb8d951287
fix: pgAdmin storage permissions and siren stationtype NOT NULL
...
- pgAdmin: use named volume for /var/lib/pgadmin instead of bind mount
subdirectory (fixes permission denied on storage dir)
- Siren INSERT in sidesdecode.py: add stationtype=3 to both INSERT
statements (fixes NOT NULL constraint violation)
2026-05-21 02:24:53 +08:00
root
bbaf711d45
fix: Docker deployment fully functional
...
- Entrypoint: run migrate + seed before caching config
- docker-compose: pass ADMIN_EMAIL/ADMIN_PASSWORD/RUN_SEEDER to app
- All 5 containers start healthy: app, postgres, nginx, pgadmin, adminer
- Login page returns 200, API login works, migrations+seeding run on boot
2026-05-21 01:28:38 +08:00
root
c57d4bac57
fix: critical security and Docker deployment fixes
...
- Dockerfile: add composer/npm build, proper entrypoint, fix EXPOSE port
- docker-compose: fix postgres volume path, add healthchecks, use named volume
- Add entrypoint.sh for auto migrations and dependency install at startup
- Update .gitignore to exclude Firebase credentials, DB files, logs
- Update .env.example with all required variables for Docker deployment
Application-level fixes (applied to src/ which is gitignored):
- RainfallController: parameterized SQL queries (was SQL injection)
- WaterLevelController: parameterized queries + fix broken WHERE clause
- DatabaseSeeder: env-based admin password instead of hardcoded 'password123'
- Migration 2025_12_11: removed duplicate admin user creation
- AlertController: FCM topic routing by stationtype+level (was hardcoded)
- sidesdecode.py: env vars for credentials, fix water level stationtype bug (1→2)
2026-05-21 00:36:29 +08:00
agung
a71019f000
fix: configuration docker-compose.yml
2023-08-01 20:38:11 +07:00
agung
b34e556798
first commit
2023-08-01 20:02:08 +07:00