|
@@ -185,6 +185,7 @@ GNUSOCIAL_COMMIT='5b847eff120264c3e9571e8a939e6b3a30e68032'
|
185
|
185
|
# Domain name for hubzilla installation
|
186
|
186
|
HUBZILLA_DOMAIN_NAME=
|
187
|
187
|
HUBZILLA_CODE=
|
|
188
|
+HUBZILLA_ONION_PORT=8085
|
188
|
189
|
HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
|
189
|
190
|
HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
|
190
|
191
|
HUBZILLA_ADMIN_PASSWORD=
|
|
@@ -3178,6 +3179,13 @@ function initial_setup {
|
3178
|
3179
|
echo 'initial_setup' >> $COMPLETION_FILE
|
3179
|
3180
|
}
|
3180
|
3181
|
|
|
3182
|
+function install_tor {
|
|
3183
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
3184
|
+ return
|
|
3185
|
+ fi
|
|
3186
|
+ apt-get install tor
|
|
3187
|
+}
|
|
3188
|
+
|
3181
|
3189
|
function install_editor {
|
3182
|
3190
|
if grep -Fxq "install_editor" $COMPLETION_FILE; then
|
3183
|
3191
|
return
|
|
@@ -7512,7 +7520,6 @@ function install_hubzilla {
|
7512
|
7520
|
echo 'Hubzilla' >> /home/$MY_USERNAME/README
|
7513
|
7521
|
echo '==========' >> /home/$MY_USERNAME/README
|
7514
|
7522
|
echo $"Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
|
7515
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7516
|
7523
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
7517
|
7524
|
chmod 600 /home/$MY_USERNAME/README
|
7518
|
7525
|
fi
|
|
@@ -7631,6 +7638,82 @@ quit" > $INSTALL_DIR/batch.sql
|
7631
|
7638
|
echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
7632
|
7639
|
echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
7633
|
7640
|
echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7641
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7642
|
+ echo 'server {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7643
|
+ echo " listen 127.0.0.1:${HUBZILLA_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7644
|
+ echo " root /var/www/$HUBZILLA_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7645
|
+ echo " server_name $HUBZILLA_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7646
|
+ echo " error_log /var/log/nginx/${HUBZILLA_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7647
|
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7648
|
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7649
|
+ echo ' client_max_body_size 20m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7650
|
+ echo ' client_body_buffer_size 128k;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7651
|
+ echo ' access_log off;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7652
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7653
|
+ echo ' limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7654
|
+ echo ' limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7655
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7656
|
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7657
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7658
|
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7659
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7660
|
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7661
|
+ echo ' location / {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7662
|
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7663
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7664
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7665
|
+ echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7666
|
+ echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7667
|
+ echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7668
|
+ echo ' allow all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7669
|
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7670
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7671
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7672
|
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7673
|
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7674
|
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7675
|
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7676
|
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7677
|
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7678
|
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7679
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7680
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7681
|
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7682
|
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7683
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7684
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7685
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7686
|
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7687
|
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7688
|
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7689
|
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7690
|
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7691
|
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7692
|
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7693
|
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7694
|
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7695
|
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7696
|
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7697
|
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7698
|
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7699
|
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7700
|
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7701
|
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7702
|
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7703
|
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7704
|
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7705
|
+ echo ' fastcgi_read_timeout 300;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7706
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7707
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7708
|
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7709
|
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7710
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7711
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7712
|
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7713
|
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7714
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7715
|
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
|
7716
|
+ echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
|
7634
|
7717
|
|
7635
|
7718
|
configure_php
|
7636
|
7719
|
|
|
@@ -7713,31 +7796,37 @@ quit" > $INSTALL_DIR/batch.sql
|
7713
|
7796
|
chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs
|
7714
|
7797
|
|
7715
|
7798
|
nginx_ensite $HUBZILLA_DOMAIN_NAME
|
|
7799
|
+
|
|
7800
|
+ if [ ! -d /var/lib/tor ]; then
|
|
7801
|
+ echo $'No Tor installation found. Hubzilla onion site cannot be configured.'
|
|
7802
|
+ exit 45925
|
|
7803
|
+ fi
|
|
7804
|
+ if ! grep -q "hidden_service_hubzilla" /etc/tor/torrc; then
|
|
7805
|
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_hubzilla/' >> /etc/tor/torrc
|
|
7806
|
+ echo "HiddenServicePort 80 127.0.0.1:${HUBZILLA_ONION_PORT}" >> /etc/tor/torrc
|
|
7807
|
+ echo $'Added onion site for Hubzilla'
|
|
7808
|
+ fi
|
|
7809
|
+
|
7716
|
7810
|
service php5-fpm restart
|
7717
|
7811
|
service nginx restart
|
7718
|
7812
|
service cron restart
|
|
7813
|
+ systemctl restart tor
|
7719
|
7814
|
|
7720
|
|
- # some post-install instructions for the user
|
7721
|
|
- if ! grep -q $"To set up your Hubzilla site go to" /home/$MY_USERNAME/README; then
|
7722
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7723
|
|
- echo $"To set up your Hubzilla site go to" >> /home/$MY_USERNAME/README
|
7724
|
|
- echo "https://$HUBZILLA_DOMAIN_NAME" >> /home/$MY_USERNAME/README
|
7725
|
|
- echo $'You will need to have a non self-signed SSL certificate in order' >> /home/$MY_USERNAME/README
|
7726
|
|
- echo $"to use Hubzilla. Put the public certificate in /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.crt" >> /home/$MY_USERNAME/README
|
7727
|
|
- echo $"and the private certificate in /etc/ssl/private/$HUBZILLA_DOMAIN_NAME.key." >> /home/$MY_USERNAME/README
|
7728
|
|
- echo $'If there is an intermediate certificate needed (such as with StartSSL) then' >> /home/$MY_USERNAME/README
|
7729
|
|
- echo $'this will need to be concatenated onto the end of the crt file, like this:' >> /home/$MY_USERNAME/README
|
7730
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7731
|
|
- echo " cat /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.crt /etc/ssl/chains/startssl-sub.class1.server.ca.pem > /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt" >> /home/$MY_USERNAME/README
|
7732
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7733
|
|
- echo $"Then change ssl_certificate to /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt" >> /home/$MY_USERNAME/README
|
7734
|
|
- echo $"within /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME" >> /home/$MY_USERNAME/README
|
|
7815
|
+ if [ ! -f /var/lib/tor/hidden_service_hubzilla/hostname ]; then
|
|
7816
|
+ echo $'Hubzilla onion site hostname not found'
|
|
7817
|
+ exit 12052
|
|
7818
|
+ fi
|
|
7819
|
+ HUBZILLA_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_hubzilla/hostname)
|
|
7820
|
+
|
|
7821
|
+ if ! grep -q "Hubzilla onion domain" /home/$MY_USERNAME/README; then
|
|
7822
|
+ echo "Hubzilla onion domain: ${HUBZILLA_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
7735
|
7823
|
echo '' >> /home/$MY_USERNAME/README
|
7736
|
7824
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
7737
|
7825
|
chmod 600 /home/$MY_USERNAME/README
|
7738
|
7826
|
fi
|
7739
|
7827
|
|
7740
|
|
- echo "Hubzilla domain:$HUBZILLA_DOMAIN_NAME" >> $COMPLETION_FILE
|
|
7828
|
+ echo "Hubzilla domain:${HUBZILLA_DOMAIN_NAME}" >> $COMPLETION_FILE
|
|
7829
|
+ echo "Hubzilla onion domain:${HUBZILLA_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
7741
|
7830
|
echo 'install_hubzilla' >> $COMPLETION_FILE
|
7742
|
7831
|
}
|
7743
|
7832
|
|
|
@@ -8710,6 +8799,7 @@ change_debian_repos
|
8710
|
8799
|
enable_backports
|
8711
|
8800
|
configure_dns
|
8712
|
8801
|
initial_setup
|
|
8802
|
+install_tor
|
8713
|
8803
|
check_date
|
8714
|
8804
|
install_dynamicdns
|
8715
|
8805
|
randomize_cron
|