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