lukas 360e8f9eaf
Django CI/CD / build-and-push (push) Has been cancelled
Django CI/CD / test (push) Has been cancelled
Make container more robust (#95)
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
2024-11-09 11:56:20 +01:00
2023-01-16 19:46:15 +01:00
2025-03-22 20:58:30 +01:00
2026-05-12 16:29:34 +00:00
2023-11-16 16:30:17 +01:00
2026-05-12 16:29:34 +00:00
2024-08-08 14:48:20 +02:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2024-11-09 11:56:20 +01:00
2023-01-20 17:15:53 +01:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2024-08-11 17:24:26 +02:00
2026-02-17 22:14:16 +01:00
2026-01-29 12:56:45 +01:00
2026-05-12 14:51:59 +02:00

Timetracker

A simple game catalogue and play session tracker.

Development

The project uses pyenv to manage installed Python versions. If you have pyenv installed, you can simply run:

make init

This will make sure the correct Python version is installed, and it will install all dependencies using poetry. Afterwards, you can start the development server using make dev.

S
Description
No description provided
Readme 11 MiB
2026-05-12 16:36:46 +00:00
Languages
Python 43.7%
CSS 28.1%
HTML 24%
JavaScript 3.3%
Dockerfile 0.4%
Other 0.5%