Skip to content
 
 

Repository files navigation

pretalx-docker

This repository contains a docker-compose setup for a pretalx installation based on docker.

⚠️ Please note that this repository is provided by the pretalx community, and not supported by the pretalx team. ⚠️

⚠️ The files in this repository may not support the current pretalx version, or may be undocumented, not secure, and/or outdated. Please make sure you read the files before executing them, and check the issues for further information. ⚠️

Installation with docker-compose

For testing

Use the development overlay to prepare emails in the protected organiser Manual delivery screen:

docker compose -f docker-compose.yml -f compose.dev.yml up -d --build

The application is then available at http://localhost:8088/orga and the Mailpit inbox at http://localhost:8026. The overlay leaves SMTP unconfigured, so Mailpit receives no messages by default. To test SMTP delivery, set the application service's PRETALX_MAIL_HOST to mail and PRETALX_MAIL_PORT to 1025; Mailpit captures that mail locally. Its SMTP listener is also available on localhost:1026. Set up a user and an organiser with:

docker exec -it pretalx pretalx init

No messages are delivered externally in this setup. Override ARC_PRETALX_PORT, ARC_MAILPIT_PORT, or ARC_SMTP_PORT if a development port is already in use.

For production

Read the ARC production deployment and privacy guide before collecting real applications. It covers debug settings, network exposure, operator permissions and verification of protected document downloads.

  • Edit conf/pretalx.cfg and fill in your own values (→ configuration documentation)

  • Edit docker-compose.yml and change the line to ports: - "127.0.0.1:8346:80" (if you use nginx). Change the database password.

  • If you don't want to use docker volumes, create directories for the persistent data and make them read-writeable for the userid 999 and the groupid 999. Change pretalx-redis, pretalx-database, pretalx-data and pretalx-public to the corresponding directories you've chosen.

  • Configure a reverse-proxy for better security and to handle TLS. Pretalx listens on port 80 in the pretalxdocker network. You can find a few words on an nginx configuration at reverse-proxy-examples/nginx

  • Make sure you serve all requests for the /static/ and /media/ paths (when debug=false). See installation for more information

  • Optional: Some of the Gunicorn parameters can be adjusted via environment variables:

    • To adjust the number of Gunicorn workers, provide the container with GUNICORN_WORKERS environment variable.
    • GUNICORN_MAX_REQUESTS and GUNICORN_MAX_REQUESTS_JITTER to configure the requests a worker instance will process before restarting.
    • GUNICORN_FORWARDED_ALLOW_IPS lets you specify which IPs to trust (i.e. which reverse proxies' X-Forwarded-* headers can be used to infer connection security).
    • GUNICORN_BIND_ADDR can be used to change the interface and port that Gunicorn will listen on. Default: 0.0.0.0:80

    Here's how to set an environment variable in docker-compose.yml or when using docker run command.

  • Run docker-compose up -d . After a few minutes the setup should be accessible under http://yourdomain.com/orga

  • 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-app pretalx runperiodic

Updates with docker-compose

  • Run docker-compose stop, docker-compose pull and finally docker-compose up -d to upgrade to the newest version.

Backups

Back up the database (pretalx-database), pretalx-data and the uploaded media in pretalx-public. Private application documents and temporary uploads live in /data/arc-private; public uploads such as avatars live at /public/media. Neither is regenerable. /public/static is regenerable. The data volume holds the instance's .secret file used to derive the Django SECRET_KEY. Losing that secret invalidates signed values such as sessions and password-reset tokens. Treat all backups as sensitive recruitment data.

Other installations

For pretalx-docker maintainers

To upgrade the repo to a new version, e.g. v2025.2.2, run just release v2025.2.2. This should handle the submodule, make a properly tagged commit, and push it including the tags.

About

Docker setup for a pretalx installation. Community-sourced, not officially supported.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages