Pārlūkot izejas kodu

Move cryptpad out of the clearnet

Bob Mottram 8 gadus atpakaļ
vecāks
revīzija
43d0b6190a
2 mainītis faili ar 15 papildinājumiem un 207 dzēšanām
  1. 14
    203
      src/freedombone-app-cryptpad
  2. 1
    4
      src/freedombone-app-searx

+ 14
- 203
src/freedombone-app-cryptpad Parādīt failu

32
 
32
 
33
 IN_DEFAULT_INSTALL=0
33
 IN_DEFAULT_INSTALL=0
34
 SHOW_ON_ABOUT=1
34
 SHOW_ON_ABOUT=1
35
+SHOW_ICANN_ADDRESS_ON_ABOUT=0
35
 
36
 
36
-CRYPTPAD_DOMAIN_NAME=
37
-CRYPTPAD_CODE=
38
 CRYPTPAD_ONION_PORT=8119
37
 CRYPTPAD_ONION_PORT=8119
39
 CRYPTPAD_PORT=9003
38
 CRYPTPAD_PORT=9003
40
 CRYPTPAD_REPO="https://github.com/xwiki-labs/cryptpad"
39
 CRYPTPAD_REPO="https://github.com/xwiki-labs/cryptpad"
41
 CRYPTPAD_COMMIT='ed5b005216be9b9029c1ccd25a5fdc7908ed8730'
40
 CRYPTPAD_COMMIT='ed5b005216be9b9029c1ccd25a5fdc7908ed8730'
42
-CRYPTPAD_ADMIN_PASSWORD=
43
 CRYPTPAD_DIR=/etc/cryptpad
41
 CRYPTPAD_DIR=/etc/cryptpad
44
 
42
 
45
-cryptpad_variables=(ONION_ONLY
46
-                    CRYPTPAD_DOMAIN_NAME
47
-                    CRYPTPAD_CODE
48
-                    DDNS_PROVIDER
49
-                    MY_EMAIL_ADDRESS
50
-                    MY_USERNAME)
43
+cryptpad_variables=(ONION_ONLY)
51
 
44
 
52
 function remove_user_cryptpad {
45
 function remove_user_cryptpad {
53
     remove_username="$1"
46
     remove_username="$1"
54
-
55
-    ${PROJECT_NAME}-pass -u $remove_username --rmapp cryptpad
56
 }
47
 }
57
 
48
 
58
 function add_user_cryptpad {
49
 function add_user_cryptpad {
59
     new_username="$1"
50
     new_username="$1"
60
     new_user_password="$2"
51
     new_user_password="$2"
61
-
62
-    ${PROJECT_NAME}-pass -u $new_username -a cryptpad -p "$new_user_password"
63
     echo '0'
52
     echo '0'
64
 }
53
 }
65
 
54
 
66
 function install_interactive_cryptpad {
55
 function install_interactive_cryptpad {
67
-    if [ ! $ONION_ONLY ]; then
68
-        ONION_ONLY='no'
69
-    fi
70
-
71
-    if [[ $ONION_ONLY != "no" ]]; then
72
-        CRYPTPAD_DOMAIN_NAME='cryptpad.local'
73
-    else
74
-        CRYPTPAD_DETAILS_COMPLETE=
75
-        while [ ! $CRYPTPAD_DETAILS_COMPLETE ]
76
-        do
77
-            data=$(tempfile 2>/dev/null)
78
-            trap "rm -f $data" 0 1 2 5 15
79
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
80
-                dialog --backtitle $"Freedombone Configuration" \
81
-                       --title $"Cryptpad Configuration" \
82
-                       --form $"\nPlease enter your Cryptpad details. The background image URL can be left blank.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 3 \
83
-                       $"Domain:" 1 1 "$(grep 'CRYPTPAD_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
84
-                       $"Code:" 2 1 "$(grep 'CRYPTPAD_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 25 33 255 \
85
-                       2> $data
86
-            else
87
-                dialog --backtitle $"Freedombone Configuration" \
88
-                       --title $"Cryptpad Configuration" \
89
-                       --form $"\nPlease enter your Cryptpad details. The background image URL can be left blank.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 3 \
90
-                       $"Domain:" 1 1 "$(grep 'CRYPTPAD_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
91
-                       2> $data
92
-            fi
93
-            sel=$?
94
-            case $sel in
95
-                1) exit 1;;
96
-                255) exit 1;;
97
-            esac
98
-            CRYPTPAD_DOMAIN_NAME=$(cat $data | sed -n 1p)
99
-            if [ $CRYPTPAD_DOMAIN_NAME ]; then
100
-                if [[ $CRYPTPAD_DOMAIN_NAME == "$HUBZILLA_DOMAIN_NAME" ]]; then
101
-                    CRYPTPAD_DOMAIN_NAME=""
102
-                fi
103
-                TEST_DOMAIN_NAME=$CRYPTPAD_DOMAIN_NAME
104
-                validate_domain_name
105
-                if [[ $TEST_DOMAIN_NAME != $CRYPTPAD_DOMAIN_NAME ]]; then
106
-                    CRYPTPAD_DOMAIN_NAME=
107
-                    dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
108
-                else
109
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
110
-                        CRYPTPAD_CODE=$(cat $data | sed -n 2p)
111
-                        validate_freedns_code "$CRYPTPAD_CODE"
112
-                        if [ ! $VALID_CODE ]; then
113
-                            CRYPTPAD_DOMAIN_NAME=
114
-                        fi
115
-                    fi
116
-                fi
117
-            fi
118
-            if [ $CRYPTPAD_DOMAIN_NAME ]; then
119
-                CRYPTPAD_DETAILS_COMPLETE="yes"
120
-            fi
121
-        done
122
-
123
-        # save the results in the config file
124
-        write_config_param "CRYPTPAD_CODE" "$CRYPTPAD_CODE"
125
-    fi
126
-    write_config_param "CRYPTPAD_DOMAIN_NAME" "$CRYPTPAD_DOMAIN_NAME"
56
+    echo -n ''
127
     APP_INSTALLED=1
57
     APP_INSTALLED=1
128
 }
58
 }
129
 
59
 
130
 function change_password_cryptpad {
60
 function change_password_cryptpad {
131
     curr_username="$1"
61
     curr_username="$1"
132
     new_user_password="$2"
62
     new_user_password="$2"
133
-
134
-    read_config_param 'CRYPTPAD_DOMAIN_NAME'
135
-
136
-    ${PROJECT_NAME}-pass -u "$curr_username" -a cryptpad -p "$new_user_password"
137
 }
63
 }
138
 
64
 
139
 function reconfigure_cryptpad {
65
 function reconfigure_cryptpad {
143
 }
69
 }
144
 
70
 
145
 function upgrade_cryptpad {
71
 function upgrade_cryptpad {
146
-    if grep -q "cryptpad domain" $COMPLETION_FILE; then
147
-        CRYPTPAD_DOMAIN_NAME=$(get_completion_param "cryptpad domain")
148
-    fi
149
-
150
     CURR_CRYPTPAD_COMMIT=$(get_completion_param "cryptpad commit")
72
     CURR_CRYPTPAD_COMMIT=$(get_completion_param "cryptpad commit")
151
     if [[ "$CURR_CRYPTPAD_COMMIT" == "$CRYPTPAD_COMMIT" ]]; then
73
     if [[ "$CURR_CRYPTPAD_COMMIT" == "$CRYPTPAD_COMMIT" ]]; then
152
         return
74
         return
165
 
87
 
166
 
88
 
167
 function backup_local_cryptpad {
89
 function backup_local_cryptpad {
168
-    CRYPTPAD_DOMAIN_NAME='cryptpad'
169
-    if grep -q "cryptpad domain" $COMPLETION_FILE; then
170
-        CRYPTPAD_DOMAIN_NAME=$(get_completion_param "cryptpad domain")
171
-    fi
172
-
173
     source_directory=$CRYPTPAD_DIR/datastore
90
     source_directory=$CRYPTPAD_DIR/datastore
174
     if [ -d $source_directory ]; then
91
     if [ -d $source_directory ]; then
175
         systemctl stop cryptpad
92
         systemctl stop cryptpad
176
 
93
 
177
         dest_directory=cryptpad
94
         dest_directory=cryptpad
178
         function_check suspend_site
95
         function_check suspend_site
179
-        suspend_site ${CRYPTPAD_DOMAIN_NAME}
96
+        suspend_site cryptpad
180
 
97
 
181
         function_check backup_directory_to_usb
98
         function_check backup_directory_to_usb
182
         backup_directory_to_usb $source_directory $dest_directory
99
         backup_directory_to_usb $source_directory $dest_directory
201
 
118
 
202
 function backup_remote_cryptpad {
119
 function backup_remote_cryptpad {
203
     if grep -q "cryptpad domain" $COMPLETION_FILE; then
120
     if grep -q "cryptpad domain" $COMPLETION_FILE; then
204
-        CRYPTPAD_DOMAIN_NAME=$(get_completion_param "cryptpad domain")
205
         temp_backup_dir=$CRYPTPAD_DIR/datastore
121
         temp_backup_dir=$CRYPTPAD_DIR/datastore
206
         if [ -d $temp_backup_dir ]; then
122
         if [ -d $temp_backup_dir ]; then
207
             systemctl stop cryptpad
123
             systemctl stop cryptpad
208
 
124
 
209
             function_check suspend_site
125
             function_check suspend_site
210
-            suspend_site ${CRYPTPAD_DOMAIN_NAME}
126
+            suspend_site cryptpad
211
 
127
 
212
             echo $"Backing up Cryptpad installation"
128
             echo $"Backing up Cryptpad installation"
213
 
129
 
236
 }
152
 }
237
 
153
 
238
 function remove_cryptpad {
154
 function remove_cryptpad {
239
-    if [ ${#CRYPTPAD_DOMAIN_NAME} -eq 0 ]; then
240
-        return
241
-    fi
242
-
243
     systemctl stop cryptpad
155
     systemctl stop cryptpad
244
     systemctl disable cryptpad
156
     systemctl disable cryptpad
245
     if [ -f /etc/systemd/system/cryptpad.service ]; then
157
     if [ -f /etc/systemd/system/cryptpad.service ]; then
249
     function_check remove_nodejs
161
     function_check remove_nodejs
250
     remove_nodejs cryptpad
162
     remove_nodejs cryptpad
251
 
163
 
252
-    read_config_param "CRYPTPAD_DOMAIN_NAME"
253
-    read_config_param "MY_USERNAME"
254
-    echo "Removing $CRYPTPAD_DOMAIN_NAME"
255
-    nginx_dissite $CRYPTPAD_DOMAIN_NAME
256
-    remove_certs $CRYPTPAD_DOMAIN_NAME
164
+    nginx_dissite cryptpad
257
 
165
 
258
     if [ -d $CRYPTPAD_DIR ]; then
166
     if [ -d $CRYPTPAD_DIR ]; then
259
         rm -rf $CRYPTPAD_DIR
167
         rm -rf $CRYPTPAD_DIR
260
     fi
168
     fi
261
-    if [ -f /etc/nginx/sites-available/$CRYPTPAD_DOMAIN_NAME ]; then
262
-        rm /etc/nginx/sites-available/$CRYPTPAD_DOMAIN_NAME
169
+    if [ -f /etc/nginx/sites-available/cryptpad ]; then
170
+        rm /etc/nginx/sites-available/cryptpad
263
     fi
171
     fi
264
     function_check remove_onion_service
172
     function_check remove_onion_service
265
     remove_onion_service cryptpad ${CRYPTPAD_ONION_PORT}
173
     remove_onion_service cryptpad ${CRYPTPAD_ONION_PORT}
268
     sed -i '/cryptpad/d' $COMPLETION_FILE
176
     sed -i '/cryptpad/d' $COMPLETION_FILE
269
 
177
 
270
     userdel -r cryptpad
178
     userdel -r cryptpad
271
-
272
-    function_check remove_ddns_domain
273
-    remove_ddns_domain $CRYPTPAD_DOMAIN_NAME
274
 }
179
 }
275
 
180
 
276
 function install_cryptpad_main {
181
 function install_cryptpad_main {
277
-    if [ ! $CRYPTPAD_DOMAIN_NAME ]; then
278
-        echo $'No domain name was given for cryptpad'
279
-        exit 7359
280
-    fi
281
-
282
     if [[ $(app_is_installed cryptpad_main) == "1" ]]; then
182
     if [[ $(app_is_installed cryptpad_main) == "1" ]]; then
283
         return
183
         return
284
     fi
184
     fi
285
 
185
 
286
-    if [ ! -d /var/www/$CRYPTPAD_DOMAIN_NAME ]; then
287
-        mkdir /var/www/$CRYPTPAD_DOMAIN_NAME
186
+    if [ ! -d /var/www/cryptpad ]; then
187
+        mkdir /var/www/cryptpad
288
     fi
188
     fi
289
     if [ -d $CRYPTPAD_DIR ]; then
189
     if [ -d $CRYPTPAD_DIR ]; then
290
         rm -rf $CRYPTPAD_DIR
190
         rm -rf $CRYPTPAD_DIR
311
 
211
 
312
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
212
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
313
 
213
 
314
-    function_check add_ddns_domain
315
-    add_ddns_domain $CRYPTPAD_DOMAIN_NAME
316
-
317
     CRYPTPAD_ONION_HOSTNAME=$(add_onion_service cryptpad 80 ${CRYPTPAD_ONION_PORT})
214
     CRYPTPAD_ONION_HOSTNAME=$(add_onion_service cryptpad 80 ${CRYPTPAD_ONION_PORT})
318
 
215
 
319
-    cryptpad_nginx_site=/etc/nginx/sites-available/$CRYPTPAD_DOMAIN_NAME
320
-    if [[ $ONION_ONLY == "no" ]]; then
321
-        function_check nginx_http_redirect
322
-        nginx_http_redirect $CRYPTPAD_DOMAIN_NAME "index index.html"
323
-        echo 'server {' >> $cryptpad_nginx_site
324
-        echo '  listen 443 ssl;' >> $cryptpad_nginx_site
325
-        echo '  listen [::]:443 ssl;' >> $cryptpad_nginx_site
326
-        echo "  server_name $CRYPTPAD_DOMAIN_NAME;" >> $cryptpad_nginx_site
327
-        echo '' >> $cryptpad_nginx_site
328
-        echo '  # Security' >> $cryptpad_nginx_site
329
-        function_check nginx_ssl mobile
330
-        nginx_ssl $CRYPTPAD_DOMAIN_NAME
331
-
332
-        function_check nginx_disable_sniffing
333
-        nginx_disable_sniffing $CRYPTPAD_DOMAIN_NAME
334
-
335
-        echo '  add_header Strict-Transport-Security max-age=15768000;' >> $cryptpad_nginx_site
336
-        echo '' >> $cryptpad_nginx_site
337
-        echo '  if ($uri = /pad/inner.html) {' >> $cryptpad_nginx_site
338
-        echo "    set \$scriptSrc \"'self' 'unsafe-eval' 'unsafe-inline'\";" >> $cryptpad_nginx_site
339
-        echo '  }' >> $cryptpad_nginx_site
340
-        echo '' >> $cryptpad_nginx_site
341
-        echo '  # Logs' >> $cryptpad_nginx_site
342
-        echo '  access_log /dev/null;' >> $cryptpad_nginx_site
343
-        echo '  error_log /dev/null;' >> $cryptpad_nginx_site
344
-        echo '' >> $cryptpad_nginx_site
345
-        echo '  # Root' >> $cryptpad_nginx_site
346
-        echo "  root $CRYPTPAD_DIR;" >> $cryptpad_nginx_site
347
-        echo '' >> $cryptpad_nginx_site
348
-        echo '  index index.html;' >> $cryptpad_nginx_site
349
-        echo '' >> $cryptpad_nginx_site
350
-        echo '  location = /cryptpad_websocket {' >> $cryptpad_nginx_site
351
-        echo "    proxy_pass http://localhost:$CRYPTPAD_PORT;" >> $cryptpad_nginx_site
352
-        echo '    proxy_set_header X-Real-IP $remote_addr;' >> $cryptpad_nginx_site
353
-        echo '    proxy_set_header Host $host;' >> $cryptpad_nginx_site
354
-        echo '    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' >> $cryptpad_nginx_site
355
-        echo '' >> $cryptpad_nginx_site
356
-        echo '    # WebSocket support (nginx 1.4)' >> $cryptpad_nginx_site
357
-        echo '    proxy_http_version 1.1;' >> $cryptpad_nginx_site
358
-        echo '    proxy_set_header Upgrade $http_upgrade;' >> $cryptpad_nginx_site
359
-        echo '    proxy_set_header Connection upgrade;' >> $cryptpad_nginx_site
360
-        echo '  }' >> $cryptpad_nginx_site
361
-        echo '' >> $cryptpad_nginx_site
362
-
363
-        echo '  location ^~ /customize.dist/ {' >> $cryptpad_nginx_site
364
-        echo '    # This is needed in order to prevent infinite recursion between /customize/ and the root' >> $cryptpad_nginx_site
365
-        echo '  }' >> $cryptpad_nginx_site
366
-        echo '  location ^~ /customize/ {' >> $cryptpad_nginx_site
367
-        echo '    rewrite ^/customize/(.*)$ $1 break;' >> $cryptpad_nginx_site
368
-        echo '    try_files /customize/$uri /customize.dist/$uri;' >> $cryptpad_nginx_site
369
-        echo '  }' >> $cryptpad_nginx_site
370
-        echo '  location = /api/config {' >> $cryptpad_nginx_site
371
-        echo '    default_type text/javascript;' >> $cryptpad_nginx_site
372
-        echo '    rewrite ^.*$ /customize/api/config break;' >> $cryptpad_nginx_site
373
-        echo '  }' >> $cryptpad_nginx_site
374
-        echo '' >> $cryptpad_nginx_site
375
-        echo '  location ^~ /blob/ {' >> $cryptpad_nginx_site
376
-        echo '    try_files $uri =404;' >> $cryptpad_nginx_site
377
-        echo '  }' >> $cryptpad_nginx_site
378
-        echo '' >> $cryptpad_nginx_site
379
-        echo '  location ^~ /register/ {' >> $cryptpad_nginx_site
380
-        echo '    try_files $uri =404;' >> $cryptpad_nginx_site
381
-        echo '  }' >> $cryptpad_nginx_site
382
-        echo '' >> $cryptpad_nginx_site
383
-        echo '  location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media)$ {' >> $cryptpad_nginx_site
384
-        echo '    rewrite ^(.*)$ $1/ redirect;' >> $cryptpad_nginx_site
385
-        echo '  }' >> $cryptpad_nginx_site
386
-        echo '' >> $cryptpad_nginx_site
387
-        echo '  try_files /www/$uri /www/$uri/index.html /customize/$uri;' >> $cryptpad_nginx_site
388
-        echo '}' >> $cryptpad_nginx_site
389
-    else
390
-        echo -n '' > $cryptpad_nginx_site
391
-    fi
392
-    echo 'server {' >> $cryptpad_nginx_site
216
+    cryptpad_nginx_site=/etc/nginx/sites-available/cryptpad
217
+    echo 'server {' > $cryptpad_nginx_site
393
     echo "  listen 127.0.0.1:$CRYPTPAD_ONION_PORT default_server;" >> $cryptpad_nginx_site
218
     echo "  listen 127.0.0.1:$CRYPTPAD_ONION_PORT default_server;" >> $cryptpad_nginx_site
394
     echo "  server_name $CRYPTPAD_ONION_HOSTNAME;" >> $cryptpad_nginx_site
219
     echo "  server_name $CRYPTPAD_ONION_HOSTNAME;" >> $cryptpad_nginx_site
395
     echo '' >> $cryptpad_nginx_site
220
     echo '' >> $cryptpad_nginx_site
450
     echo '  try_files /www/$uri /www/$uri/index.html /customize/$uri;' >> $cryptpad_nginx_site
275
     echo '  try_files /www/$uri /www/$uri/index.html /customize/$uri;' >> $cryptpad_nginx_site
451
     echo '}' >> $cryptpad_nginx_site
276
     echo '}' >> $cryptpad_nginx_site
452
 
277
 
453
-    sed -i 's|DENY;|SAMEORIGIN;|g' $cryptpad_nginx_site
454
-    sed -i "/Content-Security-Policy/d" $cryptpad_nginx_site
455
-
456
-    function_check create_site_certificate
457
-    create_site_certificate $CRYPTPAD_DOMAIN_NAME 'yes'
458
-
459
     function_check nginx_ensite
278
     function_check nginx_ensite
460
-    nginx_ensite $CRYPTPAD_DOMAIN_NAME
461
-
462
-    ${PROJECT_NAME}-pass -u $MY_USERNAME -a cryptpad -p "$CRYPTPAD_ADMIN_PASSWORD"
463
-
464
-    set_completion_param "cryptpad domain" "$CRYPTPAD_DOMAIN_NAME"
279
+    nginx_ensite cryptpad
465
 
280
 
466
     install_completed cryptpad_main
281
     install_completed cryptpad_main
467
 }
282
 }
490
     sed -i "s|httpPort:.*|httpPort: $CRYPTPAD_PORT,|g" config.js
305
     sed -i "s|httpPort:.*|httpPort: $CRYPTPAD_PORT,|g" config.js
491
     sed -i "s|// domain:|domain:|g" config.js
306
     sed -i "s|// domain:|domain:|g" config.js
492
     sed -i 's|openFileLimit:.*|openFileLimit: 1024,|g' config.js
307
     sed -i 's|openFileLimit:.*|openFileLimit: 1024,|g' config.js
493
-    if [[ $ONION_ONLY == 'no' ]]; then
494
-        sed -i "s|domain:.*|domain: 'https://$CRYPTPAD_DOMAIN_NAME',|g" config.js
495
-    else
496
-        sed -i "s|domain:.*|domain: 'http://$CRYPTPAD_ONION_HOSTNAME',|g" config.js
497
-    fi
308
+    sed -i "s|domain:.*|domain: 'http://$CRYPTPAD_ONION_HOSTNAME',|g" config.js
498
 
309
 
499
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
310
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
500
 
311
 

+ 1
- 4
src/freedombone-app-searx Parādīt failu

43
 SEARX_PASSWORD=
43
 SEARX_PASSWORD=
44
 SEARX_BACKGROUND_IMAGE_URL=
44
 SEARX_BACKGROUND_IMAGE_URL=
45
 
45
 
46
-searx_variables=(SEARX_REPO
47
-                 SEARX_COMMIT
48
-                 SEARX_PATH
49
-                 SEARX_LOGIN_TEXT
46
+searx_variables=(SEARX_LOGIN_TEXT
50
                  MY_USERNAME
47
                  MY_USERNAME
51
                  SEARX_BACKGROUND_IMAGE_URL
48
                  SEARX_BACKGROUND_IMAGE_URL
52
                  SYSTEM_TYPE)
49
                  SYSTEM_TYPE)