From e458096e2365152d15c9b4834dc2e153e4d9361c Mon Sep 17 00:00:00 2001 From: Rodney Osodo Date: Fri, 10 Jul 2026 07:11:42 +0000 Subject: [PATCH] feat(docker): add trek for road trips Signed-off-by: Rodney Osodo --- docker-compose/default.env | 6 ++++ docker-compose/docker-compose.yaml | 3 ++ docker-compose/trek/docker-compose.yaml | 47 +++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 docker-compose/trek/docker-compose.yaml diff --git a/docker-compose/default.env b/docker-compose/default.env index 02ee2a6..4837d0d 100644 --- a/docker-compose/default.env +++ b/docker-compose/default.env @@ -140,3 +140,9 @@ PAPERLESS_POSTGRES_URL="" ### GRAFANA GRAFANA_ADMIN_USER="admin" GRAFANA_ADMIN_PASSWORD="admin" + +### TREK +TREK_ENCRYPTION_KEY="" +TREK_PUBLIC_URL="" +TREK_ADMIN_EMAIL="" +TREK_ADMIN_PASSWORD="" diff --git a/docker-compose/docker-compose.yaml b/docker-compose/docker-compose.yaml index f53a8d0..a350fc3 100644 --- a/docker-compose/docker-compose.yaml +++ b/docker-compose/docker-compose.yaml @@ -100,3 +100,6 @@ include: - path: ./obsidian/docker-compose.yaml project_directory: .. env_file: .env + - path: ./trek/docker-compose.yaml + project_directory: .. + env_file: .env diff --git a/docker-compose/trek/docker-compose.yaml b/docker-compose/trek/docker-compose.yaml new file mode 100644 index 0000000..3823cb2 --- /dev/null +++ b/docker-compose/trek/docker-compose.yaml @@ -0,0 +1,47 @@ +services: + trek: + container_name: trek + image: docker.io/mauriceboe/trek:3.2.1 + restart: unless-stopped + networks: + - homelab-network + security_opt: + - no-new-privileges:true + read_only: true + cap_drop: + - ALL + cap_add: + - CHOWN + - SETUID + - SETGID + tmpfs: + - /tmp:noexec,nosuid,size=128m + ports: + - "5090:5090" + environment: + - NODE_ENV=production + - PORT=5090 + - ENCRYPTION_KEY=${TREK_ENCRYPTION_KEY} + - TZ=Africa/Nairobi + - LOG_LEVEL=info + - DEFAULT_LANGUAGE=en + - SESSION_DURATION=30d + - SESSION_DURATION_REMEMBER=30d + - ALLOWED_ORIGINS=${TREK_PUBLIC_URL} + - FORCE_HTTPS=true + - HSTS_INCLUDE_SUBDOMAINS=true + - COOKIE_SECURE=false + - TRUST_PROXY=1 + - ALLOW_INTERNAL_NETWORK=true + - APP_URL=${TREK_PUBLIC_URL} + - ADMIN_EMAIL=${TREK_ADMIN_EMAIL} + - ADMIN_PASSWORD=${TREK_ADMIN_PASSWORD} + volumes: + - ~/docker-volumes/trek/data:/app/data + - ~/docker-volumes/trek/uploads:/app/uploads + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s