Skip to content

Commit 9e89f85

Browse files
Merge pull request #29 from TechPerplexed/param
Several improvements
2 parents 6231071 + a94380f commit 9e89f85

19 files changed

+218
-179
lines changed

install/apps/install-app.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,10 @@ else
7676
echo ""
7777
cd $CONFIGS/Docker
7878
sudo rsync -a /opt/Gooby/scripts/components/$APPLOC.yaml $CONFIGS/Docker/components
79-
/usr/local/bin/docker-compose down
8079
echo "Just a moment while $APP is being installed..."
8180
[[ ! -f "$TCONFIGS/plexclaim" ]] && echo "-" > $TCONFIGS/plexclaim
8281
source /opt/Gooby/install/misc/environment-build.sh rebuild
83-
/usr/local/bin/docker-compose up -d --remove-orphans ${@:2}
82+
/usr/local/bin/docker-compose up -d --no-deps --build $APP
8483
cd "${CURDIR}"
8584

8685
if [ $APP == organizr ]; then APP=$ORGMENU; fi

install/apps/install-rclone.sh

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22

3+
source $CONFIGS/Docker/.env
34
which rclone > $TCONFIGS/checkapp
45
clear
56

@@ -9,7 +10,7 @@ if [ -s $TCONFIGS/checkapp ]; then
910

1011
echo "Here is a list of the root folders in your mount:"
1112
echo
12-
ls -1 /media/Google
13+
ls -1 ${MOUNTTO}
1314
echo
1415
echo "If you're getting an error here, please"
1516
echo "check your Rclone config settings."
@@ -24,24 +25,20 @@ else
2425
if [[ ${REPLY} =~ ^[Yy]$ ]]; then
2526

2627
GOAHEAD
27-
RUNPATCHES
2828

29-
# Install MergerFS (for future use)
29+
# Install MergerFS
3030

31-
lsb_release -r -s > /tmp/version
32-
VERSION=$( cat /tmp/version )
33-
34-
if [ "$VERSION" = "18.04" ]; then sudo apt-get -y install mergerfs; fi
35-
36-
rm /tmp/version
31+
which mergerfs > $TCONFIGS/mergerfs
32+
if [ ! -s $TCONFIGS/mergerfs ]; then
33+
sudo wget https://github.com/trapexit/mergerfs/releases/download/2.24.2/mergerfs_2.24.2.ubuntu-xenial_amd64.deb -O /tmp/mergerfs.deb
34+
sudo dpkg -i /tmp/mergerfs.deb
35+
fi
36+
rm /$TCONFIGS/mergerfs
3737

3838
# Main script
3939

4040
cd /tmp
41-
sudo mkdir $TCONFIGS
42-
4341
clear
44-
4542
read -n 1 -s -r -p "Stable ${YELLOW}(S)${STD} or Beta installation ${YELLOW}(B)?${STD} " -i "S" choice
4643

4744
case "$choice" in
@@ -53,29 +50,45 @@ else
5350

5451
echo "${YELLOW}Please follow the instructions to setup Rclone${STD}"
5552
echo
56-
echo "Make sure you name the config ${YELLOW}Gdrive${STD}"
53+
rclone config
54+
echo
55+
read -r RCLONESERVICE < $HOME/.config/rclone/rclone.conf; RCLONESERVICE=${RCLONESERVICE:1:-1}
56+
read -e -p "Confirm that this is what you named your mount: " -i "$RCLONESERVICE"
57+
echo
58+
read -e -p "What is your media folder in $RCLONESERVICE? (leave empty for root): " -i "" RCLONEFOLDER
5759
echo
58-
sudo rclone config
5960

6061
# Installing Services
6162

62-
sudo mkdir -p /var/local/Gooby/.config
63-
sudo mkdir -p /var/local/.
64-
sudo mkdir -p $HOME/logs
65-
sudo mkdir -p $HOME/Downloads
66-
sudo mkdir -p /media/Google
63+
RCLONESERVICE=${RCLONESERVICE#:}; echo $RCLONESERVICE > $CONFIGS/.config/rcloneservice
64+
RCLONEFOLDER=${RCLONEFOLDER%/}; RCLONEFOLDER=${RCLONEFOLDER#/}; echo $RCLONEFOLDER > $CONFIGS/.config/rclonefolder
6765

68-
sudo rsync -a $HOME/.config/rclone/rclone.conf $CONFIGS/.config
69-
sudo rsync -a /opt/Gooby/scripts/rclone.service /etc/systemd/system/rclone.service
66+
sudo sed -i 's/^#user_allow_other/user_allow_other/g' /etc/fuse.conf
7067

71-
sudo chown -R $USER:$USER $CONFIGS
72-
sudo chown -R $USER:$USER $TCONFIGS
73-
sudo chown -R $USER:$USER $HOME
74-
sudo chown -R $USER:$USER /media/Google
68+
mkdir -p $HOME/logs $HOME/Downloads
69+
sudo mkdir -p ${RCLONEMOUNT} ${MOUNTTO} ${UPLOADS}
70+
sudo chown -R $USER:$USER $HOME $CONFIGS $TCONFIGS $RCLONEMOUNT $MOUNTTO $UPLOADS
7571

76-
sudo systemctl enable rclone.service
72+
if [ ! -d ${UPLOADS}/Downloads ]; then
73+
sudo mv $HOME/Downloads ${UPLOADS}
74+
sudo ln -s ${UPLOADS}/Downloads $HOME/Downloads
75+
fi
76+
77+
sudo rsync -a /opt/Gooby/scripts/services/gooby* /etc/systemd/system/
78+
sudo rsync -a /opt/Gooby/scripts/services/mnt* /etc/systemd/system/
79+
sudo sed -i "s/GOOBYUSER/${USER}/g" /etc/systemd/system/gooby-rclone.service
80+
sudo sed -i "s/GOOBYUSER/${USER}/g" /etc/systemd/system/gooby-find.service
81+
82+
source /opt/Gooby/install/misc/environment-build.sh rebuild
83+
84+
sudo systemctl enable gooby.service gooby-rclone.service gooby-find.service mnt-google.mount
7785
sudo systemctl daemon-reload
78-
sudo systemctl start rclone.service
86+
sudo systemctl start gooby.service
87+
88+
if [ ! -f $TCONFIGS/cronsyncmount ]; then
89+
(crontab -l 2>/dev/null; echo "0,15,30,45 * * * * /opt/Gooby/scripts/cron/syncmount.sh > /dev/null 2>&1") | crontab -
90+
touch $TCONFIGS/cronsyncmount
91+
fi
7992

8093
echo
8194
echo "Done!"

install/apps/remove-rclone.sh

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22

3+
source $CONFIGS/Docker/.env
34
which rclone > $TCONFIGS/checkapp
45
clear
56

@@ -17,20 +18,26 @@ else
1718

1819
GOAHEAD
1920

20-
# Close ports
21-
22-
#na
23-
2421
# Main script
2522

23+
/bin/fusermount -uz ${RCLONEMOUNT}
2624
sudo rm /usr/bin/rclone
2725
sudo rm /usr/local/share/man/man1/rclone.1
2826

2927
# Removing Services
3028

31-
sudo systemctl stop rclone.service
32-
sudo systemctl disable rclone.service
33-
sudo rm /etc/systemd/system/rclone.service
29+
if [ -e /etc/systemd/system/rclone.service ]; then
30+
sudo systemctl stop rclone.service
31+
sudo systemctl disable rclone.service
32+
sudo rm /etc/systemd/system/rclone.service
33+
fi
34+
35+
if [ -e /etc/systemd/system/gooby.service ]; then
36+
sudo systemctl stop gooby.service gooby-rclone.service gooby-find.service mnt-google.mount
37+
sudo systemctl disable gooby.service gooby-rclone.service gooby-find.service mnt-google.mount
38+
sudo rm /etc/systemd/system/gooby* /etc/systemd/system/mnt-*
39+
fi
40+
3441
sudo systemctl daemon-reload
3542

3643
TASKCOMPLETE

install/apps/update-rclone.sh

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ else
1818
GOAHEAD
1919

2020
cd /tmp
21-
21+
if [ -e /etc/systemd/system/gooby.service ]; then sudo systemctl stop gooby.service; fi
2222
clear
2323

2424
echo "You currently have the $( cat $TCONFIGS/rclonev ) version of $TASK installed"
@@ -27,20 +27,37 @@ else
2727
read -n 1 -s -r -p "Stable ${YELLOW}(S)${STD} or Beta installation ${YELLOW}(B)?${STD} " -i "" choice
2828

2929
case "$choice" in
30-
b|B ) curl https://rclone.org/install.sh | sudo bash -s beta; echo "Beta" > $TCONFIGS/rclonev ;;
31-
s|S ) curl https://rclone.org/install.sh | sudo bash; echo "Stable" > $TCONFIGS/rclonev ;;
32-
* ) echo "No changes made" ;;
30+
b|B ) curl https://rclone.org/install.sh | sudo bash -s beta; echo "Beta" > $TCONFIGS/rclonev ;;
31+
s|S ) curl https://rclone.org/install.sh | sudo bash; echo "Stable" > $TCONFIGS/rclonev ;;
32+
* ) if [ $( cat $TCONFIGS/rclonev ) = "Stable" ]; then
33+
curl https://rclone.org/install.sh | sudo bash
34+
elif [ $( cat $TCONFIGS/rclonev ) = "Beta" ]; then
35+
curl https://rclone.org/install.sh | sudo bash -s beta
36+
fi ;;
3337
esac
3438

3539
cd ~
36-
40+
echo
3741
read -e -p "Make any changes to your config? ${YELLOW}(y/N)${STD}? " -i "" choice
38-
42+
3943
case "$choice" in
40-
y|Y ) sudo rclone config; sudo rsync -a $HOME/.config/rclone/rclone.conf $CONFIGS/.config ;;
41-
* ) echo "All done!" ;;
44+
y|Y ) sudo rclone config
45+
echo
46+
read -r RCLONESERVICE < $HOME/.config/rclone/rclone.conf; RCLONESERVICE=${RCLONESERVICE:1:-1}
47+
read -e -p "Confirm that this is what you named your mount: " -i "$RCLONESERVICE"
48+
echo
49+
read -e -p "What is your media folder in $RCLONESERVICE? (leave empty for root): " -i "" RCLONEFOLDER
50+
echo
51+
RCLONESERVICE=${RCLONESERVICE#:}; echo $RCLONESERVICE > $CONFIGS/.config/rcloneservice
52+
RCLONEFOLDER=${RCLONEFOLDER%/}; RCLONEFOLDER=${RCLONEFOLDER#/}; echo $RCLONEFOLDER > $CONFIGS/.config/rclonefolder
53+
source /opt/Gooby/install/misc/environment-build.sh rebuild
54+
;;
55+
* ) echo "All done!" ;;
4256
esac
4357

58+
sudo systemctl daemon-reload
59+
if [ -e /etc/systemd/system/gooby.service ]; then sudo systemctl start gooby.service; fi
60+
4461
cd $CURDIR
4562

4663
TASKCOMPLETE

install/gooby

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22

33
source /opt/Gooby/menus/variables.sh
4+
[[ -d "/var/local/.gtemp" ]] && sudo mv /var/local/.gtemp /var/local/.Gooby
45

56
if [ "$EUID" -ne 0 ]; then
67

install/install.sh

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
#!/bin/bash
22

3-
sudo apt-get update -y && sudo apt-get upgrade -y
3+
sudo apt-get update -y
4+
sudo apt-get upgrade -y
45

5-
sudo apt-get -y install \
6-
git \
7-
fail2ban \
8-
nano \
9-
unzip \
10-
wget \
11-
curl \
12-
ufw \
13-
socat \
14-
fuse \
15-
apt-transport-https \
16-
acl \
17-
ca-certificates \
18-
denyhosts at sudo software-properties-common
6+
for i in git fail2ban nano unzip wget curl ufw socat fuse apt-transport-https acl mergerfs ca-certificates; do
7+
sudo apt-get -y install $i
8+
done
199

2010
sudo ufw default deny incoming
2111
sudo ufw default allow outgoing

install/misc/environment-build.sh

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
source /opt/Gooby/menus/variables.sh
44

5-
DOCKERHOME=$CONFIGS/Docker
6-
sudo mkdir -p $DOCKERHOME/components
7-
ENV=${DOCKERHOME}/.env
5+
ENV=$CONFIGS/Docker/.env
86
touch ${ENV}
97

108
# Load existing variables and use them as defaults, if available
@@ -33,22 +31,30 @@ echo "# Environment variables #" >> ${ENV}
3331
echo "# for Gooby v$VERSION #" >> ${ENV}
3432
echo "###########################" >> ${ENV}
3533
echo >> ${ENV}
36-
echo "HOME=$HOME" >> ${ENV}
34+
echo "CONFIGS=${CONFIGS}" >> ${ENV}
35+
echo "TCONFIGS=${TCONFIGS}" >> ${ENV}
36+
echo "HOMEDIR=$HOME" >> ${ENV}
37+
echo "LOGS=$HOME/logs" >> ${ENV}
3738
echo "USERID=$(id -u)" >> ${ENV}
3839
echo "GROUPID=$(id -g)" >> ${ENV}
40+
echo "USERNAME=$USER" >> ${ENV}
41+
echo "GROUPNAME=$USER" >> ${ENV}
3942
echo "IP=$(curl ifconfig.me)" >> ${ENV}
4043
echo "TIMEZONE=$(cat /etc/timezone)" >> ${ENV}
41-
echo "CONFIGS=$CONFIGS" >> ${ENV}
42-
echo "DOWNLOADS=${HOME}/Downloads" >> ${ENV}
43-
echo "GOOGLE=/media/Google" >> ${ENV}
44-
echo "MYDOMAIN=$(cat $CONFIGS/.config/mydomain)" >> ${ENV}
45-
echo "MYEMAIL=$(cat $CONFIGS/.config/myemail)" >> ${ENV}
46-
echo "MEDIA=/media/Google" >> ${ENV}
47-
echo "TV=/media/Google/TV" >> ${ENV}
48-
echo "MOVIES=/media/Google/Movies" >> ${ENV}
49-
echo "RCLONETARGET=Gdrive" >> ${ENV}
44+
echo "MYDOMAIN=$(cat ${CONFIGS}/.config/mydomain)" >> ${ENV}
45+
echo "MYEMAIL=$(cat ${CONFIGS}/.config/myemail)" >> ${ENV}
5046
echo "ORGMENU=menu" >> ${ENV}
51-
[[ -f "$TCONFIGS/plexclaim" ]] && echo "PLEXCLAIM=$(cat $TCONFIGS/plexclaim)" >> ${ENV}
52-
53-
cat ${CONFIGS}/Docker/components/??-* > ${DOCKERHOME}/docker-compose.yaml
47+
echo "RCLONESERVICE=$(cat ${CONFIGS}/.config/rcloneservice)" >> ${ENV}
48+
echo "RCLONEFOLDER=$(cat ${CONFIGS}/.config/rclonefolder)" >> ${ENV}
49+
echo "RCLONEMOUNT=/mnt/rclone" >> ${ENV}
50+
echo "MOUNTTO=/mnt/google" >> ${ENV}
51+
echo "UPLOADS=/mnt/uploads" >> ${ENV}
52+
echo "GOOGLE=/mnt/google" >> ${ENV}
53+
echo "MEDIA=/mnt/google" >> ${ENV}
54+
echo "MOVIES=/mnt/google/Movies" >> ${ENV}
55+
echo "TV=/mnt/google/TV" >> ${ENV}
56+
echo "DOWNLOADS=${HOMEDIR}/Downloads" >> ${ENV}
57+
[[ -f "${TCONFIGS}/plexclaim" ]] && echo "PLEXCLAIM=$(cat ${TCONFIGS}/plexclaim)" >> ${ENV}
58+
59+
cat ${CONFIGS}/Docker/components/??-* > ${CONFIGS}/Docker/docker-compose.yaml
5460
echo done

install/misc/system-cleanup.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ if [[ ${REPLY} =~ ^[Yy]$ ]]; then
1515
# Add rlean to bootup cron if not added yet
1616

1717
if [ ! -f $TCONFIGS/cronboot ]; then
18-
1918
(crontab -l 2>/dev/null; echo "@reboot /opt/Gooby/scripts/cron/rclean.sh > /dev/null 2>&1") | crontab -
2019
touch $TCONFIGS/cronboot
21-
2220
fi
2321

2422
source /opt/Gooby/scripts/cron/rclean.sh

install/server/server-init.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ echo ""
1212
echo "${YELLOW}Please answer the following two questions:${STD}"
1313
echo ""
1414
echo "What domain will you be using to access your server?"
15-
read -e -p '(ex: mydomain.com)? ' -i "${MYDOMAIN}" MYDOMAIN
15+
read -e -p '(ex: mydomain.com) ' -i "${MYDOMAIN}" MYDOMAIN
1616
echo ""
1717
echo "What is your email address for certificate registration?"
1818
read -e -p '(ex: [email protected]) ' -i "${MYEMAIL}" MYEMAIL
@@ -28,4 +28,6 @@ sudo chown -R $USER:$USER $TCONFIGS
2828
echo "$MYDOMAIN" > $CONFIGS/.config/mydomain
2929
echo "$MYEMAIL" > $CONFIGS/.config/myemail
3030
sudo rsync -a /opt/Gooby/scripts/components/{00-AAA.yaml,01-proxy.yaml} $CONFIGS/Docker/components
31+
touch $CONFIGS/.config/rcloneservice $CONFIGS/.config/rclonefolder
3132
source /opt/Gooby/install/misc/environment-build.sh
33+
cd $CONFIGS/Docker; /usr/local/bin/docker-compose up -d --remove-orphans ${@:2}; cd "${CURDIR}"

menus/variables.sh

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

3-
VERSION="2.0.3"
3+
VERSION="2.1.0"
44
CONFIGS=/var/local/Gooby
5-
TCONFIGS=/var/local/.gtemp
5+
TCONFIGS=/var/local/.Gooby
66
CURDIR=$(pwd)
77

88
# Define colors
@@ -108,10 +108,19 @@ EXPLAINTASK(){
108108

109109
EXPLAINAPP(){
110110
clear
111+
which rclone > $TCONFIGS/checkapp
112+
if [ ! -s $TCONFIGS/checkapp ]; then
113+
echo "${LRED}"
114+
echo "--------------------------------------------------"
115+
echo " WARNING! Rclone is not installed yet."
116+
echo " Please configure that first, otherwise your"
117+
echo " system will not work as intended."
118+
echo "--------------------------------------------------"
119+
echo "${STD}"
120+
fi
111121
echo "${CYAN}"
112122
echo "--------------------------------------------------"
113123
echo " This will ${PERFORM} ${TASK}"
114-
echo " You will have a few seconds of server downtime"
115124
echo "--------------------------------------------------"
116125
echo "${STD}"
117126
}

0 commit comments

Comments
 (0)