|
@@ -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`)"
|