root
d68afb7d03
Add docker health checks, CSV import docs
2026-05-21 11:21:20 +08:00
root
0937d14faf
fix: set timezone to Asia/Kuala_Lumpur on all containers
...
Add TZ=Asia/Kuala_Lumpur and PGTZ to all services, mount
/etc/localtime read-only so log timestamps match local time.
2026-05-21 07:43:17 +08:00
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