|
@@ -38,8 +38,10 @@ export TEXTDOMAINDIR="/usr/share/locale"
|
38
|
38
|
DEFAULT_LANGUAGE=$(echo $LANG)
|
39
|
39
|
|
40
|
40
|
source /usr/local/bin/${PROJECT_NAME}-utils-git
|
|
41
|
+source /usr/local/bin/${PROJECT_NAME}-utils-database
|
41
|
42
|
if [ -f /usr/bin/${PROJECT_NAME}-utils-git ]; then
|
42
|
43
|
source /usr/bin/${PROJECT_NAME}-utils-git
|
|
44
|
+ source /usr/bin/${PROJECT_NAME}-utils-database
|
43
|
45
|
fi
|
44
|
46
|
|
45
|
47
|
# username created by default within a debian image
|
|
@@ -623,37 +625,6 @@ function show_help {
|
623
|
625
|
exit 0
|
624
|
626
|
}
|
625
|
627
|
|
626
|
|
-function remove_database {
|
627
|
|
- app_name="$1"
|
628
|
|
- if [ ! -d $INSTALL_DIR ]; then
|
629
|
|
- mkdir $INSTALL_DIR
|
630
|
|
- fi
|
631
|
|
- echo "drop database ${app_name};
|
632
|
|
- quit" > $INSTALL_DIR/batch.sql
|
633
|
|
- chmod 600 $INSTALL_DIR/batch.sql
|
634
|
|
- mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
|
635
|
|
- shred -zu $INSTALL_DIR/batch.sql
|
636
|
|
-}
|
637
|
|
-
|
638
|
|
-function create_database {
|
639
|
|
- app_name="$1"
|
640
|
|
- app_admin_password="$2"
|
641
|
|
- app_admin_username=$3
|
642
|
|
- if [ ! -d $INSTALL_DIR ]; then
|
643
|
|
- mkdir $INSTALL_DIR
|
644
|
|
- fi
|
645
|
|
- if [ ! $app_admin_username ]; then
|
646
|
|
- app_admin_username=${app_name}admin
|
647
|
|
- fi
|
648
|
|
- echo "create database ${app_name};
|
649
|
|
- CREATE USER '$app_admin_username@localhost' IDENTIFIED BY '${app_admin_password}';
|
650
|
|
- GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
|
651
|
|
- quit" > $INSTALL_DIR/batch.sql
|
652
|
|
- chmod 600 $INSTALL_DIR/batch.sql
|
653
|
|
- mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
|
654
|
|
- shred -zu $INSTALL_DIR/batch.sql
|
655
|
|
-}
|
656
|
|
-
|
657
|
628
|
function locale_setup {
|
658
|
629
|
if grep -Fxq "locale_setup" $COMPLETION_FILE; then
|
659
|
630
|
return
|
|
@@ -2045,70 +2016,6 @@ function create_site_certificate {
|
2045
|
2016
|
fi
|
2046
|
2017
|
}
|
2047
|
2018
|
|
2048
|
|
-function backup_database_local {
|
2049
|
|
- # Makes local backups of databases which can then be automatically rolled
|
2050
|
|
- # back if corruption is detected
|
2051
|
|
- database_name=$1
|
2052
|
|
-
|
2053
|
|
- backup_databases_script=/usr/bin/backupdatabases
|
2054
|
|
- echo '' >> $backup_databases_script
|
2055
|
|
- echo "# Backup the ${database_name} database" >> $backup_databases_script
|
2056
|
|
- echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
|
2057
|
|
- echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
|
2058
|
|
- echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
|
2059
|
|
- echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
|
2060
|
|
- echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
|
2061
|
|
- echo ' if [ -f $DAILYFILE ]; then' >> $backup_databases_script
|
2062
|
|
- echo ' cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
|
2063
|
|
- echo '' >> $backup_databases_script
|
2064
|
|
- echo ' # try to restore yesterdays database' >> $backup_databases_script
|
2065
|
|
- echo " mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
|
2066
|
|
- echo '' >> $backup_databases_script
|
2067
|
|
- echo ' # Send a warning email' >> $backup_databases_script
|
2068
|
|
- echo " echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
2069
|
|
- echo ' else' >> $backup_databases_script
|
2070
|
|
- echo ' # Send a warning email' >> $backup_databases_script
|
2071
|
|
- echo " echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
2072
|
|
- echo ' fi' >> $backup_databases_script
|
2073
|
|
- echo 'else' >> $backup_databases_script
|
2074
|
|
- echo ' chmod 600 $TEMPFILE' >> $backup_databases_script
|
2075
|
|
- echo ' mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
|
2076
|
|
- echo '' >> $backup_databases_script
|
2077
|
|
- echo ' # Make the backup readable only by root' >> $backup_databases_script
|
2078
|
|
- echo ' chmod 600 $DAILYFILE' >> $backup_databases_script
|
2079
|
|
- echo 'fi' >> $backup_databases_script
|
2080
|
|
-
|
2081
|
|
- weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
|
2082
|
|
- if ! grep -q "${database_name}" ${weekly_backup_script}; then
|
2083
|
|
- echo '' >> ${weekly_backup_script}
|
2084
|
|
- echo "# ${database_name}" >> ${weekly_backup_script}
|
2085
|
|
- echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${weekly_backup_script}
|
2086
|
|
- echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_2weekly.sql" >> ${weekly_backup_script}
|
2087
|
|
- echo 'fi' >> ${weekly_backup_script}
|
2088
|
|
- echo "if [ -f /var/backups/${database_name}_daily.sql ]; then" >> ${weekly_backup_script}
|
2089
|
|
- echo " cp -f /var/backups/${database_name}_daily.sql /var/backups/${database_name}_weekly.sql" >> ${weekly_backup_script}
|
2090
|
|
- echo 'fi' >> ${weekly_backup_script}
|
2091
|
|
- fi
|
2092
|
|
-
|
2093
|
|
- monthly_backup_script=/etc/cron.monthly/backupdatabasesmonthly
|
2094
|
|
- if ! grep -q "${database_name}" ${monthly_backup_script}; then
|
2095
|
|
- echo '' >> ${monthly_backup_script}
|
2096
|
|
- echo "# ${database_name}" >> ${monthly_backup_script}
|
2097
|
|
- echo "if [ -f /var/backups/${database_name}_monthly.sql ]; then" >> ${monthly_backup_script}
|
2098
|
|
- echo " cp -f /var/backups/${database_name}_monthly.sql /var/backups/${database_name}_2monthly.sql" >> ${monthly_backup_script}
|
2099
|
|
- echo 'fi' >> ${monthly_backup_script}
|
2100
|
|
- echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${monthly_backup_script}
|
2101
|
|
- echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_monthly.sql" >> ${monthly_backup_script}
|
2102
|
|
- echo 'fi' >> ${monthly_backup_script}
|
2103
|
|
- fi
|
2104
|
|
-
|
2105
|
|
- if ! grep -q "${database_name}" /etc/cron.hourly/repair; then
|
2106
|
|
- echo "${PROJECT_NAME}-repair-database ${database_name}" >> /etc/cron.hourly/repair
|
2107
|
|
- # remove legacy stuff
|
2108
|
|
- sed -i 's|/usr/bin/repairdatabase redmatrix||g' /etc/cron.hourly/repair
|
2109
|
|
- fi
|
2110
|
|
-}
|
2111
|
|
-
|
2112
|
2019
|
function install_not_on_BBB {
|
2113
|
2020
|
if grep -Fxq "install_not_on_BBB" $COMPLETION_FILE; then
|
2114
|
2021
|
return
|
|
@@ -3247,71 +3154,6 @@ function check_hwrng {
|
3247
|
3154
|
#check_onerng_verification
|
3248
|
3155
|
}
|
3249
|
3156
|
|
3250
|
|
-function get_mariadb_password {
|
3251
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3252
|
|
- if grep -q "MariaDB password" /home/$MY_USERNAME/README; then
|
3253
|
|
- if [ -f $DATABASE_PASSWORD_FILE ]; then
|
3254
|
|
- MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
|
3255
|
|
- else
|
3256
|
|
- MARIADB_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3257
|
|
- echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
|
3258
|
|
- chmod 600 $DATABASE_PASSWORD_FILE
|
3259
|
|
- fi
|
3260
|
|
- fi
|
3261
|
|
- fi
|
3262
|
|
-}
|
3263
|
|
-
|
3264
|
|
-function get_mariadb_media_server_admin_password {
|
3265
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3266
|
|
- if grep -q "Media server administrator password" /home/$MY_USERNAME/README; then
|
3267
|
|
- MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Media server administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3268
|
|
- fi
|
3269
|
|
- fi
|
3270
|
|
-}
|
3271
|
|
-
|
3272
|
|
-function get_mariadb_gnusocial_admin_password {
|
3273
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3274
|
|
- if grep -q "MariaDB gnusocial admin password" /home/$MY_USERNAME/README; then
|
3275
|
|
- MICROBLOG_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB gnusocial admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3276
|
|
- fi
|
3277
|
|
- if grep -q "Microblog administrator password" /home/$MY_USERNAME/README; then
|
3278
|
|
- MICROBLOG_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Microblog administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3279
|
|
- fi
|
3280
|
|
- fi
|
3281
|
|
-}
|
3282
|
|
-
|
3283
|
|
-function get_mariadb_webmail_admin_password {
|
3284
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3285
|
|
- if grep -q "MariaDB webmail admin password" /home/$MY_USERNAME/README; then
|
3286
|
|
- WEBMAIL_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB webmail admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3287
|
|
- fi
|
3288
|
|
- fi
|
3289
|
|
-}
|
3290
|
|
-
|
3291
|
|
-function get_mariadb_rss_reader_admin_password {
|
3292
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3293
|
|
- if grep -q "RSS reader admin password" /home/$MY_USERNAME/README; then
|
3294
|
|
- RSS_READER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "RSS reader admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3295
|
|
- fi
|
3296
|
|
- fi
|
3297
|
|
-}
|
3298
|
|
-
|
3299
|
|
-function get_mariadb_git_admin_password {
|
3300
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3301
|
|
- if grep -q "Gogs admin user password" /home/$MY_USERNAME/README; then
|
3302
|
|
- GIT_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Gogs admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3303
|
|
- fi
|
3304
|
|
- fi
|
3305
|
|
-}
|
3306
|
|
-
|
3307
|
|
-function get_mariadb_hubzilla_admin_password {
|
3308
|
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
3309
|
|
- if grep -q "MariaDB Hubzilla admin password" /home/$MY_USERNAME/README; then
|
3310
|
|
- HUBZILLA_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB Hubzilla admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3311
|
|
- fi
|
3312
|
|
- fi
|
3313
|
|
-}
|
3314
|
|
-
|
3315
|
3157
|
function create_freedns_updater {
|
3316
|
3158
|
if [[ $ONION_ONLY != "no" ]]; then
|
3317
|
3159
|
return
|
|
@@ -6235,114 +6077,6 @@ function configure_php {
|
6235
|
6077
|
sed -i "s/post_max_size = 8M/post_max_size = 50M/g" /etc/php5/fpm/php.ini
|
6236
|
6078
|
}
|
6237
|
6079
|
|
6238
|
|
-function install_mariadb {
|
6239
|
|
- if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
|
6240
|
|
- return
|
6241
|
|
- fi
|
6242
|
|
- apt-get -y install python-software-properties debconf-utils
|
6243
|
|
- apt-get -y install software-properties-common
|
6244
|
|
- apt-get -y update
|
6245
|
|
-
|
6246
|
|
- get_mariadb_password
|
6247
|
|
- if [ ! $MARIADB_PASSWORD ]; then
|
6248
|
|
- if [ -f $IMAGE_PASSWORD_FILE ]; then
|
6249
|
|
- MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
|
6250
|
|
- else
|
6251
|
|
- MARIADB_PASSWORD="$(openssl rand -base64 32 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
|
6252
|
|
- fi
|
6253
|
|
- echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
|
6254
|
|
- chmod 600 $DATABASE_PASSWORD_FILE
|
6255
|
|
-
|
6256
|
|
- echo '' >> /home/$MY_USERNAME/README
|
6257
|
|
- echo '' >> /home/$MY_USERNAME/README
|
6258
|
|
- echo 'MariaDB / MySql' >> /home/$MY_USERNAME/README
|
6259
|
|
- echo '===============' >> /home/$MY_USERNAME/README
|
6260
|
|
- echo $"Your MariaDB password is: $MARIADB_PASSWORD" >> /home/$MY_USERNAME/README
|
6261
|
|
- echo '' >> /home/$MY_USERNAME/README
|
6262
|
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
6263
|
|
- chmod 600 /home/$MY_USERNAME/README
|
6264
|
|
- fi
|
6265
|
|
-
|
6266
|
|
- debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
|
6267
|
|
- debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
|
6268
|
|
- apt-get -y install mariadb-server
|
6269
|
|
- apt-get -y remove --purge apache*
|
6270
|
|
- if [ -d /etc/apache2 ]; then
|
6271
|
|
- rm -rf /etc/apache2
|
6272
|
|
- echo $'Removed Apache installation after MariaDB install'
|
6273
|
|
- fi
|
6274
|
|
-
|
6275
|
|
- if [ ! -d /etc/mysql ]; then
|
6276
|
|
- echo $"ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
|
6277
|
|
- exit 54
|
6278
|
|
- fi
|
6279
|
|
-
|
6280
|
|
- mysqladmin -u root password "$MARIADB_PASSWORD"
|
6281
|
|
- echo 'install_mariadb' >> $COMPLETION_FILE
|
6282
|
|
-}
|
6283
|
|
-
|
6284
|
|
-function backup_databases_script_header {
|
6285
|
|
- if [ ! -f /usr/bin/backupdatabases ]; then
|
6286
|
|
- # daily
|
6287
|
|
- echo '#!/bin/sh' > /usr/bin/backupdatabases
|
6288
|
|
- echo '' >> /usr/bin/backupdatabases
|
6289
|
|
- echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
|
6290
|
|
- echo '' >> /usr/bin/backupdatabases
|
6291
|
|
- echo -n 'MYSQL_PASSWORD=$(cat ' >> /usr/bin/backupdatabases
|
6292
|
|
- echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/backupdatabases
|
6293
|
|
- echo 'umask 0077' >> /usr/bin/backupdatabases
|
6294
|
|
- echo '' >> /usr/bin/backupdatabases
|
6295
|
|
- echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
|
6296
|
|
- echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
|
6297
|
|
- echo ' exit 1' >> /usr/bin/backupdatabases
|
6298
|
|
- echo 'fi' >> /usr/bin/backupdatabases
|
6299
|
|
- chmod 600 /usr/bin/backupdatabases
|
6300
|
|
- chmod +x /usr/bin/backupdatabases
|
6301
|
|
-
|
6302
|
|
- echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
|
6303
|
|
- echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
|
6304
|
|
- chmod 600 /etc/cron.daily/backupdatabasesdaily
|
6305
|
|
- chmod +x /etc/cron.daily/backupdatabasesdaily
|
6306
|
|
-
|
6307
|
|
- # weekly
|
6308
|
|
- echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
|
6309
|
|
- echo '' >> /etc/cron.weekly/backupdatabasesweekly
|
6310
|
|
- echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
|
6311
|
|
-
|
6312
|
|
- chmod 600 /etc/cron.weekly/backupdatabasesweekly
|
6313
|
|
- chmod +x /etc/cron.weekly/backupdatabasesweekly
|
6314
|
|
-
|
6315
|
|
- # monthly
|
6316
|
|
- echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
|
6317
|
|
- echo '' >> /etc/cron.monthly/backupdatabasesmonthly
|
6318
|
|
- echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
|
6319
|
|
-
|
6320
|
|
- chmod 600 /etc/cron.monthly/backupdatabasesmonthly
|
6321
|
|
- chmod +x /etc/cron.monthly/backupdatabasesmonthly
|
6322
|
|
- fi
|
6323
|
|
-}
|
6324
|
|
-
|
6325
|
|
-function repair_databases_script {
|
6326
|
|
- if [ -f /etc/cron.hourly/repair ]; then
|
6327
|
|
- sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
|
6328
|
|
- fi
|
6329
|
|
-
|
6330
|
|
- if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
|
6331
|
|
- return
|
6332
|
|
- fi
|
6333
|
|
-
|
6334
|
|
- if [ ! -f $DATABASE_PASSWORD_FILE ]; then
|
6335
|
|
- return
|
6336
|
|
- fi
|
6337
|
|
-
|
6338
|
|
- echo '#!/bin/bash' > /etc/cron.hourly/repair
|
6339
|
|
- echo '' >> /etc/cron.hourly/repair
|
6340
|
|
- chmod 600 /etc/cron.hourly/repair
|
6341
|
|
- chmod +x /etc/cron.hourly/repair
|
6342
|
|
-
|
6343
|
|
- echo 'repair_databases_script' >> $COMPLETION_FILE
|
6344
|
|
-}
|
6345
|
|
-
|
6346
|
6080
|
function add_ddns_domain {
|
6347
|
6081
|
if [ ! $1 ]; then
|
6348
|
6082
|
echo $'ddns domain not specified'
|