services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: pretix POSTGRES_USER: pretix POSTGRES_PASSWORD: ${PRETIX_DB_PASSWORD:-pretix_test_password} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U pretix -d pretix"] interval: 10s timeout: 5s retries: 10 redis: image: redis:7-alpine restart: unless-stopped command: redis-server --save 60 1 --loglevel warning volumes: - redis-data:/data mailpit: image: axllent/mailpit:latest restart: unless-stopped ports: - "127.0.0.1:8025:8025" pretix: image: pretix/standalone:stable restart: unless-stopped depends_on: db: condition: service_healthy redis: condition: service_started mailpit: condition: service_started ports: - "127.0.0.1:8345:80" environment: PRETIX_PRETIX_INSTANCE_NAME: "pretix Testinstanz" PRETIX_PRETIX_URL: "http://localhost:8345" PRETIX_PRETIX_CURRENCY: "EUR" PRETIX_PRETIX_DATADIR: "/data" PRETIX_LOCALE_DEFAULT: "de" PRETIX_LOCALE_TIMEZONE: "Europe/Berlin" PRETIX_DATABASE_BACKEND: "postgresql" PRETIX_DATABASE_NAME: "pretix" PRETIX_DATABASE_USER: "pretix" PRETIX_DATABASE_PASSWORD: "${PRETIX_DB_PASSWORD:-pretix_test_password}" PRETIX_DATABASE_HOST: "db" PRETIX_DATABASE_PORT: "5432" PRETIX_MAIL_FROM: "pretix-test@localhost" PRETIX_MAIL_HOST: "mailpit" PRETIX_MAIL_PORT: "1025" PRETIX_MAIL_TLS: "off" PRETIX_MAIL_SSL: "off" PRETIX_REDIS_LOCATION: "redis://redis:6379/0" PRETIX_REDIS_SESSIONS: "true" PRETIX_CELERY_BACKEND: "redis://redis:6379/1" PRETIX_CELERY_BROKER: "redis://redis:6379/2" volumes: - pretix-data:/data command: all pretix-cron: image: pretix/standalone:stable restart: unless-stopped depends_on: db: condition: service_healthy redis: condition: service_started mailpit: condition: service_started pretix: condition: service_started environment: PRETIX_PRETIX_INSTANCE_NAME: "pretix Testinstanz" PRETIX_PRETIX_URL: "http://localhost:8345" PRETIX_PRETIX_CURRENCY: "EUR" PRETIX_PRETIX_DATADIR: "/data" PRETIX_LOCALE_DEFAULT: "de" PRETIX_LOCALE_TIMEZONE: "Europe/Berlin" PRETIX_DATABASE_BACKEND: "postgresql" PRETIX_DATABASE_NAME: "pretix" PRETIX_DATABASE_USER: "pretix" PRETIX_DATABASE_PASSWORD: "${PRETIX_DB_PASSWORD:-pretix_test_password}" PRETIX_DATABASE_HOST: "db" PRETIX_DATABASE_PORT: "5432" PRETIX_MAIL_FROM: "pretix-test@localhost" PRETIX_MAIL_HOST: "mailpit" PRETIX_MAIL_PORT: "1025" PRETIX_MAIL_TLS: "off" PRETIX_MAIL_SSL: "off" PRETIX_REDIS_LOCATION: "redis://redis:6379/0" PRETIX_REDIS_SESSIONS: "true" PRETIX_CELERY_BACKEND: "redis://redis:6379/1" PRETIX_CELERY_BROKER: "redis://redis:6379/2" volumes: - pretix-data:/data entrypoint: - /bin/sh - -c command: - 'while true; do pretix cron; sleep 300; done' volumes: postgres-data: redis-data: pretix-data: