Bob Mottram 8 лет назад
Родитель
Сommit
d4083fa2db
1 измененных файлов: 55 добавлений и 14 удалений
  1. 55
    14
      src/freedombone-app-matrix

+ 55
- 14
src/freedombone-app-matrix Просмотреть файл

@@ -48,9 +48,8 @@ MATRIX_CODE=
48 48
 MATRIX_DATA_DIR='/var/lib/matrix'
49 49
 MATRIX_HTTP_PORT=8448
50 50
 MATRIX_PORT=8008
51
-MATRIX_ID_PORT=8081
51
+MATRIX_FEDERATION_ONION_PORT=8111
52 52
 MATRIX_ONION_PORT=8109
53
-MATRIX_ID_ONION_PORT=8111
54 53
 MATRIX_REPO="https://github.com/matrix-org/synapse"
55 54
 MATRIX_COMMIT='c45dc6c62aa2a2e83a10d8116a709dfd8c144e3c'
56 55
 REPORT_STATS="no"
@@ -66,7 +65,7 @@ matrix_variables=(ONION_ONLY
66 65
 function matrix_nginx {
67 66
     matrix_nginx_site=/etc/nginx/sites-available/$MATRIX_DOMAIN_NAME
68 67
     if [[ $ONION_ONLY == "no" ]]; then
69
-        echo 'server {' >> $matrix_nginx_site
68
+        echo 'server {' > $matrix_nginx_site
70 69
         echo "  listen 0.0.0.0:443;" >> $matrix_nginx_site
71 70
         echo "  server_name ${MATRIX_DOMAIN_NAME};" >> $matrix_nginx_site
72 71
         echo '' >> $matrix_nginx_site
@@ -83,15 +82,15 @@ function matrix_nginx {
83 82
         echo '  access_log /dev/null;' >> $matrix_nginx_site
84 83
         echo '  error_log /dev/null;' >> $matrix_nginx_site
85 84
         echo '' >> $matrix_nginx_site
85
+        echo '  root /var/lib/matrix/media_store;' >> $matrix_nginx_site
86
+        echo '' >> $matrix_nginx_site
86 87
         echo '  # Index' >> $matrix_nginx_site
87 88
         echo '  index index.html;' >> $matrix_nginx_site
88 89
         echo '' >> $matrix_nginx_site
89
-        echo '  # Location' >> $matrix_nginx_site
90 90
         echo '  location /_matrix {' >> $matrix_nginx_site
91 91
         function_check nginx_limits
92 92
         nginx_limits ${MATRIX_DOMAIN_NAME} '15m'
93 93
         echo '    proxy_pass http://localhost:8008;' >> $matrix_nginx_site
94
-        echo '    proxy_set_header X-Forwarded-For $remote_addr;' >> $matrix_nginx_site
95 94
         echo '  }' >> $matrix_nginx_site
96 95
         echo '}' >> $matrix_nginx_site
97 96
         echo '' >> $matrix_nginx_site
@@ -112,6 +111,8 @@ function matrix_nginx {
112 111
         echo '  access_log /dev/null;' >> $matrix_nginx_site
113 112
         echo '  error_log /dev/null;' >> $matrix_nginx_site
114 113
         echo '' >> $matrix_nginx_site
114
+        echo '  root /var/lib/matrix/media_store;' >> $matrix_nginx_site
115
+        echo '' >> $matrix_nginx_site
115 116
         echo '  # Index' >> $matrix_nginx_site
116 117
         echo '  index index.html;' >> $matrix_nginx_site
117 118
         echo '' >> $matrix_nginx_site
@@ -120,7 +121,6 @@ function matrix_nginx {
120 121
         function_check nginx_limits
121 122
         nginx_limits ${MATRIX_DOMAIN_NAME} '15m'
122 123
         echo '    proxy_pass http://localhost:8008;' >> $matrix_nginx_site
123
-        echo '    proxy_set_header X-Forwarded-For $remote_addr;' >> $matrix_nginx_site
124 124
         echo '  }' >> $matrix_nginx_site
125 125
         echo '}' >> $matrix_nginx_site
126 126
         echo '' >> $matrix_nginx_site
@@ -128,6 +128,27 @@ function matrix_nginx {
128 128
         echo -n '' > $matrix_nginx_site
129 129
     fi
130 130
     echo 'server {' >> $matrix_nginx_site
131
+    echo "    listen 127.0.0.1:$MATRIX_FEDERATION_ONION_PORT default_server;" >> $matrix_nginx_site
132
+    echo "    server_name $MATRIX_DOMAIN_NAME;" >> $matrix_nginx_site
133
+    echo '' >> $matrix_nginx_site
134
+    function_check nginx_disable_sniffing
135
+    nginx_disable_sniffing $MATRIX_DOMAIN_NAME
136
+    echo '' >> $matrix_nginx_site
137
+    echo '  # Logs' >> $matrix_nginx_site
138
+    echo '  access_log /dev/null;' >> $matrix_nginx_site
139
+    echo '  error_log /dev/null;' >> $matrix_nginx_site
140
+    echo '' >> $matrix_nginx_site
141
+    echo '  root /var/lib/matrix/media_store;' >> $matrix_nginx_site
142
+    echo '' >> $matrix_nginx_site
143
+    echo '  # Location' >> $matrix_nginx_site
144
+    echo '  location /_matrix {' >> $matrix_nginx_site
145
+    function_check nginx_limits
146
+    nginx_limits ${MATRIX_DOMAIN_NAME} '15m'
147
+    echo '    proxy_pass http://localhost:8008;' >> $matrix_nginx_site
148
+    echo '  }' >> $matrix_nginx_site
149
+    echo '}' >> $matrix_nginx_site
150
+    echo '' >> $matrix_nginx_site
151
+    echo 'server {' >> $matrix_nginx_site
131 152
     echo "    listen 127.0.0.1:$MATRIX_ONION_PORT default_server;" >> $matrix_nginx_site
132 153
     echo "    server_name $MATRIX_DOMAIN_NAME;" >> $matrix_nginx_site
133 154
     echo '' >> $matrix_nginx_site
@@ -138,12 +159,13 @@ function matrix_nginx {
138 159
     echo '  access_log /dev/null;' >> $matrix_nginx_site
139 160
     echo '  error_log /dev/null;' >> $matrix_nginx_site
140 161
     echo '' >> $matrix_nginx_site
162
+    echo '  root /var/lib/matrix/media_store;' >> $matrix_nginx_site
163
+    echo '' >> $matrix_nginx_site
141 164
     echo '  # Location' >> $matrix_nginx_site
142
-    echo '  location / {' >> $matrix_nginx_site
165
+    echo '  location /_matrix {' >> $matrix_nginx_site
143 166
     function_check nginx_limits
144
-    nginx_limits $MATRIX_DOMAIN_NAME '15m'
145
-    echo "      proxy_pass http://localhost:${MATRIX_PORT}/_matrix;" >> $matrix_nginx_site
146
-    echo '      proxy_set_header X-Forwarded-For $remote_addr;' >> $matrix_nginx_site
167
+    nginx_limits ${MATRIX_DOMAIN_NAME} '15m'
168
+    echo '    proxy_pass http://localhost:8008;' >> $matrix_nginx_site
147 169
     echo '  }' >> $matrix_nginx_site
148 170
     echo '}' >> $matrix_nginx_site
149 171
 
@@ -154,8 +176,11 @@ function matrix_nginx {
154 176
     function_check add_ddns_domain
155 177
     add_ddns_domain $MATRIX_DOMAIN_NAME
156 178
 
157
-    function_check create_site_certificate
158
-    create_site_certificate $MATRIX_DOMAIN_NAME
179
+    if [[ $ONION_ONLY == "no" ]]; then
180
+        function_check create_site_certificate
181
+        create_site_certificate $MATRIX_DOMAIN_NAME
182
+        chmod 755 /etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam
183
+    fi
159 184
 
160 185
     systemctl restart nginx
161 186
     systemctl restart turn
@@ -200,6 +225,11 @@ function matrix_configure_homeserver_yaml {
200 225
 
201 226
     mv ${ymltemp} "${filepath}"
202 227
 
228
+    if [[ $ONION_ONLY == "no" ]]; then
229
+        sed -i "s|tls_certificate_path:.*|tls_certificate_path: \"/etc/ssl/certs/${MATRIX_DOMAIN_NAME}.pem\"|g" "${filepath}"
230
+        sed -i "s|tls_private_key_path:.*|tls_private_key_path: \"/etc/ssl/private/${MATRIX_DOMAIN_NAME}.key\"|g" "${filepath}"
231
+        sed -i "s|tls_dh_params_path:.*|tls_dh_params_path: \"/etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam\"|g" "${filepath}"
232
+    fi
203 233
     sed -i 's|8448|8449|g' "${filepath}"
204 234
     sed -i 's|tls:.*|tls: False|g' "${filepath}"
205 235
     sed -i 's|no_tls: .*|no_tls: True|g' "${filepath}"
@@ -323,6 +353,9 @@ function upgrade_matrix {
323 353
 
324 354
     pip install --upgrade --force "pynacl==0.3.0"
325 355
 
356
+    if [ -f /etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam ]; then
357
+        chmod 755 /etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam
358
+    fi
326 359
     systemctl start turn
327 360
     systemctl start matrix
328 361
 }
@@ -373,6 +406,12 @@ function restore_local_matrix {
373 406
         rm -rf $temp_restore_dir
374 407
         chown -R matrix:matrix $MATRIX_DATA_DIR
375 408
 
409
+        if [[ $ONION_ONLY == "no" ]]; then
410
+            if [ -f /etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam ]; then
411
+                chmod 755 /etc/ssl/certs/${MATRIX_DOMAIN_NAME}.dhparam
412
+            fi
413
+        fi
414
+
376 415
         systemctl start turn
377 416
         systemctl start matrix
378 417
     fi
@@ -456,7 +495,7 @@ function remove_matrix {
456 495
     deluser matrix
457 496
     delgroup matrix
458 497
     remove_onion_service matrix ${MATRIX_ONION_PORT}
459
-    remove_onion_service matrix ${MATRIX_ID_ONION_PORT}
498
+    remove_onion_service matrix ${MATRIX_FEDERATION_ONION_PORT}
460 499
 
461 500
     #sed -i "/# Matrix Server/,/# End of Matrix Server/d" /etc/nginx/sites-available/${MATRIX_DOMAIN_NAME}
462 501
     systemctl restart nginx
@@ -551,7 +590,9 @@ function install_home_server {
551 590
     chmod -R 700 $MATRIX_DATA_DIR/homeserver.db
552 591
 
553 592
     MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
554
-    MATRIX_ID_ONION_HOSTNAME=$(add_onion_service matrixid ${MATRIX_ID_PORT} ${MATRIX_ID_ONION_PORT})
593
+    echo "HiddenServicePort ${MATRIX_HTTP_PORT} 127.0.0.1:${MATRIX_FEDERATION_ONION_PORT}" >> /etc/tor/torrc
594
+    systemctl reload tor
595
+
555 596
     if [ ! ${MATRIX_PASSWORD} ]; then
556 597
         if [ -f ${IMAGE_PASSWORD_FILE} ]; then
557 598
             MATRIX_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"