I tested this out on my Orange Pi 5 Plus and have been very impressed so far . Orange Pi 5 Plus and other rockchip devices might finally be a SBC worth running a small media server from
It’ll hopefully make its way out in the next stable Jellyfin release (See PR) but for others looking to get this running in the interim I had success with a simple docker setup and systemd.
Simple docker jellyfin systemd setup
If you have an existing jellyfin instance, disable it with systemctl.
Ensure you have docker installed, if not, it can be installed with dietpi-software.
Create a startup script at /usr/local/bin/start-jellyfin-docker.sh with the contents
#!/bin/bash
CONTAINER_NAME="jellyfin"
# Check if the container is already running
if [ -n "$(docker ps -q -f name=${CONTAINER_NAME})" ]; then
echo "Container ${CONTAINER_NAME} is already running."
exit 0
fi
# Check if the container exists (but stopped)
if [ -n "$(docker ps -aq -f name=${CONTAINER_NAME})" ]; then
# Start the existing container
docker start ${CONTAINER_NAME}
else
# Run a new container
/usr/bin/docker run -d \
--name ${CONTAINER_NAME} \
--privileged \
--net=host \
--restart=unless-stopped \
--volume /path/to/config:/config \
--volume /path/to/cache:/cache \
--volume /path/to/media:/media \
$(for dev in dri dma_heap mali0 rga mpp_service \
iep mpp-service vpu_service vpu-service \
hevc_service hevc-service rkvdec rkvenc vepu h265e ; do \
[ -e "/dev/$dev" ] && echo " --device /dev/$dev"; \
done) \
nyanmisaka/jellyfin:latest-rockchip
fi
Make sure the startup script is executable with sudo chmod +x /usr/local/bin/start-jellyfin-docker.sh
In the script update the --volume arguments to the correct paths of your config, cache and media
Create a /etc/systemd/system/jellyfin-docker.service file with the contents
[Unit]
Description=Jellyfin via Docker with Rockchip HWA
Wants=network.target
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/start-jellyfin-docker.sh
ExecStop=/usr/bin/docker stop jellyfin
[Install]
WantedBy=multi-user.target
Then run sudo systemctl enable jellyfin-docker.service and sudo systemctl start jellyfin-docker.service and check if it’s accessible at 127.0.0.1:8096
Note: This setup will serve it at the local port of 8096 (dietpi-software’s installation sets it up at port 8097). If comfortable with docker you can change the exposed ports it’s served from.
When this is available in a stable Jellyfin release you’ll want to disable the service, remove these files above and install stable jellyfin via dietpi-software or your usual approach.
Actually the RK3588 especially is really capable as a media server. Being able to to do >real time HDR10 HW Tone mapping for 4K HDR content too (bc it has RGA3 while all other RK’s don’t) and 16x 1080p encodes/decodes at the same time.