--- services: ticky: image: ghcr.io/dkorecko/ticky:${TICKY_VERSION} container_name: ticky restart: unless-stopped networks: - traefik - ticky volumes: - ./data/upload:/app/wwwroot/uploaded environment: - DB_HOST=ticky-db - DB_NAME=ticky - DB_USERNAME=${MYSQL_USERNAME} - DB_PASSWORD=${MYSQL_PASSWORD} - FULLY_OFFLINE=true - DISABLE_USER_SIGNUPS=true - SMTP_ENABLED=false - SMTP_HOST=your-smtp-host - SMTP_PORT=your-smtp-port - SMTP_DISPLAY_NAME=Ticky - SMTP_EMAIL=your-email@example.com - SMTP_USERNAME=your-smtp-username - SMTP_PASSWORD=your-smtp-password - SMTP_SECURITY=true labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.ticky.entrypoints=http" - "traefik.http.routers.ticky.rule=Host(`${TICKY_DOMAIN}`)" - "traefik.http.middlewares.ticky-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.ticky.middlewares=traefik-https-redirect" - "traefik.http.routers.ticky-secure.entrypoints=https" - "traefik.http.routers.ticky-secure.rule=Host(`${TICKY_DOMAIN}`)" - "traefik.http.routers.ticky-secure.tls=true" - "traefik.http.services.ticky.loadbalancer.server.port=8080" depends_on: ticky-db: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl --fail --silent --max-time 5 http://localhost:8080/ || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s ticky-db: image: mysql:${MYSQL_VERSION} container_name: ticky-db restart: unless-stopped networks: - ticky environment: MYSQL_DATABASE: ticky MYSQL_USER: ${MYSQL_USERNAME} MYSQL_RANDOM_ROOT_PASSWORD: true MYSQL_PASSWORD: ${MYSQL_PASSWORD} healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 2s retries: 30 volumes: - ./data/mysql:/var/lib/mysql networks: traefik: external: true ticky: driver: bridge