Commit Graph

91 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 277ecd1b55 Update to 1.6.1
Django CI/CD / test (push) Successful in 24s
Django CI/CD / build-and-push (push) Has been skipped
2026-01-30 11:49:39 +01:00
lukas 233f63f18e Update Django et al
Django CI/CD / test (push) Successful in 27s
Django CI/CD / build-and-push (push) Successful in 1m25s
2026-01-29 16:53:45 +01:00
lukas c5646d0451 Make sure Dockerfile is consistent with entrypoint.sh
Django CI/CD / test (push) Successful in 23s
Django CI/CD / build-and-push (push) Successful in 48s
2026-01-27 21:39:30 +01:00
lukas 6b89bab0a6 Switch from poetry to uv
Django CI/CD / test (push) Successful in 9m34s
Django CI/CD / build-and-push (push) Failing after 1m55s
2026-01-27 20:03:39 +01:00
lukas f895dc1265 Prepare 1.6.0
Django CI/CD / test (push) Successful in 29s
Django CI/CD / build-and-push (push) Has been skipped
2026-01-15 23:15:03 +01:00
lukas 42b28665e1 Version 1.5.2
Django CI/CD / test (push) Successful in 1m15s
Django CI/CD / build-and-push (push) Has been skipped
2024-01-14 21:28:38 +01:00
lukas ccebcb89c6 Improve Dockerfile
Major inspiration (aka direct theft) from https://github.com/wemake-services/wemake-django-template
2023-11-16 16:27:41 +01:00
lukas 729e1d939b Version 1.5.1
continuous-integration/drone/push Build encountered an error
2023-11-14 21:10:42 +01:00
lukas f31280c682 Version 1.5.0
continuous-integration/drone/push Build is passing
2023-11-14 19:31:17 +01:00
lukas dd219bae9d Version 1.4.0
continuous-integration/drone/push Build is passing
2023-11-09 21:11:43 +01:00
lukas 4552cf7616 Version 1.3.0
continuous-integration/drone/push Build is passing
2023-11-05 15:10:56 +01:00
lukas 391fcc79a8 Version 1.2.0
continuous-integration/drone/push Build is passing
2023-11-01 20:35:58 +01:00
lukas dba8414fd9 Version 1.1.2
continuous-integration/drone/push Build is failing
2023-10-13 16:33:55 +02:00
lukas c4b0347f3b Version 1.1.1
continuous-integration/drone/push Build is passing
2023-10-09 20:56:23 +02:00
lukas c6ed21167c Remove debugging cruft from container 2023-10-09 20:56:13 +02:00
lukas c814b4c2cb Version 1.1.0
continuous-integration/drone/push Build is passing
2023-10-09 00:04:46 +02:00
lukas ff5d8c215d install dev dependecies
continuous-integration/drone/push Build is passing
2023-09-16 18:24:10 +02:00
lukas 2640a49734 Version 1.0.3
continuous-integration/drone/push Build is passing
2023-02-20 17:18:26 +01:00
lukas ac8cd6534a Version 1.0.2
continuous-integration/drone/push Build is passing
2023-02-18 21:48:55 +01:00
lukas 215374167b Version 1.0.0
continuous-integration/drone/push Build is passing
2023-01-20 19:58:40 +01:00
lukas c42687a072 Change ENTRYPOINT to CMD 2023-01-20 19:58:09 +01: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 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 55c2693f32 Bump version to 0.2.5
continuous-integration/drone/push Build is passing
2023-01-18 17:01:37 +01:00
lukas 2553d6f9e6 Definitively disable pre-commit hook
continuous-integration/drone/push Build is passing
2023-01-16 19:49:41 +01:00
lukas 8cf6270d8f Bump version 2023-01-16 19:47:32 +01:00
lukas 0b1089b0f4 Disable pre-commit hook 2023-01-16 19:46:15 +01:00
lukas dd50d6dd40 Allow filtering by platform and game
continuous-integration/drone/push Build is passing
Fixes #32
2023-01-15 23:14:28 +01:00
lukas 162f4f3dbf Fix Dockerfile
continuous-integration/drone/push Build is passing
2023-01-15 19:16:34 +01:00
lukas c5b451a258 Fix error when showing session list with no sessions
Fixes #31
2023-01-15 18:02:48 +01:00
lukas 163211ab0b Hide button if no last session 2023-01-15 13:03:30 +01:00
lukas 64f5668dde Do not specify button width and height
continuous-integration/drone/push Build is passing
2023-01-13 22:11:12 +01:00
lukas 465d958d9b Start sessions of last purchase from list
continuous-integration/drone/push Build is passing
Fixes #19
2023-01-13 16:54:24 +01:00
lukas d8ece979a8 Revert make dev to plain runserver
The runserver_plus has problems with cache not being invalidated
2023-01-13 16:52:05 +01:00
lukas 078f87687f Make format_duration more robust
continuous-integration/drone/push Build is passing
2023-01-09 22:48:09 +01:00
lukas 49723831e9 Fix displaying finish button
continuous-integration/drone/push Build is passing
2023-01-09 22:05:12 +01:00
lukas 025ea0dd4e Fix migration
continuous-integration/drone/push Build is passing
2023-01-09 19:09:31 +01:00
lukas 97467c7a52 Also set duration_manual to zero
continuous-integration/drone/push Build is passing
2023-01-09 19:05:47 +01:00
lukas 7842d6f45d Remove debugging statement 2023-01-09 19:00:03 +01:00
lukas b77089f7ad Show playtime total on session list
continuous-integration/drone/push Build is passing
Fixes #6
Fixes #25
2023-01-09 18:57:22 +01:00
lukas 24f4459318 Avoid raising exception on format_duration(None)
Fixes #25
2023-01-09 16:14:01 +01:00
lukas 751182df52 Emit gunicorn logs to stdin and stderr 2023-01-08 15:48:53 +01:00
lukas 33e136a810 Add .dockerignore 2023-01-08 15:48:31 +01:00
lukas 362732c22a Run make date via poetry 2023-01-08 15:48:12 +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 e5a9b9aa50 Fix CSRF error (#22)
continuous-integration/drone/push Build is passing
Fixes #21

Reviewed-on: #22
2023-01-08 14:35:28 +00:00
lukas c9b2d5bd8d Update changelog
continuous-integration/drone/push Build is passing
2023-01-07 22:08:57 +01:00
lukas 0d20b543b0 Do not load the admin interface in prod
continuous-integration/drone/push Build is passing
2023-01-07 21:59:54 +01:00