diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4a9c50b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.env +/config diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7176161 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,37 @@ +--- +version: "3" + +services: + heimdall: + image: linuxserver/heimdall:${HEIMDALL_VERSION} + restart: unless-stopped + environment: + - PUID=${HEIMDALL_PUID} + - PGID=${HEIMDALL_PGID} + - TZ=${HEIMDALL_TIMEZONE} + labels: + - traefik.enable=${TRAEFIK_ENABLED} + - traefik.docker.network=traefik + ### Section HTTP + - traefik.http.routers.http-${TRAEFIK_ROUTER}.entrypoints=http + # redirect to HTTPS only + - traefik.http.routers.http-${TRAEFIK_ROUTER}.middlewares=http-to-https + - traefik.http.routers.http-${TRAEFIK_ROUTER}.rule=Host(`${TRAEFIK_MATCHRULE}`) + ### Section HTTPS + - traefik.http.routers.https-${TRAEFIK_ROUTER}.entrypoints=https + # configure the exposed service + - traefik.http.routers.https-${TRAEFIK_ROUTER}.rule=Host(`${TRAEFIK_MATCHRULE}`) + # of course, enable TLS and it's certificate provider + - traefik.http.routers.https-${TRAEFIK_ROUTER}.tls=${TRAEFIK_TLSENABLED} + - traefik.http.routers.https-${TRAEFIK_ROUTER}.tls.certresolver=${TRAEFIK_CERTRESOLVER} + # specify a service so a custom port can be used + - traefik.http.services.${TRAEFIK_SERVICE}.loadbalancer.server.port=${TRAEFIK_SERVICE_PORT} + networks: + - traefik + volumes: + ./config:/config + +networks: + traefik: + external: true + name: ${TRAEFIK_NETWORK} diff --git a/example.env b/example.env new file mode 100644 index 0000000..d96fedd --- /dev/null +++ b/example.env @@ -0,0 +1,15 @@ +# Heimdall +HEIMDALL_VERSION=2.2.2 +HEIMDALL_PUID=1000 +HEIMDALL_PGID=1000 +HEIMDALL_TIMEZONE=Europe/London + +# Træfik +TRAEFIK_CERTRESOLVER=letsencrypt +TRAEFIK_ENABLED=true +TRAEFIK_MATCHRULE=heimdall.mydomain.com +TRAEFIK_NETWORK=traefik +TRAEFIK_ROUTER=heimdall_mydomain_com +TRAEFIK_SERVICE=heimdall_mydomain_com +TRAEFIK_SERVICE_PORT=80 +TRAEFIK_TLSENABLED=true