NAS Docker Standup
This is a simple docker-compose configuration to standup a Synology NAS.
Services
- Deluge + Private Internet Access or TorGuard - for downloading torrents... "safely"
- Sonarr - for TV Series Management
- Radarr - for Movie Management
- Readarr - for Book Management
- Calibre - for Book Access
- Jackett - for Torrent Tracker feeds
- Tautulli - for Plex library statistics and usage
- Overseerr - for requesting additional library content
- Organizr - for web based portal to access services
This project was heavily inspired by the MediaBox project... Many Thanks!
Known Issues
- Sometimes the Deluge + VPN Container disconnects and can't re-establish a forwarded port connection.
Install Instructions
Prerequisites
- Synology NAS
- VPN Account from PIA or TorGuard
- Git
- Docker
- Python 2.7
- Docker-Compose
Server Configuration
- Setup Synology NAS and install DSM
- Install Docker via Add-on Packages
- Install Plex natively from Plex.tv
- Add the SynoCommunity package source via easy install
- Install Git package from SynoCommunity
- Enable SSH Access
Upgrade Docker using synology-dockerKnown Issue: markdumay/synology-docker#22- Create Docker Group and Add User
- create the group "docker" from the ui or cli (sudo synogroup --add docker)
- make it the group of the docker.sock: sudo chown root:docker /var/run/docker.sock
- assign the user to the docker group in the ui or cli (sudo synogroup --member docker {username})
- login into ssh as {username} and try (if you were already logged in before you created the group, logout and relogin)
- Make sure DSM isn't using 80/443 with guide
- Enable Tunnel stuff for VPN: https://forums.unraid.net/topic/44109-support-binhex-delugevpn/page/58/?tab=comments#comment-542434
sudo insmod /lib/modules/tun.ko
sudo insmod /lib/modules/iptable_mangle.ko
Make a scheduled task of those commands
- Clone Repo
git clone https://gitlab.com/think-one-zero/nas-docker-standup.git
- Copy Sample Environement File
cp sample.env .env
- Edit
.env
to match your environment - Run Docker Environment
docker-compose up -d
- ???
- Profit.
Environment File
LOCALUSER=
- This is the local user of your linux account and account running dockerHOSTNAME=
- Hostame of the server, can be found by executinghostname
from command lineIP_ADDRESS=
- Local IP Address of the server, should be staticPUID=
- UID of the local user, can be found by executingid
from the command linePGID=
- GID of the local user, can be found by executingid
from the command lineLOG_FILE_NUM=
- The number of log files to keep of the specified size before pruning themLOG_FILE_SIZE=
- The size of the log files before truncating and rotating the log filesVPNUNAME=
- Your VPN username from PIA or TorGuardVPNPASS=
- Your VPN password from PIA or TorGuardVPNPROVIDER=
- Your VPN provider, name must match a folder specified inovpn
. This defaults topia
if you copiedsample.env
.VPN_REMOTE=
- The remote server you want to connect to (must support port forwarding)CIDR_ADDRESS=
- IP/netmask entries which allow access to the server without requiring authorization. We recommend you set this only if you do not sign in your server. For example192.168.1.0/24,172.16.0.0/16
will allow access to the entire192.168.1.x
range and the172.16.x.x
TZ=
- Set the timezone inside the container. For example:Europe/London
. The complete list can be found here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zonesCALIBRE_AUTH=
- Password for the Calibre Web Interface (default usernameabc
) htpasswd GeneratorMEDIA_BASE_PATH=
- This is the base path of your media directory used to make similar paths easier -/volume1/media
SNYOLOGY_BASE_DOCKER_PATH=
- The base path to the docker directory where container data is stored -/volume1/docker
SNYOLOGY_PLEX_PATH=
- The path to the installation directory for Plex Media Server -/volume1/PlexMediaServer
TORRENTS_PATH=
- The base path for the torrents download/in-progress directories -/volume1/torrents
Email/SMTP Service
- Mailgun has an excellent QuickStart Guide
- Check out the sending via SMTP
- Make sure to also verify your domain
Tips and Tricks
- PIA List of Servers that support port forwarding
- Deluge + PIA FAQ
- Removing Old/Completed Torrents from Deluge
- Create Series Folder in Sonarr
- Proper Encoding of the Portainer Password
- Open Shell in a Container - Link 1, Link 2
Potential Script to setup, renew and copy SSL for Plex
If this project has helped you in anyway, and you'd like to say thanks...
You can also gift a Plex Pass subscription as a great way to show your appreciation.
AFFILIATE DISCLOSURE: You can also support this project by purchasing a VPN Subscription via one of the links in this README.
Disclaimer
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.