|
@@ -214,6 +214,7 @@ WIKI_CODE=
|
214
|
214
|
# Domain name for your blog
|
215
|
215
|
FULLBLOG_DOMAIN_NAME=
|
216
|
216
|
FULLBLOG_CODE=
|
|
217
|
+FULLBLOG_ONION_PORT=8086
|
217
|
218
|
FULLBLOG_REPO="https://github.com/danpros/htmly"
|
218
|
219
|
FULLBLOG_COMMIT='5f271a2370cc1bfde15f2a0d5ed6928cc74b0efa'
|
219
|
220
|
MY_BLOG_TITLE="My Blog"
|
|
@@ -7105,6 +7106,87 @@ function install_blog {
|
7105
|
7106
|
echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
7106
|
7107
|
echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
7107
|
7108
|
echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7109
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7110
|
+ echo 'server {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7111
|
+ echo " listen 127.0.0.1:${FULLBLOG_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7112
|
+ echo " root /var/www/$FULLBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7113
|
+ echo " server_name $FULLBLOG_DOMAIN_NAME;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7114
|
+ echo ' access_log off;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7115
|
+ echo " error_log /var/log/nginx/${FULLBLOG_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7116
|
+ echo ' index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7117
|
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7118
|
+ echo ' client_max_body_size 20m;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7119
|
+ echo ' client_body_buffer_size 128k;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7120
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7121
|
+ echo ' limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7122
|
+ echo ' limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7123
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7124
|
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7125
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7126
|
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7127
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7128
|
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7129
|
+ echo ' location / {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7130
|
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7131
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7132
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7133
|
+ echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7134
|
+ echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7135
|
+ echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7136
|
+ echo ' allow all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7137
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7138
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7139
|
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7140
|
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7141
|
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7142
|
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7143
|
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7144
|
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7145
|
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7146
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7147
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7148
|
+ echo ' # block these file types' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7149
|
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7150
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7151
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7152
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7153
|
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7154
|
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7155
|
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7156
|
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7157
|
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7158
|
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7159
|
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7160
|
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7161
|
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7162
|
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7163
|
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7164
|
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7165
|
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7166
|
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7167
|
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7168
|
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7169
|
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7170
|
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7171
|
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7172
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7173
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7174
|
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7175
|
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7176
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7177
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7178
|
+ echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7179
|
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7180
|
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7181
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7182
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7183
|
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7184
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7185
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7186
|
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7187
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7188
|
+ echo ' }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
|
7189
|
+ echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
|
7108
|
7190
|
|
7109
|
7191
|
if [ ! -f /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.dhparam ]; then
|
7110
|
7192
|
if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
|
|
@@ -7142,7 +7224,6 @@ function install_blog {
|
7142
|
7224
|
echo $"Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login" >> /home/$MY_USERNAME/README
|
7143
|
7225
|
echo $'Edit your blog title and time zone at:' >> /home/$MY_USERNAME/README
|
7144
|
7226
|
echo " /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini" >> /home/$MY_USERNAME/README
|
7145
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7146
|
7227
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
7147
|
7228
|
chmod 600 /home/$MY_USERNAME/README
|
7148
|
7229
|
fi
|
|
@@ -7155,8 +7236,34 @@ function install_blog {
|
7155
|
7236
|
echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
7156
|
7237
|
|
7157
|
7238
|
nginx_ensite $FULLBLOG_DOMAIN_NAME
|
7158
|
|
- service php5-fpm restart
|
7159
|
|
- service nginx restart
|
|
7239
|
+
|
|
7240
|
+ if [ ! -d /var/lib/tor ]; then
|
|
7241
|
+ echo $'No Tor installation found. Blog onion site cannot be configured.'
|
|
7242
|
+ exit 45926
|
|
7243
|
+ fi
|
|
7244
|
+ if ! grep -q "hidden_service_blog" /etc/tor/torrc; then
|
|
7245
|
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_blog/' >> /etc/tor/torrc
|
|
7246
|
+ echo "HiddenServicePort 80 127.0.0.1:${FULLBLOG_ONION_PORT}" >> /etc/tor/torrc
|
|
7247
|
+ echo $'Added onion site for blog'
|
|
7248
|
+ fi
|
|
7249
|
+
|
|
7250
|
+ systemctl restart php5-fpm
|
|
7251
|
+ systemctl restart nginx
|
|
7252
|
+ systemctl restart tor
|
|
7253
|
+
|
|
7254
|
+ if [ ! -f /var/lib/tor/hidden_service_blog/hostname ]; then
|
|
7255
|
+ echo $'Blog onion site hostname not found'
|
|
7256
|
+ exit 12053
|
|
7257
|
+ fi
|
|
7258
|
+ FULLBLOG_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_blog/hostname)
|
|
7259
|
+
|
|
7260
|
+ if ! grep -q "Blog onion domain" /home/$MY_USERNAME/README; then
|
|
7261
|
+ echo "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
|
7262
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
7263
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
7264
|
+ chmod 600 /home/$MY_USERNAME/README
|
|
7265
|
+ fi
|
|
7266
|
+ echo "Blog onion domain:${HUBZILLA_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
7160
|
7267
|
|
7161
|
7268
|
# update the dynamic DNS
|
7162
|
7269
|
CURRENT_DDNS_DOMAIN=$FULLBLOG_DOMAIN_NAME
|