iac_stack/ansible/roles/deploy_container_ticky/templates/docker-compose.yml.j2

70 lines
2.1 KiB
Text
Raw Normal View History

2025-08-13 17:43:37 +02:00
---
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