--- version: "3.8" services: app: image: neutroncreative/singlelink-editor:latest depends_on: - backend environment: - HOSTNAME=$DOMAIN - API_URL=https://api.$DOMAIN networks: - proxy deploy: restart_policy: condition: on-failure labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80" - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" ## Redirect from EXTRA_DOMAINS to DOMAIN #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" # healthcheck: # test: ["CMD", "curl", "-f", "http://localhost"] # interval: 30s # timeout: 10s # retries: 10 # start_period: 1m backend: image: neutroncreative/singlelink-server:latest entrypoint: ['tail', '-f', '/dev/null'] environment: - DATABASE=postgresql://singlelink:singlelink@db:5432/singlelink - SECRET - HOST=0.0.0.0 - PORT=80 - API_URL=https://api.$DOMAIN - EDITOR_URL=https://$DOMAIN - RENDERER_URL=https://render.$DOMAIN - CONTACT_EMAIL - AWS_SENDER_EMAIL_ADDRESS - AWS_REGION - AWS_ACCESS_KEY - AWS_SECRET_KEY - S3_ENDPOINT - S3_BUCKETNAME - S3_PORT - S3_USE_SSL - S3_ACCESS_KEY - S3_SECRET_KEY - MIXPANEL_TOKEN - DELETE_ADDON_INSTALLS_THRESHOLD networks: - internal - proxy deploy: restart_policy: condition: on-failure labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}_api.loadbalancer.server.port=80" - "traefik.http.routers.${STACK_NAME}_api.rule=Host(`api.${DOMAIN}`)" - "traefik.http.routers.${STACK_NAME}_api.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}_api.tls.certresolver=${LETS_ENCRYPT_ENV}" renderer: image: neutroncreative/singlelink-renderer:latest environment: - API_URL=https://api.$DOMAIN - HOST=0.0.0.0 - PORT=80 networks: - proxy deploy: restart_policy: condition: on-failure labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}_render.loadbalancer.server.port=80" - "traefik.http.routers.${STACK_NAME}_render.rule=Host(`render.${DOMAIN}`)" - "traefik.http.routers.${STACK_NAME}_render.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}_render.tls.certresolver=${LETS_ENCRYPT_ENV}" db: image: postgres:10-alpine environment: - POSTGRES_USER=singlelink - POSTGRES_DB=singlelink - POSTGRES_PASSWORD=singlelink volumes: - postgres-data:/var/lib/postgresql/data networks: - internal volumes: postgres-data: networks: proxy: external: true internal: