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 = 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
  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.

@marcosmarquesnic
Copy link

I forgot to use "docker exec -ti pretalx pretalx init"

Thanks for the support.

@ZEROF
Copy link
Author

ZEROF commented May 9, 2025

@marcosmarquesnic you right, as this was "natural" action from the old deployment process I didn't mentioned that. I will update this guide to avoid putting new users to similar situation.

@jxs714
Copy link

jxs714 commented Jun 9, 2025

@marcosmarquesnic when you run docker for the first time you will get login information and url for admin control panel. From there you need to set event and that will create url that you can share.

Hi, just tried this and I never received any login information from command line or inside portainer logs. I tried the non -d command prompt and deleting all container volumes and starting over.

@jxs714
Copy link

jxs714 commented Jun 9, 2025

I forgot to use "docker exec -ti pretalx pretalx init"

Thanks for the support.

Nevermind. Running this after running "docker compose up -d" was the solution. Thank you

@jxs714
Copy link

jxs714 commented Jun 9, 2025

How do you update the software? I see there is version 2025.1.0 - will there be updates for the docker?

@ZEROF
Copy link
Author

ZEROF commented Jun 9, 2025

@jxs714 there is no official update guide for docker, this question should be addressed in their repository, and last build for docker showing failure, meaning we still don't have 2025.1.0 version for docker users.

@jxs714
Copy link

jxs714 commented Jun 9, 2025

@jxs714 there is no official update guide for docker, this question should be addressed in their repository, and last build for docker showing failure, meaning we still don't have 2025.1.0 version for docker users. P.S. I included missing instruction 8/9 for fresh installed instance.

Hi, oh ok. thanks for the reply.

@ZEROF
Copy link
Author

ZEROF commented Jun 9, 2025

@jxs714 it's good that you are around, your post made me think to add two missing steps to guide (8/9). And for upgrade, I asked them to provide us with info, and when they answer I will include information to this guide of course.

@jxs714
Copy link

jxs714 commented Jun 9, 2025

@jxs714 it's good that you are around, your post made me think to add two missing steps to guide (8/9). And for upgrade, I asked them to provide us with info, and when they answer I will include information to this guide of course.

Fantastic! Thanks for the response and willingness to make the process easy and productive. Its really helpful

@ZEROF
Copy link
Author

ZEROF commented Jun 10, 2025

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

@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