Update zenphoto-install.sh - code cleanup

This commit is contained in:
tschettervictor
2024-09-29 15:10:45 -06:00
committed by GitHub
parent f6f0ec51cd
commit ca7732419b

View File

@@ -1,15 +1,15 @@
#!/bin/sh
# Install Zenphoto
APP_NAME="zenphoto"
DATABASE_TYPE="MariaDB"
APP_NAME="Zenphoto"
APP_VERSION="1.6.4"
DB_TYPE="MariaDB"
DB_NAME="zenphoto"
DB_USER="zenphoto"
DB_ROOT_PASSWORD=$(openssl rand -base64 15)
DB_PASSWORD=$(openssl rand -base64 15)
ZP_VERSION="1.6.4"
MARIADB_VERSION="106"
PHP_VERSION="83"
MARIADB_VERSION="106"
# Check for Root Privileges
if ! [ $(id -u) = 0 ]; then
@@ -19,8 +19,9 @@ fi
# Check for Reinstall
if [ "$(ls -A /var/db/mysql/"${DB_NAME}" 2>/dev/null)" ]; then
echo "Existing Zenphoto database detected. Checking compatability for reinstall."
REINSTALL="true"
echo "Existing ${APP_NAME} database detected."
echo "Starting reinstall..."
REINSTALL="true"
fi
# Install Packages
@@ -30,54 +31,56 @@ pkg install -y caddy mariadb${MARIADB_VERSION}-server mariadb${MARIADB_VERSION}-
mkdir -p /var/db/mysql
mkdir -p /usr/local/www/zenphoto
# Create Database
# Create and Configure Database
sysrc mysql_enable="YES"
service mysql-server start
if [ "${REINSTALL}" == "true" ]; then
echo "You did a reinstall, please use your old database credentials."
fetch -o /root/.my.cnf https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/my.cnf
sed -i '' "s|mypassword|${DB_ROOT_PASSWORD}|" /root/.my.cnf
echo "You did a reinstall, but the ${DB_TYPE} root password AND ${APP_NAME} database password will be changed."
echo "New passwords will still be saved in the root directory."
mysql -u root -e "SET PASSWORD FOR '${DB_USER}'@localhost = PASSWORD('${DB_PASSWORD}');"
fetch -o /root/.my.cnf https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/my.cnf
sed -i '' "s|mypassword|${DB_ROOT_PASSWORD}|" /root/.my.cnf
else
if ! mysql -u root -e "CREATE DATABASE ${DB_NAME};"; then
echo "Failed to create MariaDB database, aborting"
echo "Failed to create ${APP_NAME} database, aborting..."
exit 1
fi
mysql -u root -e "GRANT ALL ON ${DB_NAME}.* TO '${DB_USER}'@localhost IDENTIFIED BY '${DB_PASSWORD}';"
mysql -u root -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -u root -e "DROP DATABASE IF EXISTS test;"
mysql -u root -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -e "FLUSH PRIVILEGES;"
mysqladmin --user=root password "${DB_ROOT_PASSWORD}" reload
fetch -o /root/.my.cnf https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/my.cnf
sed -i '' "s|mypassword|${DB_ROOT_PASSWORD}|" /root/.my.cnf
mysql -u root -e "GRANT ALL ON ${DB_NAME}.* TO '${DB_USER}'@localhost IDENTIFIED BY '${DB_PASSWORD}';"
mysql -u root -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -u root -e "DROP DATABASE IF EXISTS test;"
mysql -u root -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -e "FLUSH PRIVILEGES;"
mysqladmin --user=root password "${DB_ROOT_PASSWORD}" reload
fetch -o /root/.my.cnf https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/my.cnf
sed -i '' "s|mypassword|${DB_ROOT_PASSWORD}|" /root/.my.cnf
fi
# Install Zenphoto
FILE="v${ZP_VERSION}.tar.gz"
fetch -o /tmp https://github.com/zenphoto/zenphoto/archive/"${FILE}"
tar xjf /tmp/"${FILE}" -C /tmp/
fetch -o /tmp https://github.com/zenphoto/zenphoto/archive/"v${APP_VERSION}.tar.gz"
tar xjf /tmp/"v${APP_VERSION}.tar.gz" -C /tmp/
if [ "${REINSTALL}" == "true" ]; then
rm -R /usr/local/www/zenphoto/zp-core
cp -R -f /tmp/zenphoto-"${ZP_VERSION}"/zp-core /usr/local/www/zenphoto/
cp -R /usr/local/www/zenphoto/themes /usr/local/www/zenphoto/themes.bak
rm -R /usr/local/www/zenphoto/themes
cp -R -f /tmp/zenphoto-"${ZP_VERSION}"/themes /usr/local/www/zenphoto/themes
cp -f /tmp/zenphoto-"${ZP_VERSION}"/index.php /usr/local/www/zenphoto/index.php
chown -R www:www /usr/local/www/zenphoto
rm -R /tmp/"${FILE}" /tmp/zenphoto-"${ZP_VERSION}"
rm -R /usr/local/www/zenphoto/zp-core
cp -R -f /tmp/zenphoto-"${APP_VERSION}"/zp-core /usr/local/www/zenphoto/
cp -R /usr/local/www/zenphoto/themes /usr/local/www/zenphoto/themes.bak
rm -R /usr/local/www/zenphoto/themes
cp -R -f /tmp/zenphoto-"${APP_VERSION}"/themes /usr/local/www/zenphoto/themes
cp -f /tmp/zenphoto-"${APP_VERSION}"/index.php /usr/local/www/zenphoto/index.php
chown -R www:www /usr/local/www/zenphoto
rm -R /tmp/"v${APP_VERSION}.tar.gz" /tmp/zenphoto-"${APP_VERSION}"
sed -i '' "s|.*zenphoto_db_pass.*|${DB_PASSWORD}|" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
else
cp -r -f /tmp/zenphoto-"${ZP_VERSION}"/ /usr/local/www/zenphoto/
rm -R /tmp/"${FILE}" /tmp/zenphoto-"${ZP_VERSION}"
fetch -o /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php.bak https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/zenphoto.cfg.php
cp -f /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php.bak /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s/zenphoto_db_user/${DB_USER}/" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s|zenphoto_db_pass|${DB_PASSWORD}|" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s|zenphoto_db_socket|/var/run/mysql/mysql.sock|" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s/zenphoto_db/${DB_NAME}/" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
touch /usr/local/www/zenphoto/zp-data/charset_tést
chown -R www:www /usr/local/www/zenphoto
cp -r -f /tmp/zenphoto-"${APP_VERSION}"/ /usr/local/www/zenphoto/
rm -R /tmp/"v${APP_VERSION}.tar.gz" /tmp/zenphoto-"${APP_VERSION}"
fetch -o /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php.bak https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/zenphoto.cfg.php
cp -f /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php.bak /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s/zenphoto_db_user/${DB_USER}/" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s|zenphoto_db_pass|${DB_PASSWORD}|" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s|zenphoto_db_socket|/var/run/mysql/mysql.sock|" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
sed -i '' "s/zenphoto_db/${DB_NAME}/" /usr/local/www/zenphoto/zp-data/zenphoto.cfg.php
touch /usr/local/www/zenphoto/zp-data/charset_tést
fi
chown -R www:www /usr/local/www/zenphoto
fetch -o /usr/local/etc/php.ini https://raw.githubusercontent.com/tschettervictor/bsd-apps/main/zenphoto/includes/php.ini
chown -R www:www /usr/local/etc/php.ini
@@ -91,22 +94,31 @@ sysrc php_fpm_enable="YES"
service caddy start
service php-fpm start
# Save Passwords
echo "${DB_TYPE} root user is root and password is ${DB_ROOT_PASSWORD}" > /root/${APP_NAME}-Info.txt
echo "${APP_NAME} database name is ${DB_NAME} and password is ${DB_PASSWORD}" >> /root/${APP_NAME}-Info.txt
echo "${APP_NAME} user is admin password is ${ADMIN_PASSWORD}" >> /root/${APP_NAME}-Info.txt
# Done
echo "---------------"
echo "Installation complete."
echo "Zenphoto is running on port 80"
echo "Vistit /zp-core/setup.php to begin your Zenphoto setup"
echo "${APP_NAME} is running on port 80"
echo "Visit /zp-core/setup.php to begin your ${APP_NAME} setup."
echo "---------------"
echo "Database Information"
echo "$DB_TYPE Username: root"
echo "$DB_TYPE Password: $DB_ROOT_PASSWORD"
echo "$APP_NAME DB User: $DB_USER"
echo "$APP_NAME DB Password: $DB_PASSWORD"
echo "---------------"
if [ "${REINSTALL}" == "true" ]; then
echo "You did a reinstall, please user your old credentials to log in."
echo "You did a reinstall"
echo "Please user your old credentials to log in."
echo "---------------"
else
echo "Database Information"
echo "MySQL Username: root"
echo "MySQL Password: $DB_ROOT_PASSWORD"
echo "Zenphoto DB User: $DB_USER"
echo "Zenphoto DB Password: "$DB_PASSWORD""
echo "---------------"
echo "User Information"
echo "Admin user is created on setup."
echo "---------------"
fi
echo "All passwords are saved in /root/${APP_NAME}_db_password.txt"
echo "All passwords are saved in /root/${APP_NAME}-Info.txt"
echo "---------------"