Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ZEROF/c3a76d4b9e729cf4d7d6ada5fe93d35c to your computer and use it in GitHub Desktop.
Save ZEROF/c3a76d4b9e729cf4d7d6ada5fe93d35c to your computer and use it in GitHub Desktop.
How to run Pretalx (Call for papers) in 2025 with docker

Simple deploymenet of Pretalx in 2025

  1. OS Debian 12
  2. Install Docker
  3. 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

  1. 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:
  1. 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
  1. Start everything with docker compose up -d and to stop docker compose down
  2. Visit your site URL after setting revers proxy on port 16800 and ssl (best solution this days Nginx Proxy Manager)
  3. Set up a user and an organizer by running docker exec -ti pretalx pretalx init.
  4. Set up a cronjob for periodic tasks like this 15,45 * * * * docker exec pretalx pretalx runperiodic

And in the end, as we use docker volumes, don't run this without full backup of VM/SERVER.

@jxs714
Copy link

jxs714 commented Jun 19, 2025

@jxs714 Hi again. Last docker version is published and update process instructions are now included in readme https://github.com/pretalx/pretalx-docker

Hi my friend, just got this message. Fantastic! You guys are awesome. Hopefully we can continue getting updates in the future :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment