VPS/NAS Plex media server setup.
- Server setup using ansible
- Setup docker containers for all services and isolated VPN for transmission
Plex: media server✅Sonarr: series tracker✅Radarr: movies tracker✅Jackett: torrent client api✅Sabnzbd: usenet client✅Tautulli: plex usage stats✅Overseer: media request manager✅- Bazarr: subtitles tracker 🚧
- Rclone: remote/cloud file management 🚧 (maybe)
- find + replace
jonnyparris
with your desired user - find + replace
duvcloud
with your desired server hostname - customise your welcome banner ascii art
pip install ansible
(or use homebrew: brew install ansible
)
Check inventory after setting up the ansible hosts file in the expected location /etc/ansible/hosts
.
(Below it's being symlinked to the file in this repo but you can also just paste the contents there directly.)
sudo mkdir /etc/ansible
sudo ln -s ~/Repos/Notes/duvplex/ansible_hosts.conf /etc/ansible/hosts
ansible-inventory --list -y
# or specify inventory
ansible-inventory -i ansible_hosts.conf --list -y
Add public key to the server as root and then test out connection. Also copy that public key to this folder for the playbook to use when it runs.
Tries to ssh as root in this case
ansible all -m ping -u root
file:ansible_vault_password.txt --> vault password file:ansible_vault.yml --> Put passwords here
cd ~/Repos/duvplex/
ansible-vault create ansible_vault.yml
ansible-vault decrypt --vault-password-file=ansible_vault_password.txt ansible_vault.yml
ansible-vault encrypt --vault-password-file=ansible_vault_password.txt ansible_vault.yml
Set your passwords in a file named ansible_vault.yml
:
password: your_super_secure_server_password
OPENVPN_USERNAME: sdsdsijsldijij # service creds if using nord
OPENVPN_PASSWORD: sdopksdpjsdpsijpass # service creds if using nord
PASSWORD_7Z: password used when backing up config files
ansible-playbook playbook.yml -i ansible_hosts.conf --vault-pass-file ansible_vault_password.txt
ansible-playbook playbook.yml -i ansible_hosts.conf --vault-pass-file ansible_vault_password.txt --tags backup
Create everything
cd ~/plex
# likely problematic so run it alone to fix it if need be because this container also holds the VPN info
docker-compose up transmission
docker-compose up # run all the services we just set up
# run as background deamon
docker-compose up -d
You might want to setup your remote IP in your /etc/hosts
file (e.g. 165.89.88.177 duvcloud
) to save having to remember a random IP address.
- Transmission ==> http://duvcloud:9091
- Sabnzbd ==> http://duvcloud:8080
- Jackett ==> http://duvcloud:9117
- Radarr ==> http://duvcloud:7878
- Sonarr ==> http://duvcloud:8989
- Tautulli ==> http://duvcloud:8181
- Overseer ==> http://duvcloud:5055
- Plex(After setup) ==> http://duvcloud:32400/web
Plex ssh tunneling, ssh like this first then the URL below will start to work, once we login in and setup stuff the normal URL above will work
ssh -L32400:localhost:32400 jonnyparris@duvcloud
then head to http://localhost:32400/web to setup Plex
Similarly, you might have to tunnel on port 8080 to setup Sabnzbd.
ssh -L8080:localhost:8080 jonnyparris@duvcloud
then head to http://localhost:32400/web to setup Sabnzbd
https://github.com/andreafabrizi/Dropbox-Uploader
Run
~/plex/dropbox_uploader.sh
- See more detailed write up of setup steps here
- Change entire season audio track easily: https://www.pastatool.com/ (Make sure to turn off VPN before connecting to it)
- You can find your timezone here to customise the
TZ
var in the docker-compose.yml