Install Credenza
Two containers, on anything that runs Docker. Or one line on a Linux machine you already own: it needs nothing but systemd, and it brings its own runtime — nothing from Microsoft, nothing to compile.
Latest release
Docker
x86-64 · ARM64
The server and its database as two containers, for a NAS or anything that already runs them.
Docker
x86-64 · ARM64
The server and its database as two containers, for a NAS or anything that already runs them.
01 Save this as
docker-compose.ymlin a folder of its own, and change/srv/mediato wherever your films and shows are.
the Compose fileservices: credenza: image: credenza/credenza:${CREDENZA_VERSION:-latest} restart: unless-stopped user: "${PUID:?set PUID in .env}:${PGID:?set PGID in .env}" ports: - "8080:8080" environment: HOME: /data MediaServer__Database__ConnectionString: >- Host=postgres;Database=credenza;Username=credenza;Password=${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} volumes: - ./data/credenza:/data # Your media, at the same path on both sides: # it is the path you give Credenza when you add a library. - /srv/media:/srv/media depends_on: postgres: condition: service_healthy postgres: image: credenza/postgres:18-pgmq1.12.0-pgsearch0.25.3 restart: unless-stopped user: "${PUID:?set PUID in .env}:${PGID:?set PGID in .env}" environment: POSTGRES_DB: credenza POSTGRES_USER: credenza POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} volumes: - ./data/postgres:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U credenza -d credenza"] interval: 5s timeout: 3s retries: 3002 Give the database a password and start it, in the same folder. Both containers run as
PUIDandPGID— your own account below; set them to whichever account owns your media if that is someone else. Then visit port 8080 and the server asks for its administrator, as it does on Linux.
the start commandsecho "POSTGRES_PASSWORD=$(openssl rand -hex 24)" > .env echo "PUID=$(id -u)" >> .env echo "PGID=$(id -g)" >> .env mkdir -p data/credenza data/postgres docker compose up -d03 Optional: transcode on the GPU. Pick your card and save its file as
docker-compose.override.ymlbeside the first one and rundocker compose up -dagain. Settings → Server → Transcoding then says which encoder it chose.Needs the NVIDIA Container Toolkit on the host. Works on Windows too, under Docker Desktop.
the NVIDIA override fileservices: credenza: environment: NVIDIA_DRIVER_CAPABILITIES: compute,utility,video deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu, video]Linux only. Add the render device’s group to
.envfirst, then save the file:
the render group commandecho "RENDER_GID=$(stat -c %g /dev/dri/renderD128)" >> .env
the AMD and Intel override fileservices: credenza: devices: - /dev/dri:/dev/dri group_add: - "${RENDER_GID:?set RENDER_GID in .env}"
Upgrading, and pinning a version
To move to the newest release:
docker compose pull && docker compose up -dthe upgrade commandTo stay on one, put CREDENZA_VERSION=0.1.1 in .env beside the password. The version numbers are the Linux packages’ own, so the two installs are always the same release.
Linux
x86-64 · ARM64
One command that installs the server as a service, on any machine with systemd.
Linux
x86-64 · ARM64
One command that installs the server as a service, on any machine with systemd.
curl -fsSL https://credenza.tv/install.sh | shthe install commandRun the same line again to upgrade. Read the script before you pipe it to a shell.
- 01
Installs the right package
The .deb on Debian and Ubuntu, the .rpm on Fedora and RHEL, a tarball on anything else with systemd — checked against the release’s checksums before anything is installed.
- 02
Asks where the database runs
In Docker, which it installs for you and is the recommended answer, or in this machine’s own PostgreSQL with the three extensions Credenza needs added to it.
- 03
Opens in a browser
Visit port 8080 on the machine and the server asks for its administrator, its first libraries and a TMDB token. Everything else is set from there.
Unattended installs, and Fedora
To answer the database question up front — for a script, or a machine you are not sitting at:
curl -fsSL https://credenza.tv/install.sh | sh -s -- --database docker --yesthe unattended install commandPut CREDENZA_VERSION=0.1.1 before sh to pin a version, and pass --no-setup to install the package and run sudo credenza-setup yourself.
On Fedora, the default ffmpeg has no H.264 encoder, so anything that needs transcoding will not play. Swap it for RPM Fusion’s:
sudo dnf swap ffmpeg-free ffmpeg --allowerasingthe Fedora ffmpeg commandWindows
Coming soonAn installer that runs the server as a service, with the database set up for you.
macOS
Coming soonFor the Mac mini in the cupboard, on Apple silicon and Intel alike.