Compare commits

..

No commits in common. "1c1c4ffa73bfb6f4970ce4403555dbf4d88de47d" and "c3d882f4fdeb5ea97ea2dacf4a5e0ba8a73ba73d" have entirely different histories.

3 changed files with 8 additions and 54 deletions

View file

@ -8,10 +8,8 @@ RUN go mod download
COPY . .
# Build native for the host architecture (ARM64 on Hetzner)
RUN CGO_ENABLED=1 go build -o fitness-app ./main.go
# Build with CGO enabled for sqlite
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o fitness-app ./main.go
# Runtime stage
FROM debian:bookworm-slim

View file

@ -1,3 +1,5 @@
version: "3.9"
services:
fitness:
build: .
@ -10,35 +12,6 @@ services:
# Host folder -> container /data
# On host, your db will be: ./fitness-data/fitness.db
- ./fitness-data:/data
# ports:
ports:
# For quick testing; in production you'd put Traefik in front instead
# - "8080:8080"
labels:
- "traefik.enable=true"
# Public domain
- "traefik.http.routers.fitness.rule=Host(`fitness.rozic-dev.com`)"
# Listen on HTTP & HTTPS
- "traefik.http.routers.fitness.entrypoints=web,websecure"
# Force HTTPS using your GLOBAL redirect middleware
- "traefik.http.routers.fitness.middlewares=redirect-to-https, fitness-auth"
# TLS + Let's Encrypt
- "traefik.http.routers.fitness.tls=true"
- "traefik.http.routers.fitness.tls.certresolver=letsencrypt"
# App internal port
- "traefik.http.services.fitness.loadbalancer.server.port=8080"
# - "traefik.http.routers.traefik.middlewares=fitness-auth"
#- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$8EVjn/nj$$GiLUZqcbueTFeD23SuB6x0" # admin:admin123
#- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$apr1$yGKxPD8U$z4eeZaKNzoASEpr2yh4wQ" # admin:admin123
- "traefik.http.middlewares.fitness-auth.basicauth.users=Dejan:$$apr1$$F5Y8CeQ1$$C2jX95nwyeJAjhtGxvnOJ/" # admin:admin123
networks:
- traefik_default
networks:
traefik_default:
external: true
- "8080:8080"

View file

@ -154,27 +154,10 @@ services:
# ... existing configuration ...
labels:
- "traefik.enable=true"
# Public domain
- "traefik.http.routers.fitness.rule=Host(`fitness.domain.com`)"
# Listen on HTTP & HTTPS
- "traefik.http.routers.fitness.entrypoints=web,websecure"
# Force HTTPS using your GLOBAL redirect middleware
- "traefik.http.routers.fitness.middlewares=redirect-to-https, fitness-auth"
# TLS + Let's Encrypt
- "traefik.http.routers.fitness.tls=true"
- "traefik.http.routers.fitness.rule=Host(`fitness.yourdomain.com`)"
- "traefik.http.routers.fitness.entrypoints=websecure"
- "traefik.http.routers.fitness.tls.certresolver=letsencrypt"
# App internal port
- "traefik.http.services.fitness.loadbalancer.server.port=8080"
# - "traefik.http.routers.traefik.middlewares=fitness-auth"
#- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$8EVjn/nj$$GiLUZqcbueTFeD23SuB6x0" # admin:admin123
#- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$apr1$yGKxPD8U$z4eeZaKNzoASEpr2yh4wQ" # admin:admin123
- "traefik.http.middlewares.fitness-auth.basicauth.users=Dejan:$$apr1$$F5Y8CeQ1$$C2jX95nwyeJAjhtGxvnOJ/" # admin:admin123
networks:
- traefik_default