Wokring traefik

With whoami and gitea working (although I haven't rebuilt yet)
This commit is contained in:
James Thompson
2026-03-23 05:59:53 +00:00
parent fb31bcb0a3
commit 28aa6e28fe
6 changed files with 26 additions and 11 deletions

View File

@@ -4,7 +4,6 @@
# Storage # Storage
STORAGE_PATH=/mnt/storage/docker-data STORAGE_PATH=/mnt/storage/docker-data
MEDIA_PATH=/mnt/storage
# User # User
USER_UID=1000 USER_UID=1000
@@ -12,7 +11,6 @@ USER_GID=1000
# Domain # Domain
DOMAIN=sjhl.nz DOMAIN=sjhl.nz
DOMAIN_WWW=__CHANGEME__
# Timezone # Timezone
TZ=Pacific/Auckland TZ=Pacific/Auckland

View File

@@ -1,14 +1,28 @@
SERVICES=traefik whoami gitea nextcloud devbox SERVICES=traefik whoami gitea nextcloud devbox
.PHONY: up down restart backup init-env env-sync docs generate-docs serve-docs logs status .PHONY: up down restart backup init-env env-sync docs generate-docs serve-docs logs status up-% down-%
up: up:
@for svc in $(SERVICES); do \ for svc in $(SERVICES); do \
if [ -f "$$svc/docker-compose.yml" ]; then \ if [ -f "$$svc/docker-compose.yml" ]; then \
echo "Starting $$svc..."; \ echo "Starting $$svc..."; \
(cd $$svc && docker compose up -d); \ (cd $$svc && docker compose --env-file ../.env `if [ -f .env ]; then echo --env-file .env; fi` up -d); \
fi; \ fi; \
done done; \
up-%:
@svc=$*; \
if [ -f "$$svc/docker-compose.yml" ]; then \
echo "Starting $$svc..."; \
(cd $$svc && docker compose --env-file ../.env `if [ -f .env ]; then echo --env-file .env; fi` up -d); \
fi
down-%:
@svc=$*; \
if [ -f "$$svc/docker-compose.yml" ]; then \
echo "Stopping $$svc..."; \
(cd $$svc && docker compose down); \
fi
down: down:
@for svc in $(SERVICES); do \ @for svc in $(SERVICES); do \

View File

@@ -1,6 +1,6 @@
# traefik/.env # traefik/.env
# Copy to .env and fill in real values. NEVER commit .env. # Copy to .env and fill in real values. NEVER commit .env.
TRAEFIK_DASHBOARD_PORT=8082 TRAEFIK_DASHBOARD_PORT=8080
ACME_EMAIL=letsencrypt@example.com ACME_EMAIL=letsencrypt@example.com
DASHBOARD_BASIC_AUTH=admin:$$apr1$$changeme$$REPLACE_WITH_HTPASSWD_HASH DASHBOARD_BASIC_AUTH=admin:$$apr1$$changeme$$REPLACE_WITH_HTPASSWD_HASH

View File

@@ -1,3 +1 @@
THis is the project This is the core proxy that protects my server. It handles SSL termination, routing, and the dashboard for monitoring. I use Traefik's Docker provider to automatically discover services and route traffic based on labels in their `docker-compose.yml` files.
More information hear.

View File

@@ -6,11 +6,12 @@ services:
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"
- "${TRAEFIK_DASHBOARD_PORT:-8082}:8080" - "${TRAEFIK_DASHBOARD_PORT}:8080"
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/docker.sock:/var/run/docker.sock:ro
- ${STORAGE_PATH}/traefik/certs:/certs:rw - ${STORAGE_PATH}/traefik/certs:/certs:rw
- ${STORAGE_PATH}/traefik/dynamic:/dynamic:ro - ${STORAGE_PATH}/traefik/dynamic:/dynamic:ro
- ${STORAGE_PATH}/traefik/letsencrypt:/letsencrypt
networks: networks:
- web - web
security_opt: security_opt:
@@ -23,6 +24,7 @@ services:
- "traefik.http.routers.dashboard.rule=Host(`dashboard.${DOMAIN}`)" - "traefik.http.routers.dashboard.rule=Host(`dashboard.${DOMAIN}`)"
- "traefik.http.routers.dashboard.service=api@internal" - "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.tls=true" - "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
command: command:
- "--entrypoints.web.address=:80" - "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure" - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
@@ -31,6 +33,8 @@ services:
- "--providers.docker=true" - "--providers.docker=true"
- "--providers.docker.exposedbydefault=false" - "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=web" - "--providers.docker.network=web"
- "--api.dashboard=true"
- "--api.insecure=false"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL}" - "--certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL}"

View File

@@ -10,6 +10,7 @@ services:
- "traefik.http.routers.whoami.entrypoints=websecure" - "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.rule=Host(`whoami.${DOMAIN}`)" - "traefik.http.routers.whoami.rule=Host(`whoami.${DOMAIN}`)"
- "traefik.http.routers.whoami.tls=true" - "traefik.http.routers.whoami.tls=true"
- "traefik.http.routers.whoami.tls.certresolver=letsencrypt"
networks: networks:
web: web: