diff options
Diffstat (limited to '.homeinstall')
-rw-r--r-- | .homeinstall/README.md | 43 | ||||
-rwxr-xr-x | .homeinstall/hubzilla-setup.sh | 89 |
2 files changed, 32 insertions, 100 deletions
diff --git a/.homeinstall/README.md b/.homeinstall/README.md index 96ce3b6d4..7e16e2c52 100644 --- a/.homeinstall/README.md +++ b/.homeinstall/README.md @@ -28,8 +28,8 @@ Hardware Software -+ Fresh installation of Debian 9 (Stretch) on your mini-pc -+ Router with open ports 80 and 443 for your Debian ++ Fresh installation of Debian 9 (Stretch) ++ Router with open ports 80 and 443 for your Hub ## The basic steps (quick overview) @@ -39,10 +39,12 @@ Software - mkdir -p /var/www - cd /var/www - git clone https://github.com/redmatrix/hubzilla.git html - - cp .homeinstall/hubzilla-config.txt.template .homeinstall/hubzilla-config.txt - - nano .homeinstall/hubzilla-config.txt + - cd /html/.homeinstall + - cp hubzilla-config.txt.template hubzilla-config.txt + - nano hubzilla-config.txt - Read the comments carefully - Enter your values: db pass, domain, values for dyn DNS + - Make sure your your external drive (for backups) is mounted - hubzilla-setup.sh as root - ... wait, wait, wait until the script is finised - reboot @@ -56,16 +58,19 @@ Software ### Recommended: USB Drive for Backups -The installation will create a daily backup. - -If the backup process does not find an external device than the backup goes to -the internal disk. +The installation will create a daily backup written to an external drive. The USB drive must be compatible with the filesystems - ext4 (if you do not want to encrypt the USB) - LUKS + ext4 (if you want to encrypt the USB) +The backup includes + +- Hubzilla DB +- Hubzilla installation /var/www/html +- Certificates for letsencrypt + ## Preparations Software ### Install Debian Linux on the Mini-PC @@ -107,20 +112,17 @@ You can use subdomains as well my.cooldomain.org -There are two way to get a domain - -- buy a domain, or -- register a free subdomain +There are two ways to get a domain... -### Method 1: Buy an own Domain +### Method 1: Buy a Domain ...for example buy at selfHOST.de The cost are around 10,- € once and 1,50 € per month (2017). -### Method 2 Register a (free) Subdomain +The cost are around 10,- € once and 1,50 € per month (2017). -...for example register at freeDNS +...for example register at freedns.afraid.org Follow the instructions in .homeinstall/hubzilla-config.txt. @@ -158,10 +160,12 @@ Copy the template file cp hubzilla-config.txt.template hubzilla-config.txt -Change the file "hubzilla-config.txt". Read the instructions there carefully and enter your values. +Modify the file "hubzilla-config.txt". Read the instructions there carefully and enter your values. nano hubzilla-config.txt +Make sure your external drive (for backups) is plugged in and can be mounted as configured in "hubzilla-config.txt". Otherwise the daily backups will not work. + Run the script ./hubzilla-setup.sh @@ -185,6 +189,13 @@ Leave db type "MySQL" untouched. Follow the instructions in the next pages. +After the daily script was executed at 05:30 (am) + +- look at var/www/html/hubzilla-daily.log +- check your backup on the external drive +- optionally view the daily log under yourdomain.org/admin/logs/ + - set the logfile to var/www/html/hubzilla-daily.log + ## Note for the Rasperry The script was tested with an Raspberry 3 under Raspian (Debian 9.3, 2017-11-29-raspbian-stretch.img). diff --git a/.homeinstall/hubzilla-setup.sh b/.homeinstall/hubzilla-setup.sh index 023b9eed1..635bb3518 100755 --- a/.homeinstall/hubzilla-setup.sh +++ b/.homeinstall/hubzilla-setup.sh @@ -459,11 +459,6 @@ function configure_cron_selfhost { fi } -function install_git { - print_info "installing git..." - nocheck_install "git" -} - function install_letsencrypt { print_info "installing let's encrypt ..." # check if user gave domain @@ -570,20 +565,13 @@ function check_https { } function install_hubzilla { - print_info "installing hubzilla..." - # rm -R /var/www/html/ # for "stand alone" usage - cd /var/www/ - # git clone https://github.com/redmatrix/hubzilla html # for "stand alone" usage - cd html/ - git clone https://github.com/redmatrix/hubzilla-addons addon + print_info "installing hubzilla addons..." + cd /var/www/html/ + util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons mkdir -p "store/[data]/smarty3" chmod -R 777 store touch .htconfig.php chmod ou+w .htconfig.php - # uncomment the last function call "install_hubzilla_plugins" - # - if you want to install addons and themes that are not officially supported - # - and read the comments in function "install_hubzilla_plugins" how do do it - # install_hubzilla_plugins cd /var/www/ chown -R www-data:www-data html chown root:www-data /var/www/html/ @@ -598,72 +586,6 @@ function install_hubzilla { print_info "installed hubzilla" } -function install_hubzilla_plugins { - print_info "installing hubzilla plugins..." - cd /var/www/html - plugin_install=.homeinstall/plugin_install.txt - theme_install=.homeinstall/theme_install.txt - # overwrite script to update the plugin and themes - rm -f $plugins_update - echo "cd /var/www/html" >> $plugins_update - ################### - # write plugin file - if [ ! -f "$plugin_install" ] - then - echo "# To install a plugin" >> $plugin_install - echo "# 1. add the plugin in a new line and run" >> $plugin_install - echo "# 2. run" >> $plugin_install - echo "# cd /var/www/html/.homeinstall" >> $plugin_install - echo "# ./hubzilla-setup.sh" >> $plugin_install - echo "https://gitlab.com/zot/ownmapp.git ownMapp" >> $plugin_install - fi - # install plugins - while read -r line; do - [[ "$line" =~ ^#.*$ ]] && continue - p_url=$(echo $line | awk -F' ' '{print $1}') - p_name=$(echo $line | awk -F' ' '{print $2}') - # basic check of format - if [ ${#p_url} -ge 1 ] && [ ${#p_name} -ge 1 ] - then - # install addon - util/add_addon_repo $line - util/update_addon_repo $p_name # not sure if this line is neccessary - echo "util/update_addon_repo $p_name" >> $plugins_update - else - print_info "skipping installation of a plugin from file $plugin_install - something wrong with format in line: $line" - fi - done < "$plugin_install" - ################### - # write theme file - if [ ! -f "$theme_install" ] - then - echo "# To install a theme" >> $theme_install - echo "# 1. add the theme in a new line and run" >> $theme_install - echo "# 2. run" >> $theme_install - echo "# cd /var/www/html/.homeinstall" >> $theme_install - echo "# ./hubzilla-setup.sh" >> $theme_install - echo "https://github.com/DeadSuperHero/hubzilla-themes.git DeadSuperHeroThemes" >> $theme_install - - fi - # install plugins - while read -r line; do - [[ "$line" =~ ^#.*$ ]] && continue - p_url=$(echo $line | awk -F' ' '{print $1}') - p_name=$(echo $line | awk -F' ' '{print $2}') - # basic check of format - if [ ${#p_url} -ge 1 ] && [ ${#p_name} -ge 1 ] - then - # install addon - util/add_theme_repo $line - util/update_theme_repo $p_name # not sure if this line is neccessary - echo "util/update_theme_repo $p_name" >> $plugins_update - else - print_info "skipping installation of a theme from file $theme_install - something wrong with format in line: $line" - fi - done < "$theme_install" - print_info "installed hubzilla plugins and themes" -} - function rewrite_to_https { print_info "configuring apache to redirect http to httpS ..." htaccessfile=/var/www/html/.htaccess @@ -788,12 +710,11 @@ echo " fi" >> /var/www/$hubzilladaily echo "fi" >> /var/www/$hubzilladaily echo "if [ \$device_mounted == 0 ]" >> /var/www/$hubzilladaily echo "then" >> /var/www/$hubzilladaily -echo " echo \"device could not be mounted $backup_device_name. Using internal disk for backup...\"" >> /var/www/$hubzilladaily -echo " rsnapshot -c $snapshotconfig alpha" >> /var/www/$hubzilladaily +echo " echo \"device could not be mounted $backup_device_name. No backup written.\"" >> /var/www/$hubzilladaily echo "fi" >> /var/www/$hubzilladaily echo "#" >> /var/www/$hubzilladaily echo "echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily -echo "du -h /var/cache/rsnapshot/ | grep mysql/hubzilla" >> /var/www/$hubzilladaily +echo "du -h /var/lib/mysql/ | grep mysql/hubzilla" >> /var/www/$hubzilladaily echo "#" >> /var/www/$hubzilladaily echo "# update" >> /var/www/$hubzilladaily echo "echo \"\$(date) - updating dehydrated...\"" >> /var/www/$hubzilladaily |