-
Notifications
You must be signed in to change notification settings - Fork 1
/
dmb.xml
105 lines (105 loc) · 15.1 KB
/
dmb.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?xml version="1.0"?>
<Container version="2">
<Name>dmb</Name>
<Repository>iampuid0/dmb:latest</Repository>
<Registry>https://hub.docker.com/r/iampuid0/dmb/</Registry>
<Network>bridge</Network>
<Privileged>false</Privileged>
<ReadMe>https://github.com/I-am-PUID-0/DMB/wiki</ReadMe>
<Support>https://discord.gg/8dqKUBtbp5</Support>
<Project>https://github.com/I-am-PUID-0/DMB</Project>
<Overview>This is an unRAID Docker template for:

Debrid Media Bridge

"An All-In-One image for the unified deployment of Riven, Zurg, and rclone"
https://hub.docker.com/r/iampuid0/dmb/

!!!DO ONE OF THESE TWO ACTIONS BELOW WHILE SETTING IT UP OR ELSE THE CONTAINER WILL NOT RUN!!!

Why? During the first setup, directories will be created using root user on the host OS (unRAID). 
However, the container uses a non-root user called DMB when running normally.
So, you need to change the owner of the DMB directories to the unRAID default of owner: nobody group:users aka 99:100

Method 1 CLI
1. stop the docker container fully. Wait to see it fully stopped.
2. access the terminal as root user
3. run the command chown -R 99:100 /mnt/user/appdata/DMB
4. run the above command again for any other directories used by DMB eg /mnt/user/DMB (skip if you only have one directory-this template has two directories by default)
5. Restart the container. Check logs. You might need to stop container and run the chown command two times during the first setup only.

Method 2 unRAID GUI
1. stop the docker container fully. Wait to see it fully stopped.
2. login to unRAID GUI as root user
3. Locate your ./appdata/DMB directory (if you setup shares (most people do) then click shares, go into appdata, you'll see DMB there after the first run)
4. click the + sign on the right side of the ./appdata/DMB directory. Change owner. Choose nobody in the drop down menu (it is called just that: nobody) as the owner. Apply the change
5. repeat above steps if you have other directories used by DMB eg /mnt/user/DMB (this template has two directories by default)
6. Restart the container. Check logs. You might need to stop container and do the steps twice during the first setup only.
"What are Riven and Zurg? What is all of this stuff?"

Riven is a new, still in development, open source, free, media solution that combines a bunch of ideas into one complete, polished package.

More specifically, in the same vein as plex_debrid before (github repo: itstoggled/plex_debrid - now archived), it allows for end users to input their own (paid) real-debrid API token (real-debrid.com for info) (other "debrids" not supported at the moment) and then access "cached torrents" on the real-debrid servers. Cached torrents allow the user to stream the video file being sought, whether movie or tv show.

Zurg is a specialized rclone mount and filtering program. Basically, it takes a raw rclone mount of all torrents a user has in their debrid library, and it filters them resulting in a huge variety of variables such as file size, bitrate, resolution, etc. (huge list).

This project also leverages the power of rclone to mount the debrid webdav directory into your OS, unRAID in this case, inside of a docker container. When you provide this mount path to your Plex server Plex won't distingtush between local media that you might have and this mounted media. It will stream the media directly from the real-debrid (or other servers if added later by devs) servers to your Plex server where it will be played lag-free assuming your network/server/player can handle it.

PostgreSQL database is also used to store settings and relevant information.

"So, why this image and not the image from the developers of Riven or Zurg?"

You could certainly use those if you wish to setup all the invidivdual components. This AIO image just seeks to simplify and streamline the process.

links for a ton more information if desired or required:

DMB AIO wiki: https://github.com/I-am-PUID-0/DMB/wiki
Riven Wiki: https://rivenmedia.github.io/wiki/

https://github.com/rivenmedia/riven
https://github.com/debridmediamanager/zurg-testing
https://rclone.org/docs/
https://www.postgresql.org/</Overview>
<Category>MediaApp:Video MediaServer:Video</Category>
<WebUI>http://[IP]:[PORT:3000]</WebUI>
<TemplateURL>https://raw.githubusercontent.com/Unlearned6688/unraid-templates/master/dmb.xml</TemplateURL>
<Icon>https://github.com/I-am-PUID-0/DMB/assets/36779668/d0cbc785-2e09-41da-b226-924fdfcc1f21?raw=1</Icon>
<ExtraParams>--shm-size=128MB -it --cap-add SYS_ADMIN --security-opt apparmor:unconfined</ExtraParams>
<Requires>!!!!!!!!! ADDITIONAL STEPS REQUIRED DURING INITIAL SETUP !!!!!!!!!

This link has all the information and links you might need: https://github.com/Unlearned6688/unraid-templates/blob/main/template-readmes/dmb-readme.md

Please read and perform the steps outlined in the overview of this docker container template or at the link provided above. After performing those steps, I highly, HIGHLY recommend at least skimming through the documentation provided by i-am-puid-0 (links in the overview). DMB isn't a simple project. It does require some amount of input by users (that's you) to understand what it does and what they want from it. Then it will be your best buddy. So please read the very little stuff! It will save you and anyone answering your questions time and frustration. Please! Thank you!</Requires>
<Config Name="Timezone" Target="TZ" Default="" Mode="" Description="Enter your timezone. List here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" Type="Variable" Display="always" Required="true" Mask="false"></Config>
<Config Name="rclone config directory" Target="/config" Default="/mnt/user/appdata/DMB/config" Mode="rw" Description="Directory where your rclone config file will be stored." Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/DMB/config</Config>
<Config Name="rclone parent directory" Target="RCLONE_DIR" Default="/data" Mode="" Description="This sets the parent directory for the rclone mount. Default is /data. You only need to change this IF you changed the default path for zurg in this template! Otherwise leave it as /data or you may delete this variable, if you wish." Type="Variable" Display="advanced" Required="false" Mask="false">/data</Config>
<Config Name="log directory" Target="/log" Default="/mnt/user/appdata/DMB/log" Mode="rw" Description="Directory where your DMB logs will be found." Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/DMB/log</Config>
<Config Name="Real-debrid directory" Target="/zurg/RD" Default="/mnt/user/appdata/DMB/Zurg/RD" Mode="rw" Description="Directory for Real-Debrid config related files. These are used by the Zurg rclone mount of your Real-Debrid webDAV (read support documents for more info)" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/DMB/Zurg/RD</Config>
<Config Name="Name of the rclone mount" Target="RCLONE_MOUNT_NAME" Default="DMB" Mode="" Description="rclone mount name. can be renamed if you wish, but why?" Type="Variable" Display="always" Required="false" Mask="false">DMB</Config>
<Config Name="PostgreSQL directory" Target="/postgres_data" Default="/mnt/user/appdata/DMB/PostgreSQL/data" Mode="rw" Description="Directory for the postgreSQL database files used with DMB." Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/DMB/PostgreSQL/data</Config>
<Config Name="Riven backend data path" Target="/riven/backend/data" Default="/mnt/user/appdata/DMB/Riven/data" Mode="rw" Description="Directory for the riven backend." Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/DMB/Riven/data</Config>
<Config Name="Enable Zilean" Target="ZILEAN_ENABLED" Default="true|false" Mode="" Description="Enables Zilean. Optional but HIGHLY recommended! Note: The first run of Zilean takes a while to grab all the files! more info: https://github.com/iPromKnight/zilean" Type="Variable" Display="always" Required="false" Mask="false"></Config>
<Config Name="Zilean Path" Target="/zilean/app/data" Default="/mnt/user/DMB/zilean/data" Mode="rw" Description="if ZILEAN_ENABLE = true above, then you need to provide this path. Ziilean is highly recommended to grab high quality cached torrent lists!" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/DMB/zilean/data</Config>
<Config Name="Zurg rclone mount -- ADD THIS DIRECTORY TO Plex/Jellyfin/Emby!" Target="/data" Default="/mnt/user/DMB/Zurg/mnt" Mode="rw,shared" Description="MUST BE 'Read/Write - Shared'!!! You must add the full host path above to your plex container. DO NOT ADD THIS AS A LIBRARY! ONLY ADD THE PATH TO PLEX! THAT'S ALL!" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/DMB/Zurg/mnt</Config>
<Config Name="Riven symlink mount directory -- ADD THIS DIRECTORY TO Plex/Jellyfin/Emby!" Target="/mnt" Default="/mnt/user/DMB/Riven/mnt" Mode="rw" Description="Directory for the riven symlinks. This directory is where Plex/Jellyfin/Emby will be looking to see your shows/movies! ADD THIS DIRECTORY TO Plex/Jellyfin/Emby! ADD IT AS A LIBRARY! eg in Plex it would be a library to '/mnt/movies' and '/mnt/shows'" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/DMB/Riven/mnt</Config>
<Config Name="ORIGIN" Target="ORIGIN" Default="http://0.0.0.0:3000" Mode="" Description="origin URL http://[ip address]:[port] format No trailing slash!" Type="Variable" Display="always" Required="true" Mask="false"></Config>
<Config Name="PLEX_ADDRESS" Target="PLEX_ADDRESS" Default="http://192.168.1.1:32400" Mode="" Description="Change the URL to match your Plex server IP. This can be set in the Riven GUI, if desired." Type="Variable" Display="always" Required="false" Mask="false"></Config>
<Config Name="PLEX_TOKEN" Target="PLEX_TOKEN" Default="" Mode="" Description="Obtain your Plex token and paste it here. This can be entered in the Riven GUI as well" Type="Variable" Display="always" Required="false" Mask="true"></Config>
<Config Name="RD_API_KEY" Target="RD_API_KEY" Default="" Mode="" Description="https://real-debrid.com/apitoken Enter your real-debrid token from the link. Keep this token/key SAFE! Treat it as you would a password. If others obtain it, they can access your real-debrid account." Type="Variable" Display="always" Required="false" Mask="true"></Config>
<Config Name="pgAdmin 4 Setup Email" Target="PGADMIN_SETUP_EMAIL" Default="" Mode="" Description="Optional. Put an email here to activate pgAdmin 4, a tool used to explore PostgreSQL databases. You will login using this email. Web UI defaults to: http://YOUR_DMB_IP:5050" Type="Variable" Display="always" Required="false" Mask="false"></Config>
<Config Name="pgAdmin 4 Setup Password" Target="PGADMIN_SETUP_PASSWORD" Default="" Mode="" Description="Optional. Set this to enable pgAdmin along with an email. Your login credentials are the email + this password. Web UI defaults to: http://YOUR_DMB_IP:5050" Type="Variable" Display="always" Required="false" Mask="true"></Config>
<Config Name="Enable Zurg" Target="ZURG_ENABLED" Default="true|false" Mode="" Description="Variable to enable zurg. Keep this enabled (true) unless you have a reason to change it." Type="Variable" Display="advanced" Required="true" Mask="false">true</Config>
<Config Name="Update Zurg" Target="ZURG_UPDATE" Default="true|false" Mode="" Description="Set to true and zurg will automatically grab updates when available. Recommended to keep this set to true." Type="Variable" Display="advanced" Required="false" Mask="false">true</Config>
<Config Name="Enable riven backend updates" Target="RIVEN_BACKEND_UPDATE" Default="true|false" Mode="" Description="Set to true and riven backend will automatically grab updates when available. Recommended to keep this set to true." Type="Variable" Display="advanced" Required="false" Mask="false">true</Config>
<Config Name="Enable riven frontend updates" Target="RIVEN_FRONTEND_UPDATE" Default="true|false" Mode="" Description="Variable to set DMB to update riven frontend automatically or not. True is default. Recommended to keep this true." Type="Variable" Display="advanced" Required="false" Mask="false">true</Config>
<Config Name="Enable frontend logs" Target="FRONTEND_LOGS" Default="ON|OFF" Mode="" Description="Toggle frontend logs on/off default is on" Type="Variable" Display="advanced" Required="false" Mask="false">ON</Config>
<Config Name="Enable backend logs" Target="BACKEND_LOGS" Default="ON|OFF" Mode="" Description="Toggles on or off the backend logs. default is on." Type="Variable" Display="advanced" Required="false" Mask="false">ON</Config>
<Config Name="Enable Riven frontend" Target="RIVEN_FRONTEND_ENABLED" Default="true|false" Mode="" Description="Enables the riven frontend. Keep this true unless you have a reason to change it." Type="Variable" Display="advanced" Required="true" Mask="false">true</Config>
<Config Name="Enable Riven backend" Target="RIVEN_BACKEND_ENABLED" Default="true|false" Mode="" Description="Enables the riven backend. Keep this true unless you have a reason to change it." Type="Variable" Display="advanced" Required="true" Mask="false">true</Config>
<Config Name="Riven webGUI port" Target="3000" Default="" Mode="tcp" Description="This is the port the Riven webGUI will show up on. eg http://192.168.1.5:3000" Type="Port" Display="advanced" Required="true" Mask="false">3000</Config>
<Config Name="pgAdmin 4 Port" Target="5050" Default="5050" Mode="tcp" Description="Port for pgAdmin 4. Can be removed if you aren't using pgAdmin. Host port number can be changed if required. Keep container port 5050." Type="Port" Display="advanced" Required="false" Mask="false">5050</Config>
<Config Name="Access Host OS fuse" Target="" Default="" Mode="" Description="Path to docker fuse on the unraid host. Has to be included otherwise fuser fails to mount." Type="Device" Display="advanced" Required="true" Mask="false">/dev/fuse:/dev/fuse:rwm</Config>
<Config Name="PUID" Target="PUID" Default="99" Mode="" Description="Set the system PID. unraid uses nobody:users (99:100). docker should match the OS if possible. recommended to not change this unless you have a reason." Type="Variable" Display="advanced" Required="false" Mask="false">99</Config>
<Config Name="PGID" Target="PGID" Default="100" Mode="" Description="Set the system PGID. unraid uses nobody:users (99:100). docker should match the OS if possible. recommended to not change this unless you have a reason." Type="Variable" Display="advanced" Required="false" Mask="false">100</Config>
<Config Name="Database hard reset" Target="HARD_RESET" Default="true|false" Mode="" Description="Leave this false unless you wish to reset the database!" Type="Variable" Display="advanced" Required="false" Mask="false">false</Config>
</Container>