services:
  robbis-space:
    # Portainer zieht dieses Repo und baut das Image auf dem Docker-Host.
    # Der Build ist zweistufig (siehe docker/Dockerfile): Hugo erzeugt die
    # Seite, das Laufzeit-Image enthaelt nur nginx und fertiges HTML.
    # Kein git pull, kein Hugo-Lauf, kein PHP zur Laufzeit.
    build:
      context: .
      dockerfile: docker/Dockerfile
    image: robbis-space:latest
    container_name: robbis-space
    restart: unless-stopped
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.robbis-space.service=robbis-space"
      - "traefik.http.routers.robbis-space.tls.certresolver=http_resolver"
      - "traefik.http.routers.robbis-space.tls.domains[0].main=robbis.space"
      - "traefik.http.routers.robbis-space.rule=Host(`robbis.space`)"
      - "traefik.http.routers.robbis-space.entrypoints=websecure"
      - "traefik.http.routers.robbis-space.tls=true"
      - "traefik.http.services.robbis-space.loadbalancer.server.port=80"
      # HTTP-Router (Port 80) mit Weiterleitung auf HTTPS
      - "traefik.http.routers.robbis-space-http.rule=Host(`robbis.space`)"
      - "traefik.http.routers.robbis-space-http.entrypoints=web"
      - "traefik.http.routers.robbis-space-http.middlewares=traefik-https-redirect"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"

networks:
  proxy:
    external: true
