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 = [email protected]
host = your.youremail.com
port = 25
user = [email protected]
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
@marcosmarquesnic you have two options, run docker compose up, without -d and you will get mentioned output in your terminal, kill the process when you finish saving login information and start container using -d (detache) options. Second one is exactly the one you have mentioned. Keep in mind, you will need to delete all containers and volumes and start from scratch if you already stopped containers before saving login informations.