From 0cbbeec0fb1b4833d44de5116f51459b5d36cabd Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 29 Dec 2015 16:24:44 +0000 Subject: [PATCH] Oniion site for gnusocial --- src/freedombone | 73 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/freedombone b/src/freedombone index 57b88647..354c40f9 100755 --- a/src/freedombone +++ b/src/freedombone @@ -178,6 +178,7 @@ MEDIAGOBLIN_ADMIN_PASSWORD= # Domain name for microblog installation MICROBLOG_DOMAIN_NAME= MICROBLOG_CODE= +MICROBLOG_ONION_PORT=8087 MICROBLOG_REPO="git://gitorious.org/social/mainline.git" MICROBLOG_ADMIN_PASSWORD= GNUSOCIAL_COMMIT='5b847eff120264c3e9571e8a939e6b3a30e68032' @@ -7263,7 +7264,7 @@ function install_blog { chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README chmod 600 /home/$MY_USERNAME/README fi - echo "Blog onion domain:${HUBZILLA_ONION_HOSTNAME}" >> $COMPLETION_FILE + echo "Blog onion domain:${FULLBLOG_ONION_HOSTNAME}" >> $COMPLETION_FILE # update the dynamic DNS CURRENT_DDNS_DOMAIN=$FULLBLOG_DOMAIN_NAME @@ -7303,7 +7304,6 @@ function install_gnu_social { return fi - install_mariadb get_mariadb_password repair_databases_script @@ -7444,6 +7444,49 @@ quit" > $INSTALL_DIR/batch.sql echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME echo " error_log /var/log/nginx/${MICROBLOG_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME echo '}' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo 'server {' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo " listen 127.0.0.1:${MICROBLOG_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo " server_name $MICROBLOG_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo " root /var/www/$MICROBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' index index.php index.html index.htm;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' access_log off;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' fastcgi_read_timeout 300;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' }' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' location / {' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' break;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' }' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' location ~* ^/(.*)\.(ico|css|js|gif|png|jpg|bmp|JPG|jpeg)$ {' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo " root /var/www/$MICROBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' rewrite ^/(.*)$ /$1 break;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' access_log off;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' expires max;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' }' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo ' client_max_body_size 15m;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo " error_log /var/log/nginx/${MICROBLOG_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME + echo '}' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME configure_php @@ -7504,8 +7547,34 @@ quit" > $INSTALL_DIR/batch.sql echo "${PROJECT_NAME}-repair-database gnusocial" >> /etc/cron.hourly/repair fi nginx_ensite $MICROBLOG_DOMAIN_NAME + + if [ ! -d /var/lib/tor ]; then + echo $'No Tor installation found. GNU Social onion site cannot be configured.' + exit 45927 + fi + if ! grep -q "hidden_service_microblog" /etc/tor/torrc; then + echo 'HiddenServiceDir /var/lib/tor/hidden_service_microblog/' >> /etc/tor/torrc + echo "HiddenServicePort 80 127.0.0.1:${MICROBLOG_ONION_PORT}" >> /etc/tor/torrc + echo $'Added onion site for GNU Social' + fi + service php5-fpm restart service nginx restart + systemctl restart tor + + if [ ! -f /var/lib/tor/hidden_service_microblog/hostname ]; then + echo $'GNU Social onion site hostname not found' + exit 12054 + fi + MICROBLOG_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_microblog/hostname) + + if ! grep -q "GNU Social onion domain" /home/$MY_USERNAME/README; then + echo "GNU Social onion domain: ${MICROBLOG_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README + echo '' >> /home/$MY_USERNAME/README + chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README + chmod 600 /home/$MY_USERNAME/README + fi + echo "GNU Social onion domain:${MICROBLOG_ONION_HOSTNAME}" >> $COMPLETION_FILE # some post-install instructions for the user if ! grep -q $"To set up your microblog go to" /home/$MY_USERNAME/README; then