Skip to content

Instantly share code, notes, and snippets.

@misury
Created February 2, 2021 21:12
Show Gist options
  • Save misury/8255c56e88fbbf47dd5b55a130d0a87a to your computer and use it in GitHub Desktop.
Save misury/8255c56e88fbbf47dd5b55a130d0a87a to your computer and use it in GitHub Desktop.
Media Server

Install docker

curl https://get.docker.com | sh
sudo usermod -aG docker $USER

Create directory to mount external drive

mkdir -p /media/external

Get UUID of external drive

blkid

Add to /etc/fstab

UUID=EAEE7CCBEE7C9215 /media/external ntfs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

Add containers

docker run -it -d \
  --name vpn \
  --cap-add NET_ADMIN \
  --device /dev/net/tun \
  -v /media/external/Vpn:/vpn \
  -p 8989:8989 \
  -p 7878:7878 \
  -p 6767:6767 \
  -p 9117:9117 \
  -p 6881:6881 \
  -p 6881:6881/udp \
  -p 8080:8080 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  dperson/openvpn-client:armhf \
  -r 192.168.1.0/24

docker create \
  --name qbittorrent \
  -v /media/external/Config/qBittorrent:/config \
  -v /media/external/Downloads:/downloads \
  --net container:vpn \
  -e PGID=1000 -e PUID=1000 \
  -e UMASK_SET=022 \
  -e WEBUI_PORT=8080 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  lsioarmhf/qbittorrent

docker create \
  --name sonarr \
  -v /media/external/Config/Sonarr:/config \
  -v /media/external/Seriados:/tv \
  -v /media/external/Downloads:/downloads \
  --net container:vpn \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  lsioarmhf/sonarr

docker create \
  --name radarr \
  -v /media/external/Config/Radarr:/config \
  -v /media/external/Filmes:/movies \
  -v /media/external/Downloads:/downloads \
  --net container:vpn \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  lsioarmhf/radarr

docker create \
  --name bazarr \
  -v /media/external/Config/Bazarr:/config \
  -v /media/external/Filmes:/movies \
  -v /media/external/Seriados:/tv \
  --net container:vpn \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  linuxserver/bazarr

docker create \
  --name jackett \
  -v /media/external/Config/Jackett:/config \
  -v /media/external/Config/Jackett/Torrents:/downloads \
  --net container:vpn \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  lsioarmhf/jackett

docker create \
  --name plex \
  -v /media/external/Config/Plex:/config \
  -v /media/external/Seriados:/data/tvshows \
  -v /media/external/Filmes:/data/movies \
  -v /media/external/Config/Plex/Transcode:/transcode \
  --net host \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=America/Sao_Paulo \
  --restart always \
  lsioarmhf/plex

docker create -P \
  --name ftp \
   -v /media/external:/data \
  --net host \
  --restart always \
  besn0847/arm-ftp

Install watchtower to auto-update container's images at 0702 every day

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e TZ=America/Sao_Paulo \
  -e WATCHTOWER_NOTIFICATIONS=slack \
  -e WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL="https://hooks.slack.com/services/x/y/z" \
  -e WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=WatchTower \
  --restart always \
  v2tec/watchtower:armhf-latest \
  --cleanup \
  --schedule "0 2 7 * * *"

Disable IPV6 on .ovpn

proto udp4

pull-filter ignore "route-ipv6"
pull-filter ignore "ifconfig-ipv6" 

up /vpn/update-resolv-conf
down /vpn/update-resolv-conf

Disable transcoding by running this command inside the Plex docker

docker exec \
  -ti \
  plex \
  sh -c \
  "mv /usr/lib/plexmediaserver/Plex\ Transcoder /usr/lib/plexmediaserver/Plex\ New\ Transcoder"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment