diff --git a/seqs/pixelfed.sh b/seqs/pixelfed.sh index 09bb306..c33009f 100755 --- a/seqs/pixelfed.sh +++ b/seqs/pixelfed.sh @@ -2,7 +2,7 @@ toolName="pixelfed" toolTag="dev" -toolDeps="composer jpegoptim php7.3-bcmath" +toolDeps="composer jpegoptim php7.3-bcmath php-imagick" toolPath="/var/www/pixelfed" step_1_info() { echo "Updating apt"; } @@ -11,24 +11,23 @@ step_1() { exe apt update } -step_2_info() { echo -e "Installing $toolname dependencies: $toolDeps"; } +step_2_info() { echo -e "Installing $toolName dependencies: $toolDeps"; } step_2() { exe apt install $toolDeps -y - saveReturn $? - endReturn + endReturn -o $? "Installing deps for $toolName failed" exe service php7.3-fpm restart + endReturn -o $? "Problems starting $toolName" } step_3_info() { echo -e "Get $toolName using git"; } step_3() { exe git clone -b $toolTag https://github.com/pixelfed/pixelfed.git $toolPath - cd $toolPath + exe cd $toolPath exe chown -R www-data:www-data . # change user/group to http user and http group exe find . -type d -exec chmod 755 {} \; # set all directories to rwx by user/group exe find . -type f -exec chmod 644 {} \; # set all files to rw by user/group exe composer install --no-ansi --no-interaction --optimize-autoloader - saveReturn $? - endReturn + endReturn -o $? "Composer install error" } step_4_info() { echo "Create mysql database for $toolName"; } @@ -41,11 +40,10 @@ step_4() { exe mysql -u root -e 'SHOW DATABASES;' echo -en "Enter database name: " - read mysqlDatabase + exe read mysqlDatabase endCheckEmpty mysqlDatabase "database name" exe mysql -u root -e 'CREATE DATABASE '$mysqlDatabase' CHARACTER SET utf8mb4;' - saveReturn $? - endReturn + endReturn -o $? "Creating database failed" echo "Existing mysql user:" exe mysql -u root -e 'SELECT User, Host FROM mysql.user;' @@ -57,21 +55,19 @@ step_4() { read -s mysqlPass endCheckEmpty mysqlPass "password" exe mysql -u root -e 'CREATE USER '"'"$mysqlUser"'"'@'"'"'localhost'"'"' IDENTIFIED BY '"'"$mysqlPass"'"';' - saveReturn $? - endReturn + endReturn -o $? "Creating database user \"${mysqlUser}\" failed"; exe mysql -u root -e 'GRANT ALL PRIVILEGES ON '$mysqlDatabase'.* TO '"'"$mysqlUser"'"'@'"'"'localhost'"'"';' - saveReturn $? - endReturn + endReturn -o $? "Granting privileges for user \"${mysqlUser}\" failed"; exe mysql -u root -e 'FLUSH PRIVILEGES;' } step_5_info() { echo "$toolName configuration"; } step_5() { - cd $toolPath + exe cd $toolPath exe cp .env.example .env - read -p "Edit database settings, hostname, email settings, IMAGE_DRIVER=imagick, etc... (Enter to continue)" + exe read -p "Edit database settings, hostname, email settings, IMAGE_DRIVER=imagick, etc... (Enter to continue)" exe vi .env exe php artisan key:generate exe php artisan config:cache @@ -82,16 +78,15 @@ step_5() { step_6_info() { echo "Create admin user"; } step_6() { - cd $toolPath - read -p "Create admin user. (Enter to continue)" + exe cd $toolPath + exe read -p "Create admin user. (Enter to continue)" exe php artisan user:create } step_7_info() { echo "Create pixelfed (horzion) service"; } step_7() { addConf -c "${horizonService}" "${horizonServiceLoc}" - saveReturn $? - endReturn + endReturn -o $? "Failed to add horizon service" exe systemctl daemon-reload exe systemctl enable pixelfed.service exe service pixelfed start @@ -100,7 +95,7 @@ step_7() { horizonServiceLoc="/etc/systemd/system/pixelfed.service" horizonService="\ [Unit] -Description=Pixelfeds' Horizon +Description=${toolName}s' Horizon After=syslog.target After=network.target #Requires=mysql.service @@ -120,8 +115,8 @@ RestartSec=2s Type=simple User=www-data Group=www-data -WorkingDirectory=/var/www/pixelfed/ -ExecStart=/usr/bin/php /var/www/pixelfed/artisan horizon +WorkingDirectory=${toolPath}/ +ExecStart=/usr/bin/php ${toolPath}/artisan horizon Restart=always Environment= @@ -133,8 +128,7 @@ step_8() { addConf -c "$nginxConfig" "$nginxConfigLoc" exe ln -s "$nginxConfigLoc" "$nginxConfigEnable" exe nginx -t - saveReturn $? - endReturn + endReturn -o $? "Nginx configuration check error" exe service nginx restart } @@ -195,7 +189,7 @@ location ~ /\\.(?!well-known).* { step_20_info() { echo "Reload configuration (.env)"; } step_20_alias() { ALIAS="newenv"; } step_20() { - cd $toolPath + exe cd $toolPath exe php artisan config:cache exe service pixelfed restart } @@ -203,23 +197,24 @@ step_20() { step_22_info() { echo "Create new user"; } step_22_alias() { ALIAS="createuser"; } step_22() { - cd $toolPath + exe cd $toolPath exe php artisan user:create } step_24_info() { echo "Checkout to dev branch. Losing local changes!"; } step_24_alias() { ALIAS="forcedev"; } step_24() { - read -p "Are you sure: y/n(default)? " answer - case $answer in - [yY]) - ;; - *) - return 1 - ;; - esac - - cd $toolPath + exe read -p "Are you sure: y/[n]? " answer + if [ $DRY -eq 0 ] ; then + case $answer in + [yY]) + ;; + *) + return 1 + ;; + esac + fi + exe cd $toolPath exe git fetch --all exe git reset --hard origin/dev exe git pull origin dev @@ -229,19 +224,17 @@ step_24() { step_100_info() { echo "Upgrade \"${toolPath}\" to supported tag $toolTag"; } step_100_alias() { ALIAS="upgrade"; } step_100() { - cd $toolPath + exe cd $toolPath exe git pull - saveReturn $? - endReturn + endReturn -o $? "git pull failed" exe git checkout $toolTag - saveReturn $? - endReturn + endReturn -o $? "git checkout failed" } step_101_info() { echo "Recommended post update procedure"; } step_101_alias() { ALIAS="postupdate"; } step_101() { - cd $toolPath + exe cd $toolPath exe composer install --no-ansi --no-interaction --no-progress --no-scripts --optimize-autoloader exe php artisan config:cache exe php artisan route:cache @@ -252,10 +245,7 @@ step_101() { } # Sequence Revision -VERSION_SEQREV=3 +VERSION_SEQREV=7 -# Workaround when called from different directory -# Not needed when path to sequencer is absolut -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >>/dev/null 2>&1 && pwd )" # Path to sequencer -. ${DIR}/../sequencer/sequencer.sh +. sequencer.sh diff --git a/seqs/webserver.sh b/seqs/webserver.sh index ac3695a..295065e 100755 --- a/seqs/webserver.sh +++ b/seqs/webserver.sh @@ -190,6 +190,7 @@ step_14_info() { echo "List mysql databases"; } step_14_alias() { ALIAS="listdb"; } step_14() { exe mysql -u root -e 'SHOW DATABASES;' + echo -e "\nDrop userdb by: mysql -u root -e 'DROP DATABASE userdb;'" } step_16_info() { echo "List mysql user"; } diff --git a/seqs/webserverUbuntu.sh b/seqs/webserverUbuntu.sh index 35b046b..de706b5 100755 --- a/seqs/webserverUbuntu.sh +++ b/seqs/webserverUbuntu.sh @@ -9,14 +9,13 @@ phpName="php$phpVersion" phpPackages="${phpName}-fpm ${phpName}-json ${phpName}-mysql ${phpName}-curl ${phpName}-intl ${phpName}-gd ${phpName}-zip ${phpName}-xml ${phpName}-mbstring php-imagick php-apcu" step_1_info() { echo -e "Installation of $serverName and ${databaseName} packages:\n $serverPackages $databasePackages"; } -step_1_alias() { ALIAS=install; } +step_1_alias() { ALIAS="install"; } step_1() { exe apt update exe apt install $databasePackages - saveReturn $? - endReturn + endReturn -o $? "Database package installation error" exe apt install $serverPackages - saveReturn $? + endReturn -o $? "Server package installation error" } step_2_info() { echo "Basic nginx configuration for initial letsencrypt certificate creation"; } @@ -36,10 +35,9 @@ step_2() { # create webroot exe mkdir -p "$siteLetsencryptWww" - echo -n "Restarting Nginx ... " + echo -n " [I] Restarting Nginx ... " exe service nginx restart && echo "ok" - saveReturn $? - endReturn + endReturn -o $? "Nginx error during startup" } snippetLetsencryptLoc="/etc/nginx/snippets/letsencrypt.conf" @@ -65,8 +63,10 @@ step_4_info() { echo "Mariadb configuration"; } step_4() { addConf -c "$mariadbConfig" "$mariadbConfigLoc" - echo -n "Restarting mysql ... " - exe service mysql restart && echo "ok" + echo -n " [I] Restarting mysql ... " + exe service mysql restart + endReturn -o $? "Mariadb error during startup" + echo "ok" } mariadbConfigLoc="/etc/mysql/mariadb.conf.d/90-myconfig.cnf" @@ -83,6 +83,7 @@ lower_case_table_names=0 step_5_info() { echo -e "Installation of $phpName packages:\n $phpPackages"; } step_5() { exe apt install $phpPackages + endReturn -o $? "$phpName error during startup" } phpFpmConfigLocation="/etc/php/${phpVersion}/fpm/conf.d/90-custom_pi.ini" @@ -111,8 +112,10 @@ step_6() { addConf -c "$phpFpmConfig" "$phpFpmConfigLocation" addConf -c "$phpCliConfig" "$phpCliConfigLocation" - echo -n "Restarting ${phpName} ... " - exe service ${phpName}-fpm restart && echo "ok" + echo -n "Restarting ${phpName} ..." + exe service ${phpName}-fpm restart + endReturn -o $? "$phpName error during restart" + echo "ok" } step_10_info() { echo -e "Create mysql database without specific characterset\n"; } @@ -184,6 +187,6 @@ step_12() { exe mysql -u root -e 'FLUSH PRIVILEGES;' } -VERSION_SEQREV=3 +VERSION_SEQREV=7 . sequencer.sh