Advertisement
Guest User

Untitled

a guest
Nov 25th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.00 KB | None | 0 0
  1. #!/bin/bash
  2. ####
  3. ##  Auto install for docker media server
  4. ##  Clean Fedora 22+ based server.
  5. ####
  6.  
  7. ####
  8. ##  Variables
  9. ####
  10. USERNAME=mediauser # user to own media
  11. GROUPNAME=users # media group
  12. CONFIGDIR=/etc/docker/config
  13. DATADIR=/home/raid
  14.  
  15. ####
  16. ## Run base update and enable docker
  17. ####
  18. setenforce permissive
  19. sed -i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config
  20. /usr/bin/dnf -y update
  21. /usr/bin/dnf -y install samba samba-client
  22. /usr/bin/dnf -y install docker
  23. systemctl enable docker
  24. systemctl start docker
  25.  
  26. ###
  27. # Add users and groups then setup permissions on the raid
  28. ###
  29.  
  30. id -g $GROUPNAME 2> /dev/null; rc=$?; if [[ $rc != 0 ]]; then /usr/sbin/groupadd $GROUPNAME; fi
  31. /usr/sbin/adduser -g $GROUPNAME -s /sbin/nologin -d /dev/null -c "Media User" $USERNAME
  32. /usr/bin/chown -R $USERNAME:$GROUPNAME $DATADIR
  33. /usr/bin/chmod 4775 $DATADIR
  34. PUID=`id -u $USERNAME`
  35. PGID=`id -g $USERNAME`
  36.  
  37. ###
  38. # Run docker installs
  39. ###
  40.  
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46.  
  47. ###
  48. # Setup Samba Base Configuration
  49. ###
  50.  
  51. cat > /etc/samba/smb.conf << EOF
  52. [global]
  53.  workgroup = workgroup
  54.  server string = %h Samba Server
  55.  security = user
  56.  passdb backend = tdbsam
  57.  map to guest = Bad Password
  58.  obey pam restrictions = no
  59.  pam password change = no
  60.  passwd program = /usr/bin/passwd %u
  61.  passwd chat = *Enter\snwe\s*\spassword:* %n\n *retype\snew\spassword:* %n\n *password\supdated\ssuccesfully* .
  62.  unix password sync = Yes
  63.  syslog = 0
  64.  log file = /var/log/samba/log.%m
  65.  max log size = 1024
  66.  max protocol = SMB2
  67.  dns proxy = No
  68.  panic action = /usr/share/samba/panic-action %d
  69.  
  70. [media]
  71.    path = $DATADIR
  72.    writable = no
  73.    create mode = 0775
  74.    directory mode = 0775
  75.    guest ok = yes
  76.    write list = @$GROUPNAME
  77.    force user = $USERNAME
  78.    force group = $GROUPNAME
  79. EOF
  80.  
  81. ###
  82. # Enable Samba
  83. ###
  84.  
  85. /usr/bin/systemctl enable NetworkManager-wait-online.service
  86. /usr/bin/systemctl enable smb.service
  87. /usr/bin/systemctl enable nmb.service
  88. /usr/bin/systemctl start smb.service
  89. /usr/bin/systemctl start nmb.service
  90.  
  91. ###
  92. # Add Firewall rules
  93. # NOTE: There is a bug in docker when you manually add firewall rules, a reboot is required to restore the docker automatic firewall additions
  94. ###
  95.  
  96. cat > /etc/firewalld/services/plex.xml << EOF
  97. <?xml version="1.0" encoding="utf-8"?>
  98. <service>
  99.   <short>plex</short>
  100.   <description>Plex Media Service</description>
  101.   <port protocol="tcp" port="32400"/>
  102.   <port protocol="tcp" port="32443"/>
  103.   <port protocol="tcp" port="32469"/>
  104.   <port protocol="udp" port="32410"/>
  105.   <port protocol="udp" port="32412"/>
  106.   <port protocol="udp" port="32413"/>
  107.   <port protocol="udp" port="32414"/>
  108.   <port protocol="udp" port="1900"/>
  109.   <port protocol="udp" port="5353"/>
  110. </service>
  111. EOF
  112. sleep 10
  113. /usr/bin/firewall-cmd --permanent --add-service samba
  114. /usr/bin/firewall-cmd --permanent --add-service plex
  115. sleep 10
  116. /usr/bin/firewall-cmd --reload
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement