55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
services:
|
|
|
|
${SERVICE_NAME}:
|
|
image: ${DOCKER_IMAGE}
|
|
container_name: ${CONTAINER_NAME}
|
|
restart: unless-stopped
|
|
networks:
|
|
- homelab-network
|
|
- traefik-network
|
|
ports:
|
|
- ${EXTERNAL_PORT}:${INTERNAL_PORT}
|
|
|
|
# Comment out volumes section if it is empty
|
|
#volumes:
|
|
|
|
# Comment out environment section if it is empty
|
|
# environment:
|
|
|
|
healthcheck:
|
|
test: ['CMD', 'wget', '--quiet', '--tries=1', '--spider', 'http://localhost:${INTERNAL_PORT}/']
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
labels:
|
|
# Labels in compose files are treated as literal strings, disallowing variable replacement in the string
|
|
# However the string can be defined as a variable
|
|
- ${HOST_LABEL}
|
|
- $(AUTHELIA_LABEL)
|
|
- ${TRAEFIK_ENABLE_LABEL}
|
|
- ${WATCHTOWER_ENABLE_LABEL}
|
|
- ${LOADBALANCER_LABEL}
|
|
- ${CATEGORY_LABEL}
|
|
- ${DESCRIPTION_LABEL}
|
|
# All services being proxied by Traefik must be on this network
|
|
- 'traefik.docker.network=traefik-network'
|
|
# This enables https
|
|
- 'traefik.http.routers.backrest.entrypoints=websecure'
|
|
# This enables letsencrypt certificates
|
|
- 'traefik.http.routers.backrest.tls.certresolver=letsencrypt'
|
|
# Define the category and description of this service
|
|
|
|
|
|
networks:
|
|
homelab-network:
|
|
external: true
|
|
traefik-network:
|
|
external: true
|
|
|
|
|
|
x-dockge:
|
|
urls:
|
|
- https://${PROXY_URL}
|
|
- https://${LOCAL_URL}
|