Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ####
- ## Auto install for docker media server
- ## Clean Fedora 22+ based server.
- ####
- ####
- ## Variables
- ####
- USERNAME=mediauser # user to own media
- GROUPNAME=users # media group
- CONFIGDIR=/etc/docker/config
- DATADIR=/home/raid
- ####
- ## Run base update and enable docker
- ####
- setenforce permissive
- sed -i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config
- /usr/bin/dnf -y update
- /usr/bin/dnf -y install samba samba-client
- /usr/bin/dnf -y install docker
- systemctl enable docker
- systemctl start docker
- ###
- # Add users and groups then setup permissions on the raid
- ###
- id -g $GROUPNAME 2> /dev/null; rc=$?; if [[ $rc != 0 ]]; then /usr/sbin/groupadd $GROUPNAME; fi
- /usr/sbin/adduser -g $GROUPNAME -s /sbin/nologin -d /dev/null -c "Media User" $USERNAME
- /usr/bin/chown -R $USERNAME:$GROUPNAME $DATADIR
- /usr/bin/chmod 4775 $DATADIR
- PUID=`id -u $USERNAME`
- PGID=`id -g $USERNAME`
- ###
- # Run docker installs
- ###
- docker run -d --restart=always -h sabnzbd --name="sabnzbd" -v $CONFIGDIR/sabnzbd:/config -v $DATADIR/Downloads/:/data/downloads -e PUID=$PUID -e PGID=$PGID -p 8080:8080 binhex/arch-sabnzbd
- docker run -d --restart=always -h deluge --name="deluge" -v $CONFIGDIR/deluge:/config -v $DATADIR/Downloads/:/data/downloads -e PUID=$PUID -e PGID=$PGID -p 8112:8112 binhex/arch-deluge
- docker run -d --restart=always -h sonarr --name="sonarr" -v $CONFIGDIR/sonarr:/config -v $DATADIR/Downloads/:/data/downloads -v $DATADIR/TV/:/data/tv -v /etc/localtime:/etc/localtime:ro -e PUID=$PUID -e PGID=$PGID -p 8989:8989 --link sabnzbd:sabnzbd --link deluge:deluge binhex/arch-sonarr
- docker run -d --restart=always -h couchpotato --name="couchpotato" -v $CONFIGDIR/couchpotato:/config -v $DATADIR/Downloads/:/data/downloads -v $DATADIR/Movies:/media -v /etc/localtime:/etc/localtime:ro -e PUID=$PUID -e PGID=$PGID -p 5050:5050 --link sabnzbd:sabnzbd --link deluge:deluge binhex/arch-couchpotato
- docker run -d --restart=always -h plex --name="plex" -v $CONFIGDIR/plex:/config -v $DATADIR/:/media/ -v /etc/localtime:/etc/localtime:ro -e PUID=$PUID -e PGID=$PGID --net="host" binhex/arch-plex
- ###
- # Setup Samba Base Configuration
- ###
- cat > /etc/samba/smb.conf << EOF
- [global]
- workgroup = workgroup
- server string = %h Samba Server
- security = user
- passdb backend = tdbsam
- map to guest = Bad Password
- obey pam restrictions = no
- pam password change = no
- passwd program = /usr/bin/passwd %u
- passwd chat = *Enter\snwe\s*\spassword:* %n\n *retype\snew\spassword:* %n\n *password\supdated\ssuccesfully* .
- unix password sync = Yes
- syslog = 0
- log file = /var/log/samba/log.%m
- max log size = 1024
- max protocol = SMB2
- dns proxy = No
- panic action = /usr/share/samba/panic-action %d
- [media]
- path = $DATADIR
- writable = no
- create mode = 0775
- directory mode = 0775
- guest ok = yes
- write list = @$GROUPNAME
- force user = $USERNAME
- force group = $GROUPNAME
- EOF
- ###
- # Enable Samba
- ###
- /usr/bin/systemctl enable NetworkManager-wait-online.service
- /usr/bin/systemctl enable smb.service
- /usr/bin/systemctl enable nmb.service
- /usr/bin/systemctl start smb.service
- /usr/bin/systemctl start nmb.service
- ###
- # Add Firewall rules
- # NOTE: There is a bug in docker when you manually add firewall rules, a reboot is required to restore the docker automatic firewall additions
- ###
- cat > /etc/firewalld/services/plex.xml << EOF
- <?xml version="1.0" encoding="utf-8"?>
- <service>
- <short>plex</short>
- <description>Plex Media Service</description>
- <port protocol="tcp" port="32400"/>
- <port protocol="tcp" port="32443"/>
- <port protocol="tcp" port="32469"/>
- <port protocol="udp" port="32410"/>
- <port protocol="udp" port="32412"/>
- <port protocol="udp" port="32413"/>
- <port protocol="udp" port="32414"/>
- <port protocol="udp" port="1900"/>
- <port protocol="udp" port="5353"/>
- </service>
- EOF
- sleep 10
- /usr/bin/firewall-cmd --permanent --add-service samba
- /usr/bin/firewall-cmd --permanent --add-service plex
- sleep 10
- /usr/bin/firewall-cmd --reload
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement