Proxmox VE — LXC deployment
Questarr can run directly inside a Proxmox VE LXC container, without Docker. The container runs Questarr from source as asystemd service, which keeps the footprint small (no container runtime,
no image layers) and makes it behave like any other service on your Proxmox node.
Quick start
Run this on the Proxmox host (the node itself, not inside a container or VM), asroot:
- Verify it is running on a Proxmox VE node.
- Prompt for the container settings (ID, hostname, cores, RAM, disk, storage, network, port), each with a sensible default.
- Download the newest Debian LXC template if your node does not already have it.
- Create and start an unprivileged container.
- Install Node.js, build Questarr from source, and register a
questarr.serviceunit. - Print the URL to open.
http://<container-ip>:5000.
Non-interactive install
Every prompt has an environment variable override. Pass--yes to accept all of them without
prompting:
Sizing
2 GiB of RAM is the practical floor: the installer builds the client with Vite and type-checks the server withtsc, and both run during installation. You can lower the container’s RAM afterwards if
you want — Questarr itself is comfortable in far less — but leave it at 2 GiB whenever you update,
since an update rebuilds from source.
The default 8 GiB disk covers the OS, Node.js, node_modules, and the build output with room to
spare. Questarr’s own data (a SQLite database) stays small; it does not store game files.
Managing the container
Updating
Following the Proxmox helper-script convention, the installer places anupdate command inside the
container:
data/ directory and .env are preserved.
If no published release can be resolved — either the repository has none, or the unauthenticated
GitHub API rate limit was hit — the installer says so and falls back to the main branch, which is
development code. Pin a release with QUESTARR_REF if you want to avoid that.
To move to a specific version instead:
Configuration
All of the options in.env.example apply. Edit /opt/questarr/.env and restart:
vi ships with the base Debian template; install nano first with apt-get install -y nano if you prefer it.)
IGDB credentials, indexers, and download clients are configured in the web UI under Settings, so
you normally do not need to touch .env at all.
Installing into an existing container or VM
questarr-install.sh is standalone. If you already have a Debian or Ubuntu LXC (or a plain VM), run
this inside it as root:
systemd service and update helper. It is safe to re-run: it replaces the
application tree while preserving data/ and .env.
Notes and troubleshooting
- The service runs unprivileged. Questarr runs as the
questarrsystem user under a hardened unit (ProtectSystem=strict,NoNewPrivileges,PrivateTmp), with/opt/questarras the only writable path. - The install fails at “Waiting for network”. The container could not resolve DNS. Check that the bridge you chose is correct and that your static IP and gateway are valid.
- The install fails during
npm cior the build. Almost always the container ran out of RAM or disk. Raise them (pct set 210 --memory 2048,pct resize 210 rootfs +4G) and re-runupdate. - The service will not start.
pct exec 210 -- journalctl -u questarr -n 50shows the reason. A port already in use and a non-writabledata/directory are the usual causes. - Backups.
/opt/questarr/dataholds everything that matters. A Proxmox container backup (vzdump) covers it, as does copying that directory.