Kamis, 16 Juli 2026

Rclone HTTP Mount untuk Jellyfin

Membuat Link Film Online Menjadi Library Lokal Jellyfin dengan Rclone

Dokumen ini menjelaskan cara membuat folder film online menjadi seperti folder lokal agar bisa dibaca oleh Jellyfin tanpa harus mendownload seluruh koleksi film.

1. Konsep Sederhana

Alur sistem:

Website Film (Index MKV)
          |
          |
       Rclone HTTP
          |
          |
 Folder Lokal Virtual
          |
          |
       Jellyfin

Jellyfin tidak membaca internet secara langsung. Jellyfin hanya membaca folder lokal yang dibuat oleh rclone.

2. Membuat Remote Rclone

Masuk konfigurasi rclone:

rclone config

Pilih:

  • New remote
  • Nama remote: eleaar
  • Storage: HTTP
  • URL: alamat folder film

Contoh hasil konfigurasi:

[eleaar]
type = http
url = https://perso.eleaar.fr/serveur/films/Par genre (Allociné)/

3. Mengecek Remote

Tes apakah rclone bisa membaca isi folder:

rclone ls eleaar: --no-check-certificate

Jika berhasil akan muncul daftar film:

Fantastique/Harry Potter.mkv
Science-fiction/Star Wars.mkv
Action/Matrix.mkv

4. Membuat Folder Mount

Buat lokasi yang akan dibaca Jellyfin:

mkdir -p /mnt/NAStb/Media/WebMovies

Folder ini menjadi pintu masuk ke koleksi film online.

5. Tes Mount Manual

rclone mount eleaar: /mnt/NAStb/Media/WebMovies \
--allow-other \
--vfs-cache-mode writes \
--dir-cache-time 12h \
--no-check-certificate

Cek isi folder:

ls /mnt/NAStb/Media/WebMovies

Jika muncul folder genre film berarti berhasil.

6. Membuat Service Otomatis

Agar mount aktif otomatis setelah restart server, buat service:

nano /etc/systemd/system/rclone-webmovies.service
Isi:
[Unit]
Description=Rclone WebMovies Mount
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root

ExecStart=/usr/bin/rclone mount eleaar: /mnt/NAStb/Media/WebMovies \
--allow-other \
--vfs-cache-mode writes \
--dir-cache-time 12h \
--no-check-certificate

ExecStop=/bin/fusermount -u /mnt/NAStb/Media/WebMovies

Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

7. Mengaktifkan Service

systemctl daemon-reload

systemctl enable rclone-webmovies

systemctl start rclone-webmovies

Cek status:

systemctl status rclone-webmovies --no-pager
Jika berhasil:
Active: active (running)

8. Hubungan dengan Jellyfin Docker

Pada setup ini Jellyfin sudah membaca:

Host:
 /mnt/NAStb/Media

Container:
 /media

Maka folder rclone otomatis terlihat oleh Jellyfin:

/media/WebMovies

Saat membuat Library Jellyfin:

Dashboard
    |
Libraries
    |
Add Media Library
    |
Movies
    |
Folder:
/media/WebMovies

9. Menambah Sumber Film Baru

Untuk URL film baru, langkahnya selalu sama:

  1. Buat remote rclone baru.
  2. Tes dengan rclone ls.
  3. Buat folder mount baru.
  4. Buat service baru dengan nama berbeda.
  5. Tambahkan folder tersebut ke Jellyfin.

Contoh:

eleaar
 |
 /media/WebMovies


serverfilm2
 |
 /media/WebMovies2

Kesimpulan

Dengan rclone, server Armbian tidak perlu menyimpan semua film. Rclone hanya membuat "jembatan" antara internet dan Jellyfin.

Hasil akhirnya:

URL Film Online
        |
      Rclone
        |
 Folder Virtual Lokal
        |
     Jellyfin
        |
 Streaming

Rangkuman Troubleshooting Rclone HTTP Mount untuk Jellyfin Docker

Masalah Awal

Jellyfin hanya menampilkan library WebMovies tetapi tidak menemukan folder maupun film.

Kondisi awal:

Host:
 /mnt/NAStb/Media/WebMovies

Folder film dapat diakses langsung dari host, contoh:

ls /mnt/NAStb/Media/WebMovies/Fantastic

Namun Jellyfin tidak menampilkan isi folder.

Pemeriksaan Awal

1. Jellyfin bukan service systemd

systemctl status jellyfin

Output:
Unit jellyfin.service could not be found.

Kesimpulan: Jellyfin berjalan menggunakan Docker.

2. Container Jellyfin ditemukan

docker ps

Container:
jellyfin/jellyfin:latest
Nama:
jellyfin

Pemeriksaan Docker Mount

Hasil:

docker inspect jellyfin --format '{{json .Mounts}}'

[
 {
  "Source":"/mnt/NAStb/Media",
  "Destination":"/media"
 }
]

Artinya:

Host Container Jellyfin
/mnt/NAStb/Media /media

Masalah Ditemukan

Saat masuk ke container:

docker exec -it jellyfin bash

Path host tidak tersedia:

ls /mnt/NAStb/Media/WebMovies

No such file or directory

Karena container hanya mengenal:

/media/WebMovies

Penyebab Utama

Docker Jellyfin sudah berjalan ketika rclone mount belum aktif.

Akibatnya bind mount Docker mengarah ke folder kosong.

Solusi Sementara

Restart container Jellyfin:

docker restart jellyfin

Setelah restart:

docker exec -it jellyfin bash

ls -la /media/WebMovies

Hasil:

Action
Animation
Aventure
Fantastique
Science-fiction
Drama
Thriller
...

Jellyfin akhirnya dapat melihat folder rclone.

Solusi Permanen

Membuat systemd memastikan:

  1. rclone mount aktif lebih dahulu
  2. Docker berjalan setelah rclone siap
  3. Jellyfin otomatis membaca mount setelah reboot

Service Rclone Saat Ini

systemctl cat rclone-webmovies.service
[Unit]
Description=Rclone WebMovies Mount
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root

ExecStart=/usr/bin/rclone mount eleaar: /mnt/NAStb/Media/WebMovies \
--allow-other \
--vfs-cache-mode writes \
--dir-cache-time 12h \
--no-check-certificate

Restart=always
RestartSec=10

Dependency Rclone ke Docker

Override dibuat:

/etc/systemd/system/rclone-webmovies.service.d/override.conf
Isi:
[Unit]
Before=docker.service

Dependency Docker ke Rclone

Override Docker dibuat:

/etc/systemd/system/docker.service.d/rclone.conf
Isi:
[Unit]
Requires=rclone-webmovies.service
After=rclone-webmovies.service

Status Saat Ini

Pengecekan:

systemctl status docker.service
Menunjukkan:
Drop-In:
/etc/systemd/system/docker.service.d
 └─ override.conf, rclone.conf

Artinya systemd sudah membaca dependency Docker terhadap rclone.

Langkah Berikutnya

Sebelum reboot lakukan pengecekan:

cat /etc/systemd/system/docker.service.d/rclone.conf
Harus:
[Unit]
Requires=rclone-webmovies.service
After=rclone-webmovies.service

Kemudian cek:

systemctl list-dependencies docker.service | grep rclone
Target:
rclone-webmovies.service

Dan pastikan:

systemctl is-enabled rclone-webmovies.service
Target:
enabled

Kesimpulan

  • Masalah bukan permission user Jellyfin.
  • Jellyfin berjalan di Docker.
  • rclone mount sudah benar dengan --allow-other.
  • Masalah utama adalah urutan startup: Docker berjalan sebelum rclone mount siap.
  • Solusi permanen: membuat dependency systemd antara rclone dan Docker.

Tidak ada komentar:

Posting Komentar