name: chat services: gotify: image: ${DOCKER_IMAGE} container_name: ${COMPOSE_PROJECT_NAME}_app restart: unless-stopped volumes: - gotify_data:/app/data environment: GOTIFY_DEFAULTUSER_NAME: ${GOTIFY_DEFAULTUSER_NAME} GOTIFY_DEFAULTUSER_PASS: ${GOTIFY_DEFAULTUSER_PASS} # Gotify is a Go binary - no wget/curl, but has built-in health endpoint # healthcheck: # test: ["CMD-SHELL", "nc -z localhost $APP_PORT || exit 1"] # interval: 30s # timeout: 10s # retries: 3 # start_period: 30s networks: - kompose_network labels: - 'traefik.enable=true' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-redirect-web-secure.redirectscheme.scheme=https' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.middlewares=$COMPOSE_PROJECT_NAME-redirect-web-secure' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.rule=Host(`$TRAEFIK_HOST`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.entrypoints=web' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.rule=Host(`$TRAEFIK_HOST`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.tls.certresolver=resolver' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.entrypoints=web-secure' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-web-secure-compress.compress=true' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.middlewares=$COMPOSE_PROJECT_NAME-web-secure-compress' - 'traefik.http.services.$COMPOSE_PROJECT_NAME-web-secure.loadbalancer.server.port=$APP_PORT' - 'traefik.docker.network=${NETWORK_NAME:-kompose}' volumes: gotify_data: networks: kompose_network: name: ${NETWORK_NAME:-kompose} external: true