浏览代码

Onion site for gogs

Bob Mottram 9 年前
父节点
当前提交
4853e5e2f2
共有 1 个文件被更改,包括 59 次插入0 次删除
  1. 59
    0
      src/freedombone

+ 59
- 0
src/freedombone 查看文件

@@ -195,6 +195,7 @@ HUBZILLA_COMMIT='6613275cc2f4103a17cc2bfe513dc20573df5aab'
195 195
 # Domain name for git hosting installation
196 196
 GIT_DOMAIN_NAME=
197 197
 GIT_CODE=
198
+GIT_ONION_PORT=8090
198 199
 GIT_DOMAIN_REPO="https://github.com/gogits/gogs.git"
199 200
 GIT_ADMIN_PASSWORD=
200 201
 GOGS_COMMIT='efea642d6cf419c9587d44b95ff2bc04e89f7bfe'
@@ -6178,6 +6179,38 @@ quit" > $INSTALL_DIR/batch.sql
6178 6179
   echo '        access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6179 6180
   echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6180 6181
   echo '}' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6182
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6183
+  echo 'server {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6184
+  echo "    listen 127.0.0.1:${GIT_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6185
+  echo "    root /var/www/$GIT_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6186
+  echo "    server_name $GIT_DOMAIN_NAME;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6187
+  echo '    access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6188
+  echo "    error_log /var/log/nginx/${GIT_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6189
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6190
+  echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6191
+  echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6192
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6193
+  echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6194
+  echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6195
+  echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6196
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6197
+  echo '    location / {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6198
+  echo '        proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6199
+  echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6200
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6201
+  echo '    client_max_body_size 10G; # set max upload size' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6202
+  echo '    client_body_buffer_size 128k;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6203
+  echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6204
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6205
+  echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6206
+  echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6207
+  echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6208
+  echo '    location = /robots.txt {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6209
+  echo '        allow all;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6210
+  echo '        log_not_found off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6211
+  echo '        access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6212
+  echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6213
+  echo '}' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6181 6214
 
6182 6215
   configure_php
6183 6216
 
@@ -6191,8 +6224,34 @@ quit" > $INSTALL_DIR/batch.sql
6191 6224
   fi
6192 6225
 
6193 6226
   nginx_ensite $GIT_DOMAIN_NAME
6227
+
6228
+  if [ ! -d /var/lib/tor ]; then
6229
+      echo $'No Tor installation found. Gogs onion site cannot be configured.'
6230
+      exit 83547
6231
+  fi
6232
+  if ! grep -q "hidden_service_gogs" /etc/tor/torrc; then
6233
+      echo 'HiddenServiceDir /var/lib/tor/hidden_service_gogs/' >> /etc/tor/torrc
6234
+      echo "HiddenServicePort 80 127.0.0.1:${GIT_ONION_PORT}" >> /etc/tor/torrc
6235
+      echo $'Added onion site for Gogs'
6236
+  fi
6237
+
6194 6238
   service php5-fpm restart
6195 6239
   service nginx restart
6240
+  systemctl restart tor
6241
+
6242
+  if [ ! -f /var/lib/tor/hidden_service_gogs/hostname ]; then
6243
+      echo $'Gogs onion site hostname not found'
6244
+      exit 53935
6245
+  fi
6246
+  GIT_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_gogs/hostname)
6247
+
6248
+  if ! grep -q "Gogs onion domain" /home/$MY_USERNAME/README; then
6249
+      echo "Gogs onion domain: ${GIT_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
6250
+      echo '' >> /home/$MY_USERNAME/README
6251
+      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
6252
+      chmod 600 /home/$MY_USERNAME/README
6253
+  fi
6254
+  echo "Gogs onion domain:${GIT_ONION_HOSTNAME}" >> $COMPLETION_FILE
6196 6255
 
6197 6256
   # update the dynamic DNS
6198 6257
   CURRENT_DDNS_DOMAIN=$GIT_DOMAIN_NAME