Commit Graph

10 Commits

Author SHA1 Message Date
root
72036cb2c1 docs: sync latest doc updates to repo 2026-05-21 03:50:53 +08:00
root
e22644b32b docs: rewrite README for SIDES project
Replace template boilerplate with project description, quick start,
documentation index linking to docs/, stack summary, and project structure.
2026-05-21 03:39:23 +08:00
root
6863f39a24 docs: rewrite all documentation to reflect current state
- Remove adminer references (service was removed)
- Remove mermaid diagrams (ASCII only)
- Remove hardcoded credentials (use env var references)
- Update all Docker references to 4-container setup (app, postgres, web, pgadmin)
- Document env-based admin credentials (ADMIN_EMAIL/ADMIN_PASSWORD)
- Document parameterized queries (SQL injection fixed)
- Document FCM topic routing by stationtype+level
- Document siren stationtype=3 fix in sidesdecode.py
- Document idempotent seeder (firstOrCreate)
- Document reverse proxy setup in deployment guide
- Remove Makefile references (Docker Compose only)
2026-05-21 02:59:32 +08:00
root
c1b2a8d553 docs: rewrite deployment guide for Docker-only, add reverse proxy section
- Remove adminer service (not used with PostgreSQL)
- Rewrite 03-DEPLOYMENT.md: Docker Compose is the only supported method
- Add reverse proxy examples (Nginx, Caddy, Cloudflare Tunnel)
- Document trusted proxy configuration for Laravel
- Add production checklist and autoscript env var documentation
- Remove all Makefile references (not recommended)
2026-05-21 02:46:41 +08:00
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