Browse Source

Move cryptpad out of the clearnet

Bob Mottram 7 years ago
parent
commit
43d0b6190a
2 changed files with 15 additions and 207 deletions
  1. 14
    203
      src/freedombone-app-cryptpad
  2. 1
    4
      src/freedombone-app-searx

+ 14
- 203
src/freedombone-app-cryptpad View File

@@ -32,108 +32,34 @@ VARIANTS='full full-vim writer'
32 32
 
33 33
 IN_DEFAULT_INSTALL=0
34 34
 SHOW_ON_ABOUT=1
35
+SHOW_ICANN_ADDRESS_ON_ABOUT=0
35 36
 
36
-CRYPTPAD_DOMAIN_NAME=
37
-CRYPTPAD_CODE=
38 37
 CRYPTPAD_ONION_PORT=8119
39 38
 CRYPTPAD_PORT=9003
40 39
 CRYPTPAD_REPO="https://github.com/xwiki-labs/cryptpad"
41 40
 CRYPTPAD_COMMIT='ed5b005216be9b9029c1ccd25a5fdc7908ed8730'
42
-CRYPTPAD_ADMIN_PASSWORD=
43 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 45
 function remove_user_cryptpad {
53 46
     remove_username="$1"
54
-
55
-    ${PROJECT_NAME}-pass -u $remove_username --rmapp cryptpad
56 47
 }
57 48
 
58 49
 function add_user_cryptpad {
59 50
     new_username="$1"
60 51
     new_user_password="$2"
61
-
62
-    ${PROJECT_NAME}-pass -u $new_username -a cryptpad -p "$new_user_password"
63 52
     echo '0'
64 53
 }
65 54
 
66 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 57
     APP_INSTALLED=1
128 58
 }
129 59
 
130 60
 function change_password_cryptpad {
131 61
     curr_username="$1"
132 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 65
 function reconfigure_cryptpad {
@@ -143,10 +69,6 @@ function reconfigure_cryptpad {
143 69
 }
144 70
 
145 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 72
     CURR_CRYPTPAD_COMMIT=$(get_completion_param "cryptpad commit")
151 73
     if [[ "$CURR_CRYPTPAD_COMMIT" == "$CRYPTPAD_COMMIT" ]]; then
152 74
         return
@@ -165,18 +87,13 @@ function upgrade_cryptpad {
165 87
 
166 88
 
167 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 90
     source_directory=$CRYPTPAD_DIR/datastore
174 91
     if [ -d $source_directory ]; then
175 92
         systemctl stop cryptpad
176 93
 
177 94
         dest_directory=cryptpad
178 95
         function_check suspend_site
179
-        suspend_site ${CRYPTPAD_DOMAIN_NAME}
96
+        suspend_site cryptpad
180 97
 
181 98
         function_check backup_directory_to_usb
182 99
         backup_directory_to_usb $source_directory $dest_directory
@@ -201,13 +118,12 @@ function restore_local_cryptpad {
201 118
 
202 119
 function backup_remote_cryptpad {
203 120
     if grep -q "cryptpad domain" $COMPLETION_FILE; then
204
-        CRYPTPAD_DOMAIN_NAME=$(get_completion_param "cryptpad domain")
205 121
         temp_backup_dir=$CRYPTPAD_DIR/datastore
206 122
         if [ -d $temp_backup_dir ]; then
207 123
             systemctl stop cryptpad
208 124
 
209 125
             function_check suspend_site
210
-            suspend_site ${CRYPTPAD_DOMAIN_NAME}
126
+            suspend_site cryptpad
211 127
 
212 128
             echo $"Backing up Cryptpad installation"
213 129
 
@@ -236,10 +152,6 @@ function restore_remote_cryptpad {
236 152
 }
237 153
 
238 154
 function remove_cryptpad {
239
-    if [ ${#CRYPTPAD_DOMAIN_NAME} -eq 0 ]; then
240
-        return
241
-    fi
242
-
243 155
     systemctl stop cryptpad
244 156
     systemctl disable cryptpad
245 157
     if [ -f /etc/systemd/system/cryptpad.service ]; then
@@ -249,17 +161,13 @@ function remove_cryptpad {
249 161
     function_check remove_nodejs
250 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 166
     if [ -d $CRYPTPAD_DIR ]; then
259 167
         rm -rf $CRYPTPAD_DIR
260 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 171
     fi
264 172
     function_check remove_onion_service
265 173
     remove_onion_service cryptpad ${CRYPTPAD_ONION_PORT}
@@ -268,23 +176,15 @@ function remove_cryptpad {
268 176
     sed -i '/cryptpad/d' $COMPLETION_FILE
269 177
 
270 178
     userdel -r cryptpad
271
-
272
-    function_check remove_ddns_domain
273
-    remove_ddns_domain $CRYPTPAD_DOMAIN_NAME
274 179
 }
275 180
 
276 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 182
     if [[ $(app_is_installed cryptpad_main) == "1" ]]; then
283 183
         return
284 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 188
     fi
289 189
     if [ -d $CRYPTPAD_DIR ]; then
290 190
         rm -rf $CRYPTPAD_DIR
@@ -311,85 +211,10 @@ function install_cryptpad_main {
311 211
 
312 212
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
313 213
 
314
-    function_check add_ddns_domain
315
-    add_ddns_domain $CRYPTPAD_DOMAIN_NAME
316
-
317 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 218
     echo "  listen 127.0.0.1:$CRYPTPAD_ONION_PORT default_server;" >> $cryptpad_nginx_site
394 219
     echo "  server_name $CRYPTPAD_ONION_HOSTNAME;" >> $cryptpad_nginx_site
395 220
     echo '' >> $cryptpad_nginx_site
@@ -450,18 +275,8 @@ function install_cryptpad_main {
450 275
     echo '  try_files /www/$uri /www/$uri/index.html /customize/$uri;' >> $cryptpad_nginx_site
451 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 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 281
     install_completed cryptpad_main
467 282
 }
@@ -490,11 +305,7 @@ function install_cryptpad {
490 305
     sed -i "s|httpPort:.*|httpPort: $CRYPTPAD_PORT,|g" config.js
491 306
     sed -i "s|// domain:|domain:|g" config.js
492 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 310
     chown -R cryptpad:cryptpad $CRYPTPAD_DIR
500 311
 

+ 1
- 4
src/freedombone-app-searx View File

@@ -43,10 +43,7 @@ SEARX_LOGIN_TEXT=$"Search engine login"
43 43
 SEARX_PASSWORD=
44 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 47
                  MY_USERNAME
51 48
                  SEARX_BACKGROUND_IMAGE_URL
52 49
                  SYSTEM_TYPE)