name: sexy services: directus: build: context: ./ container_name: ${COMPOSE_PROJECT_NAME}_api restart: unless-stopped networks: - kompose_network volumes: - ./uploads:/directus/uploads - ${DIRECTUS_BUNDLE}:/directus/extensions/sexy.pivoine.art environment: SECRET: ${DIRECTUS_SECRET} DB_CLIENT: pg DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} DB_DATABASE: ${DB_NAME} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} CACHE_ENABLED: ${CACHE_ENABLED} CACHE_AUTO_PURGE: ${CACHE_AUTO_PURGE} CACHE_STORE: redis REDIS: redis://redis:6379 ADMIN_EMAIL: ${ADMIN_EMAIL} ADMIN_PASSWORD: ${ADMIN_PASSWORD} WEBSOCKETS_ENABLED: ${WEBSOCKETS_ENABLED} PUBLIC_URL: ${PUBLIC_URL} CORS_ENABLED: ${CORS_ENABLED} CORS_ORIGIN: ${CORS_ORIGIN} SESSION_COOKIE_SECURE: ${SESSION_COOKIE_SECURE} SESSION_COOKIE_SAME_SITE: ${SESSION_COOKIE_SAME_SITE} SESSION_COOKIE_DOMAIN: ${SESSION_COOKIE_DOMAIN} EXTENSIONS_PATH: ${EXTENSIONS_PATH} EXTENSIONS_AUTO_RELOAD: ${EXTENSIONS_AUTO_RELOAD} CONTENT_SECURITY_POLICY_DIRECTIVES__FRAME_SRC: ${CONTENT_SECURITY_POLICY_DIRECTIVES__FRAME_SRC} EMAIL_TRANSPORT: ${EMAIL_TRANSPORT} EMAIL_FROM: ${EMAIL_FROM} EMAIL_SMTP_HOST: ${EMAIL_SMTP_HOST} EMAIL_SMTP_PORT: ${EMAIL_SMTP_PORT} EMAIL_SMTP_USER: ${EMAIL_SMTP_USER} EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD} USER_REGISTER_URL_ALLOW_LIST: ${USER_REGISTER_URL_ALLOW_LIST} PASSWORD_RESET_URL_ALLOW_LIST: ${PASSWORD_RESET_URL_ALLOW_LIST} # healthcheck: # test: ["CMD", "wget", "--spider", "-q", "http://localhost:8055/server/health"] # interval: 30s # timeout: 5s # retries: 3 # start_period: 60s labels: - 'traefik.enable=true' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-redirect-web-secure.redirectscheme.scheme=https' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.middlewares=$COMPOSE_PROJECT_NAME-api-redirect-web-secure' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.rule=Host(`$TRAEFIK_HOST`) && PathPrefix(`/api`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.entrypoints=web' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.rule=Host(`$TRAEFIK_HOST`) && PathPrefix(`/api`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.tls.certresolver=resolver' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.entrypoints=web-secure' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-web-secure-compress.compress=true' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-strip.stripprefix.prefixes=/api' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.middlewares=$COMPOSE_PROJECT_NAME-api-strip,$COMPOSE_PROJECT_NAME-api-web-secure-compress' - 'traefik.http.services.$COMPOSE_PROJECT_NAME-api-web-secure.loadbalancer.server.port=8055' - 'traefik.docker.network=${NETWORK_NAME:-kompose}' frontend: image: ${FRONTEND_IMAGE} container_name: ${COMPOSE_PROJECT_NAME}_frontend restart: unless-stopped user: node working_dir: /home/node/app/packages/frontend networks: - kompose_network environment: NODE_ENV: production volumes: - /var/www/sexy.pivoine.art:/home/node/app command: ["node", "build/index.js"] # healthcheck: # test: ["CMD-SHELL", "wget --spider -q http://localhost:${FRONTEND_PORT}/ || exit 1"] # interval: 30s # timeout: 5s # retries: 3 # start_period: 30s labels: - 'traefik.enable=true' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-frontend-redirect-web-secure.redirectscheme.scheme=https' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.middlewares=$COMPOSE_PROJECT_NAME-frontend-redirect-web-secure' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.rule=Host(`$TRAEFIK_HOST`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.entrypoints=web' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.rule=Host(`$TRAEFIK_HOST`)' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.tls.certresolver=resolver' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.entrypoints=web-secure' - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-frontend-web-secure-compress.compress=true' - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.middlewares=$COMPOSE_PROJECT_NAME-frontend-web-secure-compress' - 'traefik.http.services.$COMPOSE_PROJECT_NAME-frontend-web-secure.loadbalancer.server.port=${FRONTEND_PORT}' - 'traefik.docker.network=${NETWORK_NAME:-kompose}' networks: kompose_network: name: ${NETWORK_NAME:-kompose} external: true