Simple deploymenet of Pretalx in 2025
- OS Debian 12
- Install Docker
- Create folder for your project and all files (run this only once):
mkdir -p pretalx pretalx/conf && cd pretalx && touch docker-compose.yml && touch conf/pretalx.cfg
- Copy this docker-compose.yml file
services:
pretalx:
image: pretalx/standalone:latest
container_name: pretalx
restart: unless-stopped
depends_on:
- redis
- db
volumes:
- ./conf/pretalx.cfg:/etc/pretalx/pretalx.cfg:ro
- pretalx-data:/data
- pretalx-public:/public
ports:
- "16800:80"
environment:
# Hint: Make sure you serve all requests for the `/static/` and `/media/` paths when debug is False. See [installation](https://docs.pretalx.org/administrator/installation/#step-7-ssl) for more information
PRETALX_FILESYSTEM_MEDIA: /public/media
PRETALX_FILESYSTEM_STATIC: /public/static
db:
image: docker.io/library/postgres:15-alpine
container_name: pretalx-db
restart: always
volumes:
- pretalx-db:/var/lib/postgresql/data
expose:
- "5432"
environment:
POSTGRES_PASSWORD: yourdbpassword # same password as one that you will put in pretalx.cfg file later on
POSTGRES_USER: pretalx
POSTGRES_DB: pretalx
redis:
image: redis:latest
container_name: pretalx-redis
restart: unless-stopped
volumes:
- pretalx-redis:/data
volumes:
pretalx-db:
pretalx-data:
pretalx-public:
pretalx-redis:
- Copy this to conf/pretalx.cfg (replace site URL, and mail configuration to fit your needs)
[filesystem]
# use PRETALX_FILESYSTEM_* env vars
[site]
debug = False
url = https://yoursite.com
[database]
backend = postgresql
name = pretalx
user = pretalx
password = yourdbpassword
host = pretalx-db
port = 5432
[mail]
from = your@yourmail.com
host = your.youremail.com
port = 25
user = userp@youremail.com
password = youremailpassword
tls = True
#ssl = True
[celery]
backend = redis://pretalx-redis/1
broker = redis://pretalx-redis/2
[redis]
location=redis://pretalx-redis/0
; Remove the following line if you are unsure about your redis' security
; to reduce impact if redis gets compromised.
sessions=true
- Start everything with
docker compose up -d
and to stopdocker compose down
- Visit your site URL after setting revers proxy on port 16800 and ssl (best solution this days Nginx Proxy Manager)
- Set up a user and an organizer by running docker exec -ti pretalx pretalx init.
- Set up a cronjob for periodic tasks like this 15,45 * * * * docker exec pretalx pretalx runperiodic
I forgot to use "docker exec -ti pretalx pretalx init"
Thanks for the support.