Configuration reference
Every environment variable, mount and container option Parallax understands.
Almost everything you can change is in the app, under Settings. This page lists what is set outside the app, in your compose file or docker run command.
Environment variables
| Variable | Default | What it does |
|---|---|---|
DATA_DIR | /app/data | Where Parallax keeps its database, thumbnails and caches. Leave it at the default and mount your folder there. See Data folder and backups. |
LOG_LEVEL | INFO | How much the container writes to its log. Use DEBUG for more detail when tracking down a problem, or WARNING for less. |
PARALLAX_AUTH | on | Set to off to turn the sign-in off completely. Only do this if something else already protects the page, such as a VPN. Parallax logs a warning at every start while it is off. See Account and sign-in. |
NVIDIA_DRIVER_CAPABILITIES | set by the compose block | Only needed with plain docker run and an NVIDIA card. Use all, as described in Hardware acceleration. |
There is no variable for the port. Parallax always listens on 7899 inside the container, so change the left side of the ports mapping instead.
Mounts
| Path inside the container | Required | Purpose |
|---|---|---|
/app/data | Yes | Parallax's own data. Must be writable. |
/media (or any path you like) | Yes | Your media. Add as many as you need, and make them writable. Library paths you add in the app are paths as the container sees them. |
/app/scratch | No | A fast disk for work in progress during Compress and Toolbox. See Hardware acceleration. |
Container options
user: set it to your own user and group (idshows them) so files Parallax creates belong to you. It has to be able to write to/app/dataand to your media folders.restart:unless-stoppedis what the examples use, so Parallax starts again after a reboot.- GPU access: the
deployblock for NVIDIA, ordevicesandgroup_addfor Intel and AMD. See Hardware acceleration.
Checking it is healthy
Parallax answers a GET request on /api/health with a short status, and it is the one route that needs no sign-in. It is a handy target for an uptime monitor or a Docker health check, for example http://your-machine:7899/api/health. Use GET, not HEAD.
Everything else
All other behaviour is controlled from the app and saved in the database, which is why a backup of the data folder brings your whole setup back.