Commit Graph

16 Commits

Author SHA1 Message Date
lukas 360e8f9eaf Make container more robust (#95)
Django CI/CD / build-and-push (push) Has been cancelled
Django CI/CD / test (push) Has been cancelled
Reviewed-on: #95

12 files changed (+149, -66)
Key changes:
1. Monolithic container — Replaced the two-service compose setup (backend + frontend/caddy) with a single timetracker container. Caddy is now built into the image rather than running as a separate container.
2. Supervisord process manager — Added supervisor.conf and installed supervisor in the Dockerfile. entrypoint.sh now delegates to supervisord to manage three processes: Caddy, Gunicorn, and Qcluster — replacing manual trap/signaling logic.
3. Bundled Caddy — The Dockerfile now downloads and installs Caddy v2.9.1 directly into the image (/usr/local/bin/caddy). The Caddyfile was updated to use reverse_proxy localhost:8001 and serves static files from /home/timetracker/app/static.
4. Configurable deployment — Added .env.example with configurable environment variables: TZ, PUID/PGID, TIMETRACKER_EXTERNAL_PORT, DATA_DIR, CSRF_TRUSTED_ORIGINS. docker-compose.yml now references these with sensible defaults.
5. UID/GID flexibility — entrypoint.sh uses usermod/groupmod at startup to remap the timetracker user to the host-specified PUID/PGID, avoiding permission issues with mounted volumes.
6. Database & static files — settings.py now respects DATA_DIR env var for the SQLite database path. STATIC_ROOT changed to BASE_DIR / "static".
7. Dev improvements — New Caddyfile.dev (with browse enabled for static files) and updated Makefile dev-prod target runs Caddy alongside Django in development.
8. Tests — Re-enabled the test step in the Docker build GitHub Actions workflow.
2026-05-12 16:29:34 +00:00
lukas 710a0fc5bc Update entrypoint.sh
Django CI/CD / test (push) Successful in 23s
Django CI/CD / build-and-push (push) Successful in 57s
2026-01-27 21:30:04 +01:00
lukas 19676f8441 Implement converting prices (#79)
Django CI/CD / test (push) Successful in 1m17s
Django CI/CD / build-and-push (push) Successful in 2m10s
Reviewed-on: #79
2024-11-11 16:36:57 +00:00
lukas 787ee8640f Try to shutdown container gracefully and faster
continuous-integration/drone/push Build is passing
2023-10-01 19:57:15 +02:00
lukas d40612af72 Remove Caddy
continuous-integration/drone/push Build is passing
2023-01-20 17:15:53 +01:00
lukas 18e8f93261 Additional fixes
continuous-integration/drone/push Build is passing
2023-01-20 15:06:42 +01:00
lukas 56e5dfaa03 Rename project, part 2 (#42)
continuous-integration/drone/push Build is failing
Reviewed-on: #42
2023-01-20 13:37:46 +00:00
lukas 2f00be455d Rename project (#41)
continuous-integration/drone/push Build is passing
The old naming scheme was causing confusion and probably errors.

Reviewed-on: #41
2023-01-19 19:35:25 +00:00
lukas 751182df52 Emit gunicorn logs to stdin and stderr 2023-01-08 15:48:53 +01:00
lukas 8e1c670ffd Fix collectstaticfiles causing error
continuous-integration/drone/push Build is passing
Fixes #23
2023-01-08 15:46:09 +01:00
lukas 1ccfdc321a Start caddy in the background 2023-01-07 21:59:17 +01:00
lukas 2939b4a515 Change to gunicorn
continuous-integration/drone/push Build is passing
2023-01-07 21:09:47 +01:00
lukas d029fda896 Collect static files in entrypoint.sh
continuous-integration/drone/push Build is passing
2023-01-07 18:10:36 +01:00
lukas e6b5804e37 Update infra 2023-01-05 21:56:57 +01:00
lukas eec8f1b9f5 Properly fix Dockerfile
continuous-integration/drone/push Build is passing
2023-01-03 14:29:39 +01:00
lukas 811e7771cc Run Dockerfile via entrypoint.sh
continuous-integration/drone/push Build is passing
2023-01-03 13:04:05 +01:00