--- services: kuttit: image: kutt/kutt:${KUTTIT_VERSION} restart: unless-stopped command: ["./wait-for-it.sh", "postgres:5432", "--", "npm", "start"] depends_on: - postgres - redis environment: - PORT=${TRAEFIK_SERVICE_PORT} - SITE_NAME=${KUTTIT_NAME} - DEFAULT_DOMAIN=${KUTTIT_DOMAIN} - LINK_LENGTH=${KUTTIT_LINK_LENGTH} - DB_HOST=postgres - DB_PORT=5432 - DB_NAME=${POSTGRES_NAME} - DB_USER=${POSTGRES_USER} - DB_PASSWORD=${POSTGRES_PASS} - DB_SSL=false - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=${REDIS_PASS} - DISALLOW_REGISTRATION=${KUTTIT_DISABLE_REGISTRATION} - DISALLOW_ANONYMOUS_LINKS=${KUTTIT_DISABLE_ANONYMOUS} - USER_LIMIT_PER_DAY=${KUTTIT_DAILY_USER_LIMIT} - NON_USER_COOLDOWN=${KUTTIT_NON_USER_COOLDOWN} - DEFAULT_MAX_STATS_PER_LINK=${KUTTIT_LINK_STATS} - CUSTOM_DOMAIN_USE_HTTPS=${KUTTIT_DOMAIN_HTTPS} - JWT_SECRET=${KUTTIT_JWT_SECRET} - ADMIN_EMAILS=${KUTTIT_ADMIN_EMAILS} - MAIL_HOST=${KUTTIT_MAIL_HOST} - MAIL_PORT=${KUTTIT_MAIL_PORT} - MAIL_FROM=${KUTTIT_MAIL_FROM} - MAIL_USER=${KUTTIT_MAIL_USER} - MAIL_PASSWORD=${KUTTIT_MAIL_PASS} - MAIL_SECURE=${KUTTIT_MAIL_SECURE} - REPORT_EMAIL=${KUTTIT_REPORT_EMAIL} - CONTACT_EMAIL=${KUTTIT_CONTACT_EMAIL} labels: ### Section Træfik - traefik.enable=${TRAEFIK_ENABLED} - traefik.docker.network=${TRAEFIK_NETWORK} ## HTTP - traefik.http.routers.http-${TRAEFIK_ROUTER}.entrypoints=http # redirect to HTTPS only - traefik.http.routers.http-${TRAEFIK_ROUTER}.middlewares=${TRAEFIK_HTTP_MIDDLEWARES} - traefik.http.routers.http-${TRAEFIK_ROUTER}.rule=${TRAEFIK_MATCHRULE} ## HTTPS - traefik.http.routers.https-${TRAEFIK_ROUTER}.entrypoints=https # configure the exposed service - traefik.http.routers.https-${TRAEFIK_ROUTER}.middlewares=${TRAEFIK_HTTPS_MIDDLEWARES} - traefik.http.routers.https-${TRAEFIK_ROUTER}.rule=${TRAEFIK_MATCHRULE} # enable TLS and its 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} ### Section Diun - diun.enable=${DIUN_KUTTIT_ENABLE} - diun.watch_repo=${DIUN_KUTTIT_WATCHREPO} - diun.sort_tags=${DIUN_KUTTIT_SORTALGO} - diun.include_tags=${DIUN_KUTTIT_INCLUDE} - diun.exclude_tags=${DIUN_KUTTIT_EXCLUDE} networks: - internal - traefik redis: image: redis:${REDIS_VERSION} restart: unless-stopped command: --requirepass ${REDIS_PASS} environment: - REDIS_PASS=${REDIS_PASS} labels: ### Section Diun - diun.enable=${DIUN_REDIS_ENABLE} - diun.watch_repo=${DIUN_REDIS_WATCHREPO} - diun.sort_tags=${DIUN_REDIS_SORTALGO} - diun.include_tags=${DIUN_REDIS_INCLUDE} - diun.exclude_tags=${DIUN_REDIS_EXCLUDE} networks: - internal volumes: - ${REDIS_DATA}:/data postgres: image: postgres:${POSTGRES_VERSION} restart: unless-stopped environment: - POSTGRES_DB=${POSTGRES_NAME} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASS} labels: ### Section Diun - diun.enable=${DIUN_POSTGRES_ENABLE} - diun.watch_repo=${DIUN_POSTGRES_WATCHREPO} - diun.sort_tags=${DIUN_POSTGRES_SORTALGO} - diun.include_tags=${DIUN_POSTGRES_INCLUDE} - diun.exclude_tags=${DIUN_POSTGRES_EXCLUDE} networks: - internal volumes: - ${POSTGRES_DATA}:/var/lib/postgresql/data networks: internal: traefik: external: true name: ${TRAEFIK_NETWORK}