---
services:
  database:
    image: docker.io/library/postgres:15-alpine
    environment:
      - "POSTGRES_USER=pretix"
      - "POSTGRES_PASSWORD={{ secret__pretix_db_password }}"
      - "POSTGRES_DB=pretix"
    volumes:
      - database:/var/lib/postgresql/data
    networks:
      backend:
    restart: unless-stopped
  
  redis:
    image: docker.io/library/redis:7
    ports:
      - "6379:6379"
    volumes:
      - redis:/rdata
    # run redis-server, save a snapshot every 60 seconds if there has been at least 1 write
    command: ["redis-server", "--save", "60", "1"]
    restart: unless-stopped
    networks:
      backend:

  pretix:
    image: docker.io/pretix/standalone:2024.8
    command: ["all"]
    ports:
      - "8345:80"
    volumes:
      - ./configs/pretix.cfg:/etc/pretix/pretix.cfg
      - pretix:/data
    restart: unless-stopped
    networks:
      backend:
      frontend:

volumes:
  database: {}
  pretix: {}
  redis: {}

networks:
  backend:
    internal: true
  frontend: