Install medialab Server with apt
medialab Server is distributed as signed Debian packages from https://apt.medialab.works/debian:
| Package | Content |
|---|---|
medialab-server |
the server (based on Jellyfin 12.2), the jellyfin system service and the in-app updater |
medialab-server-web |
the web interface |
jellyfin-ffmpeg8 |
Jellyfin's FFmpeg build used for transcoding |
medialab-repo |
the repository definition and its signing key |
Architectures: amd64 and arm64.
Supported systems
The packages are built for Debian 12 (bookworm) (+deb12 in the version) and its derivatives based on bookworm,
such as Raspberry Pi OS (64-bit) bookworm. They depend on Debian 12 libraries (for example libicu72), so they do not
install on Ubuntu releases or other Debian releases. On Ubuntu, use the container image instead
(see Install medialab Server in a container).
1. Add the repository
The medialab-repo package installs the repository definition and the signing key:
curl -fsSLO https://apt.medialab.works/medialab-repo.deb
sudo apt install ./medialab-repo.deb
It creates /etc/apt/sources.list.d/medialab.sources:
Types: deb
URIs: https://apt.medialab.works/debian
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/medialab-archive-keyring.gpg
Manual alternative. Download the key and create the same file yourself:
sudo curl -fsSL https://apt.medialab.works/debian/medialab-archive-keyring.gpg \
-o /usr/share/keyrings/medialab-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/medialab-archive-keyring.gpg
The key fingerprint must be 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7
("medialab Server packages packages@medialab.works"). Then write the medialab.sources file shown above.
apt checks the repository signature with this key on every apt update.
2. Install
sudo apt update
sudo apt install medialab-server medialab-server-web jellyfin-ffmpeg8
medialab-server replaces jellyfin-server and medialab-server-web replaces jellyfin-web: if Jellyfin is already
installed from Jellyfin's repository, apt removes those two packages and keeps your data, because medialab Server uses
the same folders. At the first start the database is upgraded to the 12.2 format, which an older Jellyfin cannot
open again: make a backup first (see below). If Jellyfin's repository is still configured, apt keeps the medialab
packages installed; you can remove Jellyfin's repository if you no longer need it.
3. The service
The server runs as the jellyfin system service, under the jellyfin user:
sudo systemctl status jellyfin
sudo systemctl restart jellyfin
sudo journalctl -u jellyfin -f
Open http://<server>:8096 and complete the setup wizard.
| Path | Content |
|---|---|
/etc/jellyfin |
settings (system.xml, network.xml, encoding.xml, logging.json) |
/var/lib/jellyfin |
database, plugins, metadata |
/var/log/jellyfin |
logs |
/var/cache/jellyfin |
cache |
/etc/default/jellyfin |
start-up options (web folder, FFmpeg path, extra options) |
/usr/share/jellyfin/web |
web interface |
/usr/lib/jellyfin-ffmpeg/ffmpeg |
FFmpeg |
To change the service user or other systemd options, use sudo systemctl edit jellyfin (or the file
/etc/systemd/system/jellyfin.service.d/jellyfin.service.conf).
For hardware transcoding with an Intel or AMD GPU, the package adds the jellyfin user to the render and video
groups; choose the method in Dashboard → Playback → Transcoding. For NVIDIA, install the NVIDIA driver from your
distribution first.
4. Updates
sudo apt update
sudo apt upgrade
The package stops the service during the upgrade and starts it again on the new version. The package also contains an updater service (medialab-update.path /
medialab-update.service) used by the Self-Update by MediaLab plugin to update the server from the web interface;
it installs the packages from this same repository.
To stay on one version: sudo apt-mark hold medialab-server medialab-server-web
(sudo apt-mark unhold … to undo).
Backup
Stop the service and copy the settings and data folders:
sudo systemctl stop jellyfin
sudo tar -czf medialab-backup-$(date +%F).tar.gz /etc/jellyfin /var/lib/jellyfin
sudo systemctl start jellyfin
Uninstall
sudo apt remove medialab-server medialab-server-web # keeps settings, data and logs
sudo apt remove medialab-repo # removes the repository
sudo apt purge medialab-server also deletes /etc/jellyfin, /var/lib/jellyfin (database, plugins, metadata),
/var/log/jellyfin, /var/cache/jellyfin and the jellyfin user. Make a backup before purging.
Troubleshooting
apt updatereports a signature error (NO_PUBKEY / EXPKEYSIG): reinstallmedialab-repo(step 1) to get the current key.- Unmet dependencies such as
libicu72: the system is not Debian 12; use the container image. - The service does not start:
sudo journalctl -u jellyfin -n 100and the files in/var/log/jellyfinshow the reason. Check that thejellyfinuser can read your media folders. - Port 8096 already in use: another Jellyfin or media server is running; stop it, or change the port in Dashboard → Networking.