Skip to content

Instantly share code, notes, and snippets.

@johncm
Last active March 13, 2024 15:44
Show Gist options
  • Select an option

  • Save johncm/8a04a89307dd5dc87131d1fce676c949 to your computer and use it in GitHub Desktop.

Select an option

Save johncm/8a04a89307dd5dc87131d1fce676c949 to your computer and use it in GitHub Desktop.
# #docker-compose_Synology
strict digraph "Media Overview" {
/* Graph Attributes - https://graphviz.org/docs/graph/ */
graph [
layout=dot;
/* dot */
clusterrank=local;
compound=true;
/* Splines */
splines=curved;
concentrate=true;
nodesep="0";
ranksep="1 equally";
newrank=true;
rankdir="LR";
fontnames=svg;
labeljust="l",
labelloc="t",
tooltip="Digraph",
label="\G";
fontsize="30pt";
]
node [
/* Node Attributes - https://graphviz.org/docs/nodes/ */
label="\N";
fontsize="12pt";
shape=plaintext;
]
edge [
/* Edge Attributes - https://graphviz.org/docs/edges/ */
]
/* Entities */
subgraph Client_Applications {
node [
shape=trapezium,
style="bold, dashed";
fontsize="20pt";
];
/* Entities */
App_Jellyfin;
}
subgraph Server_Drives {
node [
shape=Mcircle,
style="bold, dashed";
fontsize="20pt";
];
/* Entities */
"CD/DVD"
}
subgraph packages {
node [
shape=component;
]
/* Entities */
"ServerDockerCE" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">Docker</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="2" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Volumes:</TD><TD>/var/lib/docker/volumes</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"SynologyDockerCE" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">Docker</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="2" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Volumes:</TD><TD>/volume1/@docker/volumes</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
}
subgraph containers {
node [
color=darkgreen;
fixedsize=shape;
shape=Msquare;
]
"Portainer" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">portainer/portainer-ce</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">portainer</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="right">Data:</TD><TD PORT="data">data</TD><TD>/data</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">WebUI:</TD><TD>9000</TD><TD>9000</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone:</TD><TD>TZ</TD><TD>America/Chicago</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Labels:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>io.portainer-ce.hidden</TD><TD>1</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"PortainerAgent" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">portainer/agent</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">portainer_agent</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/var/lib/docker/volumes</TD><TD>/var/lib/docker/volumes</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/</TD><TD>/host</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">Agent Port:</TD><TD>9001</TD><TD>9001</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone:</TD><TD>TZ</TD><TD>America/Chicago</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Labels:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>io.portainer-ce.hidden</TD><TD>1</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"JellyFin_jellyfin" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jellyfin/jellyfin</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">jellyfin_jellyfin</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/jellyfin/config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Cache:</TD><TD PORT="cache">jellyfin_cache</TD><TD>/cache</TD>
</TR>
<TR>
<TD ALIGN="right">Video:</TD><TD PORT="video">video</TD><TD>/media</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: (Read Only)</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Devices: (Requires Jellyfin Configuration to enable)</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/renderD128</TD><TD>/dev/dri/renderD128</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/card0</TD><TD>/dev/dri/card0</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED" BGCOLOR="yellow">Ports: (Optional with network: 'host')</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow" PORT="port">WebUI:</TD><TD>8096</TD><TD>8096</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow">WebUI HTTPS:</TD><TD>8920</TD><TD>8920</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">user:</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User:</TD><TD>${JELLYFIN_User}</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">network_mode:</TD>
</TR>
<TR>
<TD ALIGN="right">Network:</TD><TD>host</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">.env Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Jellyfin:</TD><TD>JELLYFIN_Version</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="right">Jellyfin:</TD><TD>JELLYFIN_User</TD><TD>1024:65536</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Jellyfin Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>JELLYFIN_PublishedServerUrl</TD><TD>http://example.com</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"NGINX-Synology" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">nginxproxy/nginx-proxy</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">nginx-proxy</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD PORT="config">/var/run/docker.sock</TD><TD>/tmp/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" BGCOLOR="yellow" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow" PORT="port">NGINX:</TD><TD>${NGINX_PROXY_PORT}</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">.env Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_Version</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Stack Template Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_PORT</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>DEFAULT_VIRTUAL_HOST</TD><TD>localhost</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">NGINX Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>TRUST_DOWNSTREAM_PROXY</TD><TD>false</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"NGINX-Server" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">nginxproxy/nginx-proxy</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD PORT="config">/var/run/docker.sock</TD><TD>/tmp/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" BGCOLOR="yellow" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow" PORT="port">NGINX:</TD><TD>${NGINX_PROXY_PORT}</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">.env Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_Version</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Stack Template Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_PORT</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>DEFAULT_VIRTUAL_HOST</TD><TD>localhost</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">NGINX Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>TRUST_DOWNSTREAM_PROXY</TD><TD>false</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"MediaElchRVeillerot" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">rveillerot/mediaelch</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">rveillerot_mediaelch</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config Internal:</TD><TD>-</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/mediaelch</TD><TD>/home/mediaelch/.config/kvibes</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="volume">public/Media/video</TD><TD>/movies</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD>nginx-proxy<TD>VIRTUAL_HOST</TD><TD>${DEFAULT_VIRTUAL_HOST}</TD>
</TR>
<TR>
<TD ALIGN="right"></TD>nginx-proxy<TD>VIRTUAL_PATH</TD><TD>/</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>PUID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>PGID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone:</TD><TD>TZ</TD><TD>America/Chicago</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"ServerMakeMKV" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jlesage/makemkv</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">jlesage_makemkv</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">makemkv-config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Output:</TD><TD PORT="output">output</TD><TD>/output</TD>
</TR>
<TR>
<TD ALIGN="right">Sync: Read Only</TD><TD PORT="storage">storage</TD><TD>/storage</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: Read Only</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Devices:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD PORT="device">/dev/sr#</TD><TD>/dev/sr#</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/sg#</TD><TD>/dev/sg#</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">nginx-proxy:</TD><TD>VIRTUAL_HOST</TD><TD>${DEFAULT_VIRTUAL_HOST}</TD>
</TR>
<TR>
<TD ALIGN="right">nginx-proxy:</TD><TD>VIRTUAL_PATH</TD><TD>/</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER</TD><TD>0 (Default)</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>USER_ID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>GROUP_ID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>UMASK</TD><TD>0022</TD>
</TR>
<TR>
<TD ALIGN="right">alpinelinux:</TD><TD>INSTALL_PACKAGES</TD><TD></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"ServerMakeMKV-Auto" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jlesage/makemkv</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">makemkv-auto</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">makemkv-auto-config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Output:</TD><TD PORT="output">output</TD><TD>/output</TD>
</TR>
<TR>
<TD ALIGN="right">Sync: Read Only</TD><TD PORT="storage">storage</TD><TD>/storage</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: Read Only</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Devices:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD PORT="device">/dev/sr#</TD><TD>/dev/sr#</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/sg#</TD><TD>/dev/sg#</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">nginx-proxy:</TD><TD>VIRTUAL_HOST</TD><TD>${DEFAULT_VIRTUAL_HOST}</TD>
</TR>
<TR>
<TD ALIGN="right">nginx-proxy:</TD><TD>VIRTUAL_PATH</TD><TD>/</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>MAKEMKV_GUI</TD><TD>1 (Default)</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER</TD><TD>1</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER_EJECT</TD><TD>1</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER_INTERVAL</TD><TD>60 (Seconds)</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER_FORCE_UNIQUE_OUTPUT_DIR</TD><TD>1</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>AUTO_DISC_RIPPER_MIN_TITLE_LENGTH</TD><TD>1800 (Seconds)</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>USER_ID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>GROUP_ID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>UMASK</TD><TD>0022</TD>
</TR>
<TR>
<TD ALIGN="right">alpinelinux:</TD><TD>INSTALL_PACKAGES</TD><TD></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
}
subgraph synology_share {
node [
shape=folder,
style="filled"
];
/* Entities */
synology_share_video;
subgraph synology_share_public {
/* Entities */
synology_share_public_Media;
}
subgraph synology_share_docker {
/* Entities */
synology_share_docker_jellyfin;
synology_share_docker_mediaelch;
}
}
subgraph synology_package_docker_volumes {
node [
shape=cylinder,
style="filled"
];
synology_package_docker_volume_portainer_data;
}
subgraph server_docker_volumes {
node [
shape=cylinder,
style="filled"
];
server_docker_volume_makemkv_auto_config;
server_docker_volume_makemkv_config;
server_docker_volume_makemkv_storage;
server_docker_volume_makemkv_output;
}
/* Clusters */
/* Cluster Attributes - https://graphviz.org/docs/clusters/ */
subgraph cluster_Player {
/* Entities */
App_Jellyfin;
}
subgraph cluster_synology {
bgcolor=blanchedalmond;
subgraph cluster_synology_package {
/* Entities */
"SynologyDockerCE";
subgraph cluster_synology_package_docker {
"Portainer" [width=4.5];
/* Clusters */
subgraph cluster_synology_package_docker_portainer {
/* Clusters */
subgraph cluster_synology_package_docker_portainer_mediastack {
bgcolor=white;
/* Entities */
"JellyFin_jellyfin" [width=5.75];
"MediaElchRVeillerot" [width=5.5];
"NGINX-Synology" [width=5];
}
}
subgraph cluster_synology_package_docker_volumes {
synology_package_docker_volume_portainer_data;
}
/* Relationships */
"NGINX-Synology" -> "MediaElchRVeillerot";
"Portainer" -> "JellyFin_jellyfin";
"Portainer" -> "NGINX-Synology";
}
/* Relationships */
"SynologyDockerCE" -> "Portainer";
}
subgraph cluster_synology_shares {
/* Entities */
synology_share_video;
subgraph cluster_synology_shares_public {
synology_share_public_Media;
}
subgraph cluster_synology_shares_docker {
synology_share_docker_jellyfin;
synology_share_docker_mediaelch;
}
}
/* Relationships */
"Portainer":data -> synology_package_docker_volume_portainer_data;
"JellyFin_jellyfin":config -> synology_share_docker_jellyfin;
"MediaElchRVeillerot":config -> synology_share_docker_mediaelch;
}
subgraph cluster_server {
bgcolor=honeydew
"ServerDockerCE";
subgraph cluster_server_docker {
"PortainerAgent" [width=4.6];
subgraph cluster_server_docker_portainer {
subgraph cluster_server_docker_portainer_mediastack {
bgcolor=white;
"NGINX-Server" [width=5];
"ServerMakeMKV" [width=6.2];
"ServerMakeMKV-Auto" [width=8.6];
}
}
subgraph cluster_server_docker_volumes {
server_docker_volume_makemkv_auto_config;
server_docker_volume_makemkv_config;
server_docker_volume_makemkv_output;
server_docker_volume_makemkv_storage;
}
/* Relationships */
"NGINX-Server" -> "ServerMakeMKV-Auto";
"PortainerAgent" -> "NGINX-Server";
"ServerMakeMKV":config -> server_docker_volume_makemkv_config;
"ServerMakeMKV":storage -> server_docker_volume_makemkv_storage;
"ServerMakeMKV":output -> server_docker_volume_makemkv_output;
"ServerMakeMKV-Auto":config -> server_docker_volume_makemkv_auto_config;
"ServerMakeMKV-Auto":storage -> server_docker_volume_makemkv_storage;
"ServerMakeMKV-Auto":output -> server_docker_volume_makemkv_output;
}
/* Relationships */
"ServerDockerCE" -> "PortainerAgent";
"ServerMakeMKV-Auto":device -> "CD/DVD";
}
/* Relationships */
"Portainer" -> "PortainerAgent";
"JellyFin_jellyfin":video -> synology_share_video;
"MediaElchRVeillerot":volume -> synology_share_public_Media;
App_Jellyfin -> "JellyFin_jellyfin":port;
}
strict digraph "Media Synology Outline" {
/* Graph Attributes - https://graphviz.org/docs/graph/ */
graph [
layout=dot;
/* dot */
clusterrank=local;
compound=true;
/* Splines */
splines=curved;
concentrate=true;
nodesep="0";
ranksep="1 equally";
newrank=true;
rankdir="LR";
fontnames=svg;
labeljust="l",
labelloc="t",
tooltip="Digraph",
label="\G";
fontsize="30pt";
]
node [
/* Node Attributes - https://graphviz.org/docs/nodes/ */
label="\N";
fontsize="12pt";
shape=plaintext;
]
edge [
/* Edge Attributes - https://graphviz.org/docs/edges/ */
]
/* Entities */
subgraph Client_Applications {
node [
shape=trapezium,
style="bold, dashed";
fontsize="20pt";
];
/* Entities */
App_DSPhoto;
App_DSVideo;
App_Jellyfin;
}
subgraph packages {
node [
shape=component;
]
/* Entities */
"VideoStation" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">Video Station</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="2" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right">UDP:</TD><TD>1900</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">Browsing:</TD><TD>5000</TD>
</TR>
<TR>
<TD ALIGN="right">HTTPS:</TD><TD>5001</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>9025-9040</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>5002</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>5004</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"PhotoStation" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">Photo Station</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="2" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right">UDP:</TD><TD>1900</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">Browsing:</TD><TD>5000</TD>
</TR>
<TR>
<TD ALIGN="right">HTTPS:</TD><TD>5001</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>9025-9040</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>5002</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>5004</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"SynologyDockerCE" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">Docker</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="2" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Volumes:</TD><TD>/volume1/@docker/volumes</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
}
subgraph containers {
node [
color=darkgreen;
fixedsize=shape;
shape=Msquare;
]
"Portainer" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">portainer/portainer-ce</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">portainer</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Local Sockets:</TD><TD>/var/run/docker.sock</TD><TD>/var/run/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="right">Data:</TD><TD PORT="data">data</TD><TD>/data</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">WebUI:</TD><TD>9000</TD><TD>9000</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Environment Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone:</TD><TD>TZ</TD><TD>America/Chicago</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Labels:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>io.portainer-ce.hidden</TD><TD>1</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"JellyFin_jellyfin" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jellyfin/jellyfin</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">jellyfin_jellyfin</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/jellyfin/config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Cache:</TD><TD PORT="cache">jellyfin_cache</TD><TD>/cache</TD>
</TR>
<TR>
<TD ALIGN="right">Video:</TD><TD PORT="video">video</TD><TD>/media</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: (Read Only)</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Devices: (Requires Jellyfin Configuration to enable)</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/renderD128</TD><TD>/dev/dri/renderD128</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/card0</TD><TD>/dev/dri/card0</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED" BGCOLOR="yellow">Ports: (Optional with network: 'host')</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow" PORT="port">WebUI:</TD><TD>8096</TD><TD>8096</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow">WebUI HTTPS:</TD><TD>8920</TD><TD>8920</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">user:</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User:</TD><TD>${JELLYFIN_User}</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">network_mode:</TD>
</TR>
<TR>
<TD ALIGN="right">Network:</TD><TD>host</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">.env Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Jellyfin:</TD><TD>JELLYFIN_Version</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="right">Jellyfin:</TD><TD>JELLYFIN_User</TD><TD>1024:65536</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Jellyfin Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>JELLYFIN_PublishedServerUrl</TD><TD>http://example.com</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"NGINX-Synology" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">nginxproxy/nginx-proxy</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">nginx-proxy</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD PORT="config">/var/run/docker.sock</TD><TD>/tmp/docker.sock</TD>
</TR>
<TR>
<TD ALIGN="left" BGCOLOR="yellow" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" BGCOLOR="yellow" PORT="port">NGINX:</TD><TD>${NGINX_PROXY_PORT}</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">.env Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_Version</TD><TD></TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Stack Template Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>NGINX_PROXY_PORT</TD><TD>80</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>DEFAULT_VIRTUAL_HOST</TD><TD>localhost</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">NGINX Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>TRUST_DOWNSTREAM_PROXY</TD><TD>false</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"MediaElch_linuxserver" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">lscr.io/linuxserver/mediaelch</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">linuxserver_mediaelch</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/linuxserver_mediaelch/config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="media">public/Media/Video</TD><TD>/media</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="video">/video</TD><TD>/video</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: (Read Only)</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">WebUI:</TD><TD>5800</TD><TD>3000</TD>
</TR>
<TR>
<TD ALIGN="right">RDM:</TD><TD>5900</TD><TD>3001</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">MediaELCH Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>PUID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>PGID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right">Language:</TD><TD>LC_ALL</TD><TD>en_US.UTF-8</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"Handbrake_jlesage" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jlesage/handbrake</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">jlesage_handbrake</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/jlesage_handbrake/config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="watch">public/Media/Convert/2_mp4</TD><TD>/watch</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="watch2">public/Media/Convert/2_mkv</TD><TD>/watch2</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="video">public/Media/Video</TD><TD>/output</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: (Read Only)</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Devices:</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/renderD128</TD><TD>/dev/dri/renderD128</TD>
</TR>
<TR>
<TD ALIGN="right"></TD><TD>/dev/dri/card0</TD><TD>/dev/dri/card0</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">WebUI:</TD><TD>5800</TD><TD>5800</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Handbrake Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>USER_ID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>GROUP_ID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right">Language:</TD><TD>LC_ALL</TD><TD>en_US.UTF-8</TD>
</TR>
<TR>
<TD ALIGN="right">Watch Folders:</TD><TD>AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS</TD><TD>2</TD>
</TR>
<TR>
<TD ALIGN="right">Min. Duration (Seconds):</TD><TD>AUTOMATED_CONVERSION_SOURCE_MIN_DURATION</TD><TD>1800</TD>
</TR>
<TR>
<TD ALIGN="right">Preset:</TD><TD>AUTOMATED_CONVERSION_PRESET</TD><TD>General/Very Fast 1080p30</TD>
</TR>
<TR>
<TD ALIGN="right">Format:</TD><TD>AUTOMATED_CONVERSION_FORMAT</TD><TD>mp4</TD>
</TR>
<TR>
<TD ALIGN="right">Preset 2:</TD><TD>AUTOMATED_CONVERSION_PRESET_2</TD><TD>General/Very Fast 1080p30</TD>
</TR>
<TR>
<TD ALIGN="right">Format 2:</TD><TD>AUTOMATED_CONVERSION_FORMAT_2</TD><TD>mkv</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
"MKVToolnix_jlesage" [
label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD><FONT POINT-SIZE="26.0">jlesage/mkvtoolnix</FONT></TD>
</TR>
<TR>
<TD><FONT POINT-SIZE="20.0">jlesage_mkvtoolnix</FONT></TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Volumes:</TD>
</TR>
<TR>
<TD ALIGN="right">Config:</TD><TD PORT="config">docker/jlesage_mkvtoolnix/config</TD><TD>/config</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="media">public/Media/Video</TD><TD>/media</TD>
</TR>
<TR>
<TD ALIGN="right">Sync:</TD><TD PORT="video">video</TD><TD>/video</TD>
</TR>
<TR>
<TD ALIGN="right">Timezone: (Read Only)</TD><TD>/etc/localtime</TD><TD>/etc/localtime</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">Ports:</TD>
</TR>
<TR>
<TD ALIGN="right" PORT="port">WebUI:</TD><TD>5800</TD><TD>5800</TD>
</TR>
<TR>
<TD ALIGN="left" COLSPAN="3" STYLE="ROUNDED">MKVToolnix Stack Variables:</TD>
</TR>
<TR>
<TD ALIGN="right">Synology User ID:</TD><TD>USER_ID</TD><TD>1024</TD>
</TR>
<TR>
<TD ALIGN="right">Synology Group ID:</TD><TD>GROUP_ID</TD><TD>65536</TD>
</TR>
<TR>
<TD ALIGN="right">Language:</TD><TD>LC_ALL</TD><TD>en_US.UTF-8</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>>
];
}
subgraph synology_share {
node [
shape=folder,
style="filled"
];
/* Entities */
synology_share_music;
synology_share_photo;
synology_share_video;
subgraph synology_share_public {
/* Entities */
synology_share_public_Media_Video;
synology_share_public_Media_Convert_MKV;
synology_share_public_Media_Convert_MP4;
}
subgraph synology_share_docker {
/* Entities */
synology_share_docker_handbrake_config;
synology_share_docker_jellyfin_cache;
synology_share_docker_jellyfin_config;
synology_share_docker_mediaelch_config;
synology_share_docker_mkvtoolnix_config;
}
}
subgraph synology_package_docker_volumes {
node [
shape=cylinder,
style="filled"
];
synology_share_docker_jellyfin_cache;
synology_package_docker_volume_portainer_data;
}
/* Clusters */
/* Cluster Attributes - https://graphviz.org/docs/clusters/ */
subgraph cluster_Player {
/* Entities */
App_Jellyfin;
App_DSVideo;
App_DSPhoto;
}
subgraph cluster_synology {
/* Clusters */
subgraph cluster_synology_share {
/* Entities */
synology_share_photo;
synology_share_video;
synology_share_music;
/* Clusters */
subgraph cluster_synology_share_public {
/* Entities */
synology_share_public_Media_Video;
synology_share_public_Media_Convert_MKV;
synology_share_public_Media_Convert_MP4;
}
subgraph cluster_synology_share_docker {
/* Entities */
synology_share_docker_handbrake_config;
synology_share_docker_jellyfin_cache;
synology_share_docker_jellyfin_config;
synology_share_docker_mediaelch_config;
synology_share_docker_mkvtoolnix_config;
}
}
subgraph cluster_synology_package {
/* Entities */
"PhotoStation";
"VideoStation";
"SynologyDockerCE";
/* Clusters */
subgraph cluster_synology_package_docker {
"Portainer" [width=4.5];
/* Clusters */
subgraph cluster_synology_package_docker_portainer {
/* Clusters */
subgraph cluster_synology_package_docker_portainer_mediastack {
bgcolor=white;
/* Entities */
"JellyFin_jellyfin" [width=7.5];
"MediaElch_linuxserver" [width=5.75];
"Handbrake_jlesage" [width=8.5];
"MKVToolnix_jlesage" [width=5.5];
"NGINX-Synology" [width=5];
}
}
subgraph cluster_synology_package_docker_volumes {
synology_package_docker_volume_portainer_data;
}
/* Relationships */
"NGINX-Synology" -> "MediaElch_linuxserver";
"NGINX-Synology" -> "Handbrake_jlesage";
"NGINX-Synology" -> "MKVToolnix_jlesage";
"Portainer" -> "JellyFin_jellyfin";
"Portainer" -> "NGINX-Synology";
"Portainer":data -> synology_package_docker_volume_portainer_data;
}
/* Relationships */
"SynologyDockerCE" -> "Portainer";
}
/* Relationships */
"JellyFin_jellyfin":cache -> synology_share_docker_jellyfin_cache;
"JellyFin_jellyfin":config -> synology_share_docker_jellyfin_config;
"Handbrake_jlesage":config -> synology_share_docker_handbrake_config;
"MKVToolnix_jlesage":config -> synology_share_docker_mkvtoolnix_config;
"MediaElch_linuxserver":config -> synology_share_docker_mediaelch_config;
}
/* Relationships */
subgraph Video_Share {
edge [color=blue, style="bold"]
"JellyFin_jellyfin":video -> synology_share_video;
"MediaElch_linuxserver":video -> synology_share_video;
"VideoStation" -> synology_share_video;
}
"Handbrake_jlesage":video -> synology_share_public_Media_Video;
"Handbrake_jlesage":watch -> synology_share_public_Media_Convert_MP4;
"Handbrake_jlesage":watch2 -> synology_share_public_Media_Convert_MKV;
"MKVToolnix_jlesage":media -> synology_share_public_Media_Video;
"MediaElch_linuxserver":media -> synology_share_public_Media_Video;
"PhotoStation" -> synology_share_photo;
App_DSPhoto -> "PhotoStation":port;
App_DSVideo -> "VideoStation":port;
subgraph Jellfin_Client {
edge [color=brown, style="bold"]
App_Jellyfin -> "JellyFin_jellyfin":port;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment