- Introduction
- Features
- Prerequisites
- Configuration
- Usage
- Security Considerations
- Troubleshooting
- License
This repository provides a custom Jellyfin docker image with integrated Rclone support to streamline setup with renterd
. Providing a quick and easy method to begin streaming media stored on the Sia network.
- Jellyfin Integration: Access and stream your
renterd
media library via Jellyfin's intuitive web interface and apps. - Rclone: Mounts
renterd
through its S3 endpoint as/mnt/renterd
within the container. - Plug n’ Play
renterd
: Preconfigured to work out of the box withrenterd
. Streamlining the process of streaming media from the Sia network. - Persistent Storage: Configuration and cache data are persisted using Docker volumes.
- FUSE Support: Enables filesystem mounting with appropriate permissions.
Before setting up the custom Jellyfin Docker container, ensure you have the following:
- Docker: Installed on your system. Install Docker
- Docker Compose: Installed to orchestrate multi-container setups. Install Docker Compose
renterd
Instance: A runningrenterd
service with a configured S3 storage endpoint.
The custom Jellyfin Docker image requires several environment variables to configure Rclone and Jellyfin. These variables can be set in a .env
file for ease of management.
Configure env.template
with your S3 details and rename to .env
before deployment.
# S3 Configuration
S3_BUCKET=your_bucket_name
S3_ACCESS_KEY_ID=your_access_key
S3_SECRET_ACCESS_KEY=your_secret_key
Replace the placeholders your_bucket_name
, your_access_key
, and your_secret_key
with your renterd
S3 details. You do not need to change the S3_ENDPOINT_URL
unless you have changed renterd
's container name in your docker-compose.yml
or would like to specify a different port.
Sample docker-compose.yml
:
services:
jellyfin:
image: skunkink/renterd-jellyfin
restart: always
container_name: jellyfin
environment:
S3_BUCKET: ${S3_BUCKET:-default}
S3_ENDPOINT_URL: ${S3_ENDPOINT_URL:-http://renterd:8080}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}
ports:
- 8096:8096
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
cap_add:
- SYS_ADMIN
devices:
- /dev/fuse
security_opt:
- apparmor:unconfined
If you are running renterd
in docker, you can add the following to the end of your jellyfin
service. This will ensure that renterd
is running before attempting to create a S3 mount point.
depends_on:
renterd:
condition: service_started
First, clone this repository to your local machine:
git clone https://github.com/skunk-ink/renterd-jellyfin.git
cd renterd-jellyfin
Note: Before you deploy the docker image, make sure you have created both a .env
and docker-compose.yml
as explained in the configuration section.
Deploy the Jellyfin container using:
docker compose up -d
Explanation:
-
docker compose up -d
: Builds the docker services as defined in thedocker-compose.yml
file.Ensure you're in the project directory containing the
docker-compose.yml
file.
After successfully starting the services, access the Jellyfin web interface:
-
Open a Web Browser:
Navigate to
http://localhost:8096
orhttp://your_server_ip:8096
. -
Jellyfin Setup:
- First-Time Setup: Follow the on-screen instructions to set up your Jellyfin server.
- Media Libraries: When adding libraries, your
renterd
media can be located under/mnt/renterd
.
To update your running renterd-jellyfin
container with the latest changes:
- Rebuild the Docker Image:
docker compose pull
- Redeploy the Container:
docker compose up -d
- Environment Variables:
- Store sensitive information like your
S3_ACCESS_KEY_ID
andS3_SECRET_ACCESS_KEY
securely in the.env
file.
- Store sensitive information like your
- Network Exposure:
- Expose only necessary ports. If deploying in a production environment, consider using a reverse proxy with HTTPS.
To inspect the logs of the Jellyfin container:
docker compose logs -f jellyfin
Press Ctrl + C
to exit the log view.
This project is licensed under the MIT License.