Requirements and compatibility
What you need to run PlexSub
PlexSub is designed to run as a self-hosted application with Docker Compose. The public project template uses two services:
app: the PlexSub application.db: PostgreSQL.
The reference files are:
docker-compose.example.yml.env.exampleDockerfile
Docker and Docker Compose
PlexSub is deployed with Docker Compose.
Typical commands:
docker compose pull
docker compose up -d
docker compose ps
The public guide recommends copying docker-compose.example.yml and .env.example into a runtime folder outside the source-code checkout.
PostgreSQL
The current template uses PostgreSQL:
- Default image:
postgres:18.4-alpine - Image variable:
PLEXSUB_POSTGRES_IMAGE_REF - Data volume:
plexsub_postgres_data - Mounted path inside the container:
/var/lib/postgresql
Important:
- Do not change PostgreSQL major versions by recreating the container on the same volume.
- Before a major upgrade, create a backup and test restoring it.
- When migrating from an earlier PostgreSQL version, treat it as a controlled dump/restore operation or equivalent.
Minimum resources
The project does not publish a fixed minimum-requirements table by number of users. docker-compose.example.yml does define recommended limits and reservations for its sample deployment:
| Service | CPU reservation | CPU limit | RAM reservation | RAM limit |
|---|---|---|---|---|
app | 1 CPU | 2 CPU | 512 MB | 1 GB |
db | 0.5 CPU | 1 CPU | 256 MB | 512 MB |
In practice:
- For a small installation, use at least the resources reserved by the template.
- Leave extra capacity when you enable many integrations, history queries, searches, or download modules.
- Keep enough free storage for PostgreSQL, backups, and uploads.
Supported architecture
The Dockerfile uses Node 24 Alpine and PostgreSQL Alpine images. The repository does not publish an official CPU architecture matrix.
- Use an architecture supported by the Docker images you plan to run.
- Confirm that the image digest you pin exists for your platform.
- On a NAS, Unraid, ARM, or less common hardware, validate first with
docker compose pullanddocker compose up -d.
Node runtime
The codebase declares:
- Node.js:
>=24.0.0 <25.0.0 - Runtime image:
node:24-alpine
For local development, use Node 24. Docker is the recommended production path.
Browsers
PlexSub is a modern web application with a React frontend. Use a current version of Chrome, Edge, Firefox, or Safari. Avoid outdated browsers and WebViews; if you see a visual issue, first try an up-to-date desktop browser.
Network and ports
By default:
- The application listens on port
5000inside the container. - The template exposes
${PORT:-5000}:5000. - The public demo compose binds
127.0.0.1:${DEMO_PORT:-5001}:5000.
When exposing PlexSub to the internet:
- Use HTTPS.
- Configure
APP_BASE_URLaccurately. - Set
TRUST_PROXY_LEVELonly when a trusted proxy is in front of PlexSub. - Keep
FORCE_SECURE_COOKIES=1.