浏览代码

Rename wiki to dokuwiki

So that other wiki apps could be added without confusion
Bob Mottram 8 年前
父节点
当前提交
e3dafd63a2

+ 572
- 0
src/freedombone-app-dokuwiki 查看文件

@@ -0,0 +1,572 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Dokuwiki application
12
+#
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2014-2016 Bob Mottram <bob@robotics.uk.to>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU Affero General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
+# GNU Affero General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU Affero General Public License
29
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
+
31
+VARIANTS='full full-vim writer'
32
+
33
+DOKUWIKI_DOMAIN_NAME=
34
+DOKUWIKI_ADMIN_PASSWORD=
35
+DOKUWIKI_TITLE="${PROJECT_NAME} Dokuwiki"
36
+DOKUWIKI_CODE=
37
+DOKUWIKI_ONION_PORT=8089
38
+
39
+dokuwiki_variables=(ONION_ONLY
40
+                MY_USERNAME
41
+                DOKUWIKI_TITLE
42
+                DOKUWIKI_DOMAIN_NAME
43
+                DOKUWIKI_CODE
44
+                DDNS_PROVIDER)
45
+
46
+function install_interactive_dokuwiki {
47
+    if [[ $ONION_ONLY != "no" ]]; then
48
+        DOKUWIKI_TITLE=$'My Dokuwiki'
49
+        DOKUWIKI_DOMAIN_NAME='dokuwiki.local'
50
+        write_config_param "DOKUWIKI_TITLE" "$DOKUWIKI_TITLE"
51
+        write_config_param "DOKUWIKI_DOMAIN_NAME" "$DOKUWIKI_DOMAIN_NAME"
52
+    else
53
+        function_check interactive_site_details_with_title
54
+        interactive_site_details_with_title "dokuwiki" "DOKUWIKI_TITLE" "DOKUWIKI_DOMAIN_NAME" "DOKUWIKI_CODE"
55
+    fi
56
+    APP_INSTALLED=1
57
+}
58
+
59
+function change_password_dokuwiki {
60
+    echo -n ''
61
+}
62
+
63
+function reconfigure_dokuwiki {
64
+    echo -n ''
65
+}
66
+
67
+function upgrade_dokuwiki {
68
+    echo -n ''
69
+}
70
+
71
+function backup_local_dokuwiki {
72
+    source_directory=/var/lib/dokuwiki
73
+    if [ -d $source_directory ]; then
74
+        dest_directory=dokuwiki
75
+        echo $"Backing up $source_directory to $dest_directory"
76
+
77
+        function_check backup_directory_to_usb
78
+        backup_directory_to_usb $source_directory $dest_directory
79
+        backup_directory_to_usb /etc/dokuwiki dokuwiki2
80
+
81
+        echo $"Backup to $dest_directory complete"
82
+    fi
83
+}
84
+
85
+function restore_local_dokuwiki {
86
+    if [ -d /var/lib/dokuwiki ]; then
87
+        echo $"Restoring Dokuwiki installation"
88
+        DOKUWIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "dokuwiki domain" | awk -F ':' '{print $2}')
89
+        temp_restore_dir=/root/tempdokuwiki
90
+        function_check restore_directory_from_usb
91
+        restore_directory_from_usb $temp_restore_dir dokuwiki
92
+        cp -r $temp_restore_dir/var/lib/dokuwiki/* /var/lib/dokuwiki/
93
+        if [ ! "$?" = "0" ]; then
94
+            function_check restore_directory_from_usb
95
+            set_user_permissions
96
+            function_check backup_unmount_drive
97
+            backup_unmount_drive
98
+            exit 868
99
+        fi
100
+        restore_directory_from_usb ${temp_restore_dir}2 dokuwiki2
101
+        cp -r ${temp_restore_dir}2/etc/dokuwiki/* /etc/dokuwiki/
102
+        if [ ! "$?" = "0" ]; then
103
+            function_check set_user_permissions
104
+            set_user_permissions
105
+            function_check backup_unmount_drive
106
+            backup_unmount_drive
107
+            exit 869
108
+        fi
109
+        rm -rf $temp_restore_dir
110
+        rm -rf ${temp_restore_dir}2
111
+        chown -R www-data:www-data /var/lib/dokuwiki/*
112
+        # Ensure that the bundled SSL cert is being used
113
+        if [ -f /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.bundle.crt ]; then
114
+            sed -i "s|${DOKUWIKI_DOMAIN_NAME}.crt|${DOKUWIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${DOKUWIKI_DOMAIN_NAME}
115
+        fi
116
+        if [ -d /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME} ]; then
117
+            ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${DOKUWIKI_DOMAIN_NAME}.key
118
+            ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.pem
119
+        fi
120
+        echo $"Restore of Dokuwiki complete"
121
+    fi
122
+}
123
+
124
+function backup_remote_dokuwiki {
125
+    if [ -d /etc/dokuwiki ]; then
126
+        echo $"Backing up dokuwiki"
127
+        backup_directory_to_friend /var/lib/dokuwiki dokuwiki
128
+        backup_directory_to_friend /etc/dokuwiki dokuwiki2
129
+    fi
130
+}
131
+
132
+function restore_remote_dokuwiki {
133
+    if [ -d $SERVER_DIRECTORY/backup/dokuwiki ]; then
134
+        DOKUWIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "dokuwiki domain" | awk -F ':' '{print $2}')
135
+        echo $"Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME"
136
+        function_check restore_directory_from_friend
137
+        restore_directory_from_friend /root/tempdokuwiki dokuwiki
138
+        cp -r /root/tempdokuwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
139
+        if [ ! "$?" = "0" ]; then
140
+            exit 868
141
+        fi
142
+        restore_directory_from_friend /root/tempdokuwiki2 dokuwiki2
143
+        cp -r /root/tempdokuwiki2/etc/dokuwiki/* /etc/dokuwiki/
144
+        if [ ! "$?" = "0" ]; then
145
+            exit 869
146
+        fi
147
+        rm -rf /root/tempdokuwiki
148
+        rm -rf /root/tempdokuwiki2
149
+        chown -R www-data:www-data /var/lib/dokuwiki/*
150
+        # Ensure that the bundled SSL cert is being used
151
+        if [ -f /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.bundle.crt ]; then
152
+            sed -i "s|${DOKUWIKI_DOMAIN_NAME}.crt|${DOKUWIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${DOKUWIKI_DOMAIN_NAME}
153
+        fi
154
+        if [ -d /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME} ]; then
155
+            ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${DOKUWIKI_DOMAIN_NAME}.key
156
+            ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.pem
157
+        fi
158
+        echo $"Restore of Dokuwiki complete"
159
+    fi
160
+}
161
+
162
+function remove_dokuwiki {
163
+    if [ ${#DOKUWIKI_DOMAIN_NAME} -eq 0 ]; then
164
+        return
165
+    fi
166
+    function_check remove_onion_service
167
+    remove_onion_service dokuwiki ${DOKUWIKI_ONION_PORT}
168
+    nginx_dissite $DOKUWIKI_DOMAIN_NAME
169
+    if [ -f /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME ]; then
170
+        rm /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
171
+    fi
172
+    apt-get -y remove --purge dokuwiki
173
+    if [ ! -d /var/www/$DOKUWIKI_DOMAIN_NAME ]; then
174
+        rm -rf /var/www/$DOKUWIKI_DOMAIN_NAME
175
+    fi
176
+    if [ -d /var/lib/dokuwiki ]; then
177
+        rm -rf /var/lib/dokuwiki
178
+    fi
179
+    if [ -d /etc/dokuwiki ]; then
180
+        rm -rf /etc/dokuwiki
181
+    fi
182
+    if [ -d /usr/share/dokuwiki ]; then
183
+        rm -rf /usr/share/dokuwiki
184
+    fi
185
+    sed -i '/install_dokuwiki/d' $COMPLETION_FILE
186
+}
187
+
188
+function get_dokuwiki_admin_password {
189
+    if [ -f /home/$MY_USERNAME/README ]; then
190
+        if grep -q "Dokuwiki password" /home/$MY_USERNAME/README; then
191
+            DOKUWIKI_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Dokuwiki password:" | awk -F ':' '{print $2}' | sed 's/^ *//')
192
+        fi
193
+    fi
194
+}
195
+
196
+function install_dokuwiki {
197
+    if [ ! $DOKUWIKI_DOMAIN_NAME ]; then
198
+        return
199
+    fi
200
+    apt-get -y install dokuwiki
201
+    apt-get -y remove --purge apache*
202
+    if [ -d /etc/apache2 ]; then
203
+        rm -rf /etc/apache2
204
+        echo $'Removed Apache installation after Dokuwiki install'
205
+    fi
206
+
207
+    if [ ! -d /var/www/$DOKUWIKI_DOMAIN_NAME ]; then
208
+        mkdir /var/www/$DOKUWIKI_DOMAIN_NAME
209
+    fi
210
+    if [ -d /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs ]; then
211
+        rm -rf /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
212
+    fi
213
+
214
+    ln -s /usr/share/dokuwiki /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
215
+
216
+    if [ ! -d /var/lib/dokuwiki/custom ]; then
217
+        mkdir /var/lib/dokuwiki/custom
218
+    fi
219
+    cp /etc/dokuwiki/local.php.dist /var/lib/dokuwiki/custom/local.php
220
+    if [ ! -f /etc/dokuwiki/local.php ]; then
221
+        ln -s /var/lib/dokuwiki/custom/local.php /etc/dokuwiki/local.php
222
+    fi
223
+
224
+    chown www-data /var/lib/dokuwiki/custom
225
+    chown www-data /var/lib/dokuwiki/custom/local.php
226
+    chown -R www-data /etc/dokuwiki
227
+    chown -R www-data /usr/share/dokuwiki/lib/
228
+    chmod 600 /var/lib/dokuwiki/custom/local.php
229
+    chmod -R 755 /usr/share/dokuwiki/lib
230
+
231
+    sed -i 's|//$conf|$conf|g' /var/lib/dokuwiki/custom/local.php
232
+    sed -i "s|joe|$MY_USERNAME|g" /var/lib/dokuwiki/custom/local.php
233
+
234
+    sed -i "s|Debian Dokuwiki|$DOKUWIKI_TITLE|g" /etc/dokuwiki/local.php
235
+
236
+    # set the admin user
237
+    sed -i "s/@admin/$MY_USERNAME/g" /etc/dokuwiki/local.php
238
+
239
+    # disallow registration of new users
240
+    if ! grep -q "disableactions" /etc/dokuwiki/local.php; then
241
+        echo "\$conf['disableactions'] = 'register';" >> /etc/dokuwiki/local.php
242
+    fi
243
+    if ! grep -q "disableactions" /var/lib/dokuwiki/custom/local.php; then
244
+        echo "\$conf['disableactions'] = 'register';" >> /var/lib/dokuwiki/custom/local.php
245
+    fi
246
+
247
+    if ! grep -q "authtype" /var/lib/dokuwiki/custom/local.php; then
248
+        echo "\$conf['authtype'] = 'authplain';" >> /var/lib/dokuwiki/custom/local.php
249
+    fi
250
+    if ! grep -q "authtype" /etc/dokuwiki/local.php; then
251
+        echo "\$conf['authtype'] = 'authplain';" >> /etc/dokuwiki/local.php
252
+    fi
253
+
254
+    function_check get_dokuwiki_admin_password
255
+    get_dokuwiki_admin_password
256
+    if [ ! $DOKUWIKI_ADMIN_PASSWORD ]; then
257
+        if [ -f $IMAGE_PASSWORD_FILE ]; then
258
+            DOKUWIKI_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
259
+        else
260
+            DOKUWIKI_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
261
+        fi
262
+    fi
263
+    HASHED_DOKUWIKI_PASSWORD=$(echo -n "$DOKUWIKI_ADMIN_PASSWORD" | md5sum | awk -F ' ' '{print $1}')
264
+    echo -n "$MY_USERNAME:$HASHED_DOKUWIKI_PASSWORD:$MY_NAME:$MY_EMAIL:admin,user,upload" > /var/lib/dokuwiki/acl/users.auth.php
265
+    chmod 640 /var/lib/dokuwiki/acl/users.auth.php
266
+
267
+    if ! grep -q "video/ogg" /etc/dokuwiki/mime.conf; then
268
+        echo 'ogv     video/ogg' >> /etc/dokuwiki/mime.conf
269
+    fi
270
+    if ! grep -q "video/mp4" /etc/dokuwiki/mime.conf; then
271
+        echo 'mp4     video/mp4' >> /etc/dokuwiki/mime.conf
272
+    fi
273
+    if ! grep -q "video/webm" /etc/dokuwiki/mime.conf; then
274
+        echo 'webm    video/webm' >> /etc/dokuwiki/mime.conf
275
+    fi
276
+
277
+    DOKUWIKI_ONION_HOSTNAME=$(add_onion_service dokuwiki 80 ${DOKUWIKI_ONION_PORT})
278
+
279
+    if [[ $ONION_ONLY == "no" ]]; then
280
+        echo 'server {' > /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
281
+        echo '    listen 80;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
282
+        echo "    root /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
283
+        echo "    server_name $DOKUWIKI_DOMAIN_NAME;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
284
+        echo '    access_log off;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
285
+        echo "    error_log /var/log/nginx/${DOKUWIKI_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
286
+        echo '    index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
287
+        echo '    charset utf-8;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
288
+        echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
289
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
290
+        function_check nginx_disable_sniffing
291
+        nginx_disable_sniffing $DOKUWIKI_DOMAIN_NAME
292
+        echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
293
+        echo '    location / {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
294
+        function_check nginx_limits
295
+        nginx_limits $DOKUWIKI_DOMAIN_NAME
296
+        echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
297
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
298
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
299
+        echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
300
+        echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
301
+        echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
302
+        echo '        allow all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
303
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
304
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
305
+        echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
306
+        echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
307
+        echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
308
+        echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
309
+        echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
310
+        echo '        expires 30d;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
311
+        echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
312
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
313
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
314
+        echo '    # block these file types' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
315
+        echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
316
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
317
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
318
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
319
+        echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
320
+        echo '    # or a unix socket' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
321
+        echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
322
+        function_check nginx_limits
323
+        nginx_limits $DOKUWIKI_DOMAIN_NAME
324
+        echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
325
+        echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
326
+        echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
327
+        echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
328
+        echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
329
+        echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
330
+        echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
331
+        echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
332
+        echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
333
+        echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
334
+        echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
335
+        echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
336
+        echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
337
+        echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
338
+        echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
339
+        echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
340
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
341
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
342
+        echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
343
+        echo '    location ~ /\. {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
344
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
345
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
346
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
347
+        echo '    #deny access to store' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
348
+        echo '    location ~ /store {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
349
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
350
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
351
+        echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
352
+        echo '      deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
353
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
354
+        echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
355
+        echo '      deny  all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
356
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
357
+        echo '}' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
358
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
359
+        echo 'server {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
360
+        echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
361
+        echo "    root /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
362
+        echo "    server_name $DOKUWIKI_DOMAIN_NAME;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
363
+        echo '    access_log off;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
364
+        echo "    error_log /var/log/nginx/${DOKUWIKI_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
365
+        echo '    index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
366
+        echo '    charset utf-8;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
367
+        echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
368
+        function_check nginx_ssl
369
+        nginx_ssl $DOKUWIKI_DOMAIN_NAME
370
+        function_check nginx_disable_sniffing
371
+        nginx_disable_sniffing $DOKUWIKI_DOMAIN_NAME
372
+        echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
373
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
374
+        echo '    # webmail' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
375
+        echo '    location /webmail {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
376
+        function_check nginx_limits
377
+        nginx_limits $DOKUWIKI_DOMAIN_NAME
378
+        echo '        rewrite ^/(.*) /webmail/index.php last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
379
+        echo '        rewrite ^/(.*) /webmail/installer/index.php last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
380
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
381
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
382
+        echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
383
+        echo '    location / {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
384
+        function_check nginx_limits
385
+        nginx_limits $DOKUWIKI_DOMAIN_NAME
386
+        echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
387
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
388
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
389
+        echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
390
+        echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
391
+        echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
392
+        echo '        allow all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
393
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
394
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
395
+        echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
396
+        echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
397
+        echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
398
+        echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
399
+        echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
400
+        echo '        expires 30d;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
401
+        echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
402
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
403
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
404
+        echo '    # block these file types' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
405
+        echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
406
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
407
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
408
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
409
+        echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
410
+        echo '    # or a unix socket' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
411
+        echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
412
+        function_check nginx_limits
413
+        nginx_limits $DOKUWIKI_DOMAIN_NAME
414
+        echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
415
+        echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
416
+        echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
417
+        echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
418
+        echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
419
+        echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
420
+        echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
421
+        echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
422
+        echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
423
+        echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
424
+        echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
425
+        echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
426
+        echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
427
+        echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
428
+        echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
429
+        echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
430
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
431
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
432
+        echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
433
+        echo '    location ~ /\. {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
434
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
435
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
436
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
437
+        echo '    #deny access to store' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
438
+        echo '    location ~ /store {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
439
+        echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
440
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
441
+        echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
442
+        echo '      deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
443
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
444
+        echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
445
+        echo '      deny  all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
446
+        echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
447
+        echo '}' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
448
+        echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
449
+    else
450
+        echo -n '' > /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
451
+    fi
452
+    echo 'server {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
453
+    echo "    listen 127.0.0.1:${DOKUWIKI_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
454
+    echo "    root /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
455
+    echo "    server_name $DOKUWIKI_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
456
+    echo '    access_log off;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
457
+    echo "    error_log /var/log/nginx/${DOKUWIKI_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
458
+    echo '    index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
459
+    echo '    charset utf-8;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
460
+    echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
461
+    function_check nginx_disable_sniffing
462
+    nginx_disable_sniffing $DOKUWIKI_DOMAIN_NAME
463
+    echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
464
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
465
+    echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
466
+    echo '    location / {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
467
+    function_check nginx_limits
468
+    nginx_limits $DOKUWIKI_DOMAIN_NAME
469
+    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
470
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
471
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
472
+    echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
473
+    echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
474
+    echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
475
+    echo '        allow all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
476
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
477
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
478
+    echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
479
+    echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
480
+    echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
481
+    echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
482
+    echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
483
+    echo '        expires 30d;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
484
+    echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
485
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
486
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
487
+    echo '    # block these file types' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
488
+    echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
489
+    echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
490
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
491
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
492
+    echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
493
+    echo '    # or a unix socket' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
494
+    echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
495
+    function_check nginx_limits
496
+    nginx_limits $DOKUWIKI_DOMAIN_NAME
497
+    echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
498
+    echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
499
+    echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
500
+    echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
501
+    echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
502
+    echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
503
+    echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
504
+    echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
505
+    echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
506
+    echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
507
+    echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
508
+    echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
509
+    echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
510
+    echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
511
+    echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
512
+    echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
513
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
514
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
515
+    echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
516
+    echo '    location ~ /\. {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
517
+    echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
518
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
519
+    echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
520
+    echo '    #deny access to store' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
521
+    echo '    location ~ /store {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
522
+    echo '        deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
523
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
524
+    echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
525
+    echo '      deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
526
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
527
+    echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
528
+    echo '      deny  all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
529
+    echo '    }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
530
+    echo '}' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
531
+
532
+    function_check create_site_certificate
533
+    create_site_certificate $DOKUWIKI_DOMAIN_NAME
534
+
535
+    function_check configure_php
536
+    configure_php
537
+
538
+    nginx_ensite $DOKUWIKI_DOMAIN_NAME
539
+
540
+    systemctl restart php5-fpm
541
+    systemctl restart nginx
542
+
543
+    function_check add_ddns_domain
544
+    add_ddns_domain $DOKUWIKI_DOMAIN_NAME
545
+
546
+    # add some post-install instructions
547
+    if ! grep -q $"Dokuwiki password" /home/$MY_USERNAME/README; then
548
+        echo '' >> /home/$MY_USERNAME/README
549
+        echo '' >> /home/$MY_USERNAME/README
550
+        echo $'Dokuwiki' >> /home/$MY_USERNAME/README
551
+        echo '====' >> /home/$MY_USERNAME/README
552
+        echo $"Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
553
+        echo $"Dokuwiki username: $MY_USERNAME" >> /home/$MY_USERNAME/README
554
+        echo $"Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
555
+        echo '' >> /home/$MY_USERNAME/README
556
+        echo $'Once you have set up the dokuwiki then remove the install file:' >> /home/$MY_USERNAME/README
557
+        echo '' >> /home/$MY_USERNAME/README
558
+        echo "  rm /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/install.php" >> /home/$MY_USERNAME/README
559
+        echo '' >> /home/$MY_USERNAME/README
560
+        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
561
+        chmod 600 /home/$MY_USERNAME/README
562
+    fi
563
+
564
+    if ! grep -q "dokuwiki domain" $COMPLETION_FILE; then
565
+        echo "dokuwiki domain:$DOKUWIKI_DOMAIN_NAME" >> $COMPLETION_FILE
566
+    else
567
+        sed -i "s|dokuwiki domain.*|dokuwiki domain:$DOKUWIKI_DOMAIN_NAME|g" $COMPLETION_FILE
568
+    fi
569
+    APP_INSTALLED=1
570
+}
571
+
572
+# NOTE: deliberately no exit 0

+ 0
- 572
src/freedombone-app-wiki 查看文件

@@ -1,572 +0,0 @@
1
-#!/bin/bash
2
-#
3
-# .---.                  .              .
4
-# |                      |              |
5
-# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
-# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
-# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
-#
9
-#                    Freedom in the Cloud
10
-#
11
-# Wiki application
12
-#
13
-# License
14
-# =======
15
-#
16
-# Copyright (C) 2014-2016 Bob Mottram <bob@robotics.uk.to>
17
-#
18
-# This program is free software: you can redistribute it and/or modify
19
-# it under the terms of the GNU Affero General Public License as published by
20
-# the Free Software Foundation, either version 3 of the License, or
21
-# (at your option) any later version.
22
-#
23
-# This program is distributed in the hope that it will be useful,
24
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
-# GNU Affero General Public License for more details.
27
-#
28
-# You should have received a copy of the GNU Affero General Public License
29
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
-
31
-VARIANTS='full full-vim writer'
32
-
33
-WIKI_DOMAIN_NAME=
34
-WIKI_ADMIN_PASSWORD=
35
-WIKI_TITLE="${PROJECT_NAME} Wiki"
36
-WIKI_CODE=
37
-WIKI_ONION_PORT=8089
38
-
39
-wiki_variables=(ONION_ONLY
40
-                MY_USERNAME
41
-                WIKI_TITLE
42
-                WIKI_DOMAIN_NAME
43
-                WIKI_CODE
44
-                DDNS_PROVIDER)
45
-
46
-function install_interactive_wiki {
47
-    if [[ $ONION_ONLY != "no" ]]; then
48
-        WIKI_TITLE=$'My Wiki'
49
-        WIKI_DOMAIN_NAME='wiki.local'
50
-        write_config_param "WIKI_TITLE" "$WIKI_TITLE"
51
-        write_config_param "WIKI_DOMAIN_NAME" "$WIKI_DOMAIN_NAME"
52
-    else
53
-        function_check interactive_site_details_with_title
54
-        interactive_site_details_with_title "wiki" "WIKI_TITLE" "WIKI_DOMAIN_NAME" "WIKI_CODE"
55
-    fi
56
-    APP_INSTALLED=1
57
-}
58
-
59
-function change_password_wiki {
60
-    echo -n ''
61
-}
62
-
63
-function reconfigure_wiki {
64
-    echo -n ''
65
-}
66
-
67
-function upgrade_wiki {
68
-    echo -n ''
69
-}
70
-
71
-function backup_local_wiki {
72
-    source_directory=/var/lib/dokuwiki
73
-    if [ -d $source_directory ]; then
74
-        dest_directory=wiki
75
-        echo $"Backing up $source_directory to $dest_directory"
76
-
77
-        function_check backup_directory_to_usb
78
-        backup_directory_to_usb $source_directory $dest_directory
79
-        backup_directory_to_usb /etc/dokuwiki wiki2
80
-
81
-        echo $"Backup to $dest_directory complete"
82
-    fi
83
-}
84
-
85
-function restore_local_wiki {
86
-    if [ -d /var/lib/dokuwiki ]; then
87
-        echo $"Restoring Wiki installation"
88
-        WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "wiki domain" | awk -F ':' '{print $2}')
89
-        temp_restore_dir=/root/tempwiki
90
-        function_check restore_directory_from_usb
91
-        restore_directory_from_usb $temp_restore_dir wiki
92
-        cp -r $temp_restore_dir/var/lib/dokuwiki/* /var/lib/dokuwiki/
93
-        if [ ! "$?" = "0" ]; then
94
-            function_check restore_directory_from_usb
95
-            set_user_permissions
96
-            function_check backup_unmount_drive
97
-            backup_unmount_drive
98
-            exit 868
99
-        fi
100
-        restore_directory_from_usb ${temp_restore_dir}2 wiki2
101
-        cp -r ${temp_restore_dir}2/etc/dokuwiki/* /etc/dokuwiki/
102
-        if [ ! "$?" = "0" ]; then
103
-            function_check set_user_permissions
104
-            set_user_permissions
105
-            function_check backup_unmount_drive
106
-            backup_unmount_drive
107
-            exit 869
108
-        fi
109
-        rm -rf $temp_restore_dir
110
-        rm -rf ${temp_restore_dir}2
111
-        chown -R www-data:www-data /var/lib/dokuwiki/*
112
-        # Ensure that the bundled SSL cert is being used
113
-        if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
114
-            sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
115
-        fi
116
-        if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
117
-            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
118
-            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
119
-        fi
120
-        echo $"Restore of Wiki complete"
121
-    fi
122
-}
123
-
124
-function backup_remote_wiki {
125
-    if [ -d /etc/dokuwiki ]; then
126
-        echo $"Backing up wiki"
127
-        backup_directory_to_friend /var/lib/dokuwiki wiki
128
-        backup_directory_to_friend /etc/dokuwiki wiki2
129
-    fi
130
-}
131
-
132
-function restore_remote_wiki {
133
-    if [ -d $SERVER_DIRECTORY/backup/wiki ]; then
134
-        WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "wiki domain" | awk -F ':' '{print $2}')
135
-        echo $"Restoring Wiki installation $WIKI_DOMAIN_NAME"
136
-        function_check restore_directory_from_friend
137
-        restore_directory_from_friend /root/tempwiki wiki
138
-        cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
139
-        if [ ! "$?" = "0" ]; then
140
-            exit 868
141
-        fi
142
-        restore_directory_from_friend /root/tempwiki2 wiki2
143
-        cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
144
-        if [ ! "$?" = "0" ]; then
145
-            exit 869
146
-        fi
147
-        rm -rf /root/tempwiki
148
-        rm -rf /root/tempwiki2
149
-        chown -R www-data:www-data /var/lib/dokuwiki/*
150
-        # Ensure that the bundled SSL cert is being used
151
-        if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
152
-            sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
153
-        fi
154
-        if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
155
-            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
156
-            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
157
-        fi
158
-        echo $"Restore of Wiki complete"
159
-    fi
160
-}
161
-
162
-function remove_wiki {
163
-    if [ ${#WIKI_DOMAIN_NAME} -eq 0 ]; then
164
-        return
165
-    fi
166
-    function_check remove_onion_service
167
-    remove_onion_service wiki ${WIKI_ONION_PORT}
168
-    nginx_dissite $WIKI_DOMAIN_NAME
169
-    if [ -f /etc/nginx/sites-available/$WIKI_DOMAIN_NAME ]; then
170
-        rm /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
171
-    fi
172
-    apt-get -y remove --purge dokuwiki
173
-    if [ ! -d /var/www/$WIKI_DOMAIN_NAME ]; then
174
-        rm -rf /var/www/$WIKI_DOMAIN_NAME
175
-    fi
176
-    if [ -d /var/lib/dokuwiki ]; then
177
-        rm -rf /var/lib/dokuwiki
178
-    fi
179
-    if [ -d /etc/dokuwiki ]; then
180
-        rm -rf /etc/dokuwiki
181
-    fi
182
-    if [ -d /usr/share/dokuwiki ]; then
183
-        rm -rf /usr/share/dokuwiki
184
-    fi
185
-    sed -i '/install_wiki/d' $COMPLETION_FILE
186
-}
187
-
188
-function get_wiki_admin_password {
189
-    if [ -f /home/$MY_USERNAME/README ]; then
190
-        if grep -q "Wiki password" /home/$MY_USERNAME/README; then
191
-            WIKI_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Wiki password:" | awk -F ':' '{print $2}' | sed 's/^ *//')
192
-        fi
193
-    fi
194
-}
195
-
196
-function install_wiki {
197
-    if [ ! $WIKI_DOMAIN_NAME ]; then
198
-        return
199
-    fi
200
-    apt-get -y install dokuwiki
201
-    apt-get -y remove --purge apache*
202
-    if [ -d /etc/apache2 ]; then
203
-        rm -rf /etc/apache2
204
-        echo $'Removed Apache installation after Dokuwiki install'
205
-    fi
206
-
207
-    if [ ! -d /var/www/$WIKI_DOMAIN_NAME ]; then
208
-        mkdir /var/www/$WIKI_DOMAIN_NAME
209
-    fi
210
-    if [ -d /var/www/$WIKI_DOMAIN_NAME/htdocs ]; then
211
-        rm -rf /var/www/$WIKI_DOMAIN_NAME/htdocs
212
-    fi
213
-
214
-    ln -s /usr/share/dokuwiki /var/www/$WIKI_DOMAIN_NAME/htdocs
215
-
216
-    if [ ! -d /var/lib/dokuwiki/custom ]; then
217
-        mkdir /var/lib/dokuwiki/custom
218
-    fi
219
-    cp /etc/dokuwiki/local.php.dist /var/lib/dokuwiki/custom/local.php
220
-    if [ ! -f /etc/dokuwiki/local.php ]; then
221
-        ln -s /var/lib/dokuwiki/custom/local.php /etc/dokuwiki/local.php
222
-    fi
223
-
224
-    chown www-data /var/lib/dokuwiki/custom
225
-    chown www-data /var/lib/dokuwiki/custom/local.php
226
-    chown -R www-data /etc/dokuwiki
227
-    chown -R www-data /usr/share/dokuwiki/lib/
228
-    chmod 600 /var/lib/dokuwiki/custom/local.php
229
-    chmod -R 755 /usr/share/dokuwiki/lib
230
-
231
-    sed -i 's|//$conf|$conf|g' /var/lib/dokuwiki/custom/local.php
232
-    sed -i "s|joe|$MY_USERNAME|g" /var/lib/dokuwiki/custom/local.php
233
-
234
-    sed -i "s|Debian DokuWiki|$WIKI_TITLE|g" /etc/dokuwiki/local.php
235
-
236
-    # set the admin user
237
-    sed -i "s/@admin/$MY_USERNAME/g" /etc/dokuwiki/local.php
238
-
239
-    # disallow registration of new users
240
-    if ! grep -q "disableactions" /etc/dokuwiki/local.php; then
241
-        echo "\$conf['disableactions'] = 'register';" >> /etc/dokuwiki/local.php
242
-    fi
243
-    if ! grep -q "disableactions" /var/lib/dokuwiki/custom/local.php; then
244
-        echo "\$conf['disableactions'] = 'register';" >> /var/lib/dokuwiki/custom/local.php
245
-    fi
246
-
247
-    if ! grep -q "authtype" /var/lib/dokuwiki/custom/local.php; then
248
-        echo "\$conf['authtype'] = 'authplain';" >> /var/lib/dokuwiki/custom/local.php
249
-    fi
250
-    if ! grep -q "authtype" /etc/dokuwiki/local.php; then
251
-        echo "\$conf['authtype'] = 'authplain';" >> /etc/dokuwiki/local.php
252
-    fi
253
-
254
-    function_check get_wiki_admin_password
255
-    get_wiki_admin_password
256
-    if [ ! $WIKI_ADMIN_PASSWORD ]; then
257
-        if [ -f $IMAGE_PASSWORD_FILE ]; then
258
-            WIKI_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
259
-        else
260
-            WIKI_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
261
-        fi
262
-    fi
263
-    HASHED_WIKI_PASSWORD=$(echo -n "$WIKI_ADMIN_PASSWORD" | md5sum | awk -F ' ' '{print $1}')
264
-    echo -n "$MY_USERNAME:$HASHED_WIKI_PASSWORD:$MY_NAME:$MY_EMAIL:admin,user,upload" > /var/lib/dokuwiki/acl/users.auth.php
265
-    chmod 640 /var/lib/dokuwiki/acl/users.auth.php
266
-
267
-    if ! grep -q "video/ogg" /etc/dokuwiki/mime.conf; then
268
-        echo 'ogv     video/ogg' >> /etc/dokuwiki/mime.conf
269
-    fi
270
-    if ! grep -q "video/mp4" /etc/dokuwiki/mime.conf; then
271
-        echo 'mp4     video/mp4' >> /etc/dokuwiki/mime.conf
272
-    fi
273
-    if ! grep -q "video/webm" /etc/dokuwiki/mime.conf; then
274
-        echo 'webm    video/webm' >> /etc/dokuwiki/mime.conf
275
-    fi
276
-
277
-    WIKI_ONION_HOSTNAME=$(add_onion_service wiki 80 ${WIKI_ONION_PORT})
278
-
279
-    if [[ $ONION_ONLY == "no" ]]; then
280
-        echo 'server {' > /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
281
-        echo '    listen 80;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
282
-        echo "    root /var/www/$WIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
283
-        echo "    server_name $WIKI_DOMAIN_NAME;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
284
-        echo '    access_log off;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
285
-        echo "    error_log /var/log/nginx/${WIKI_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
286
-        echo '    index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
287
-        echo '    charset utf-8;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
288
-        echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
289
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
290
-        function_check nginx_disable_sniffing
291
-        nginx_disable_sniffing $WIKI_DOMAIN_NAME
292
-        echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
293
-        echo '    location / {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
294
-        function_check nginx_limits
295
-        nginx_limits $WIKI_DOMAIN_NAME
296
-        echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
297
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
298
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
299
-        echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
300
-        echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
301
-        echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
302
-        echo '        allow all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
303
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
304
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
305
-        echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
306
-        echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
307
-        echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
308
-        echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
309
-        echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
310
-        echo '        expires 30d;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
311
-        echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
312
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
313
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
314
-        echo '    # block these file types' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
315
-        echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
316
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
317
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
318
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
319
-        echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
320
-        echo '    # or a unix socket' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
321
-        echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
322
-        function_check nginx_limits
323
-        nginx_limits $WIKI_DOMAIN_NAME
324
-        echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
325
-        echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
326
-        echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
327
-        echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
328
-        echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
329
-        echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
330
-        echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
331
-        echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
332
-        echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
333
-        echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
334
-        echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
335
-        echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
336
-        echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
337
-        echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
338
-        echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
339
-        echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
340
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
341
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
342
-        echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
343
-        echo '    location ~ /\. {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
344
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
345
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
346
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
347
-        echo '    #deny access to store' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
348
-        echo '    location ~ /store {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
349
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
350
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
351
-        echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
352
-        echo '      deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
353
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
354
-        echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
355
-        echo '      deny  all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
356
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
357
-        echo '}' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
358
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
359
-        echo 'server {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
360
-        echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
361
-        echo "    root /var/www/$WIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
362
-        echo "    server_name $WIKI_DOMAIN_NAME;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
363
-        echo '    access_log off;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
364
-        echo "    error_log /var/log/nginx/${WIKI_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
365
-        echo '    index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
366
-        echo '    charset utf-8;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
367
-        echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
368
-        function_check nginx_ssl
369
-        nginx_ssl $WIKI_DOMAIN_NAME
370
-        function_check nginx_disable_sniffing
371
-        nginx_disable_sniffing $WIKI_DOMAIN_NAME
372
-        echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
373
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
374
-        echo '    # webmail' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
375
-        echo '    location /webmail {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
376
-        function_check nginx_limits
377
-        nginx_limits $WIKI_DOMAIN_NAME
378
-        echo '        rewrite ^/(.*) /webmail/index.php last;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
379
-        echo '        rewrite ^/(.*) /webmail/installer/index.php last;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
380
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
381
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
382
-        echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
383
-        echo '    location / {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
384
-        function_check nginx_limits
385
-        nginx_limits $WIKI_DOMAIN_NAME
386
-        echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
387
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
388
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
389
-        echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
390
-        echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
391
-        echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
392
-        echo '        allow all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
393
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
394
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
395
-        echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
396
-        echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
397
-        echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
398
-        echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
399
-        echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
400
-        echo '        expires 30d;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
401
-        echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
402
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
403
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
404
-        echo '    # block these file types' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
405
-        echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
406
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
407
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
408
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
409
-        echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
410
-        echo '    # or a unix socket' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
411
-        echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
412
-        function_check nginx_limits
413
-        nginx_limits $WIKI_DOMAIN_NAME
414
-        echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
415
-        echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
416
-        echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
417
-        echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
418
-        echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
419
-        echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
420
-        echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
421
-        echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
422
-        echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
423
-        echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
424
-        echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
425
-        echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
426
-        echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
427
-        echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
428
-        echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
429
-        echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
430
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
431
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
432
-        echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
433
-        echo '    location ~ /\. {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
434
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
435
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
436
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
437
-        echo '    #deny access to store' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
438
-        echo '    location ~ /store {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
439
-        echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
440
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
441
-        echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
442
-        echo '      deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
443
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
444
-        echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
445
-        echo '      deny  all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
446
-        echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
447
-        echo '}' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
448
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
449
-    else
450
-        echo -n '' > /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
451
-    fi
452
-    echo 'server {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
453
-    echo "    listen 127.0.0.1:${WIKI_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
454
-    echo "    root /var/www/$WIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
455
-    echo "    server_name $WIKI_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
456
-    echo '    access_log off;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
457
-    echo "    error_log /var/log/nginx/${WIKI_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
458
-    echo '    index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
459
-    echo '    charset utf-8;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
460
-    echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
461
-    function_check nginx_disable_sniffing
462
-    nginx_disable_sniffing $WIKI_DOMAIN_NAME
463
-    echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
464
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
465
-    echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
466
-    echo '    location / {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
467
-    function_check nginx_limits
468
-    nginx_limits $WIKI_DOMAIN_NAME
469
-    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
470
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
471
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
472
-    echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
473
-    echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
474
-    echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
475
-    echo '        allow all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
476
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
477
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
478
-    echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
479
-    echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
480
-    echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
481
-    echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
482
-    echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
483
-    echo '        expires 30d;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
484
-    echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
485
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
486
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
487
-    echo '    # block these file types' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
488
-    echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
489
-    echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
490
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
491
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
492
-    echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
493
-    echo '    # or a unix socket' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
494
-    echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
495
-    function_check nginx_limits
496
-    nginx_limits $WIKI_DOMAIN_NAME
497
-    echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
498
-    echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
499
-    echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
500
-    echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
501
-    echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
502
-    echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
503
-    echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
504
-    echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
505
-    echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
506
-    echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
507
-    echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
508
-    echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
509
-    echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
510
-    echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
511
-    echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
512
-    echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
513
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
514
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
515
-    echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
516
-    echo '    location ~ /\. {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
517
-    echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
518
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
519
-    echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
520
-    echo '    #deny access to store' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
521
-    echo '    location ~ /store {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
522
-    echo '        deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
523
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
524
-    echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
525
-    echo '      deny all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
526
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
527
-    echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
528
-    echo '      deny  all;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
529
-    echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
530
-    echo '}' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
531
-
532
-    function_check create_site_certificate
533
-    create_site_certificate $WIKI_DOMAIN_NAME
534
-
535
-    function_check configure_php
536
-    configure_php
537
-
538
-    nginx_ensite $WIKI_DOMAIN_NAME
539
-
540
-    systemctl restart php5-fpm
541
-    systemctl restart nginx
542
-
543
-    function_check add_ddns_domain
544
-    add_ddns_domain $WIKI_DOMAIN_NAME
545
-
546
-    # add some post-install instructions
547
-    if ! grep -q $"Wiki password" /home/$MY_USERNAME/README; then
548
-        echo '' >> /home/$MY_USERNAME/README
549
-        echo '' >> /home/$MY_USERNAME/README
550
-        echo $'Wiki' >> /home/$MY_USERNAME/README
551
-        echo '====' >> /home/$MY_USERNAME/README
552
-        echo $"Wiki onion domain: ${WIKI_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
553
-        echo $"Wiki username: $MY_USERNAME" >> /home/$MY_USERNAME/README
554
-        echo $"Wiki password: $WIKI_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
555
-        echo '' >> /home/$MY_USERNAME/README
556
-        echo $'Once you have set up the wiki then remove the install file:' >> /home/$MY_USERNAME/README
557
-        echo '' >> /home/$MY_USERNAME/README
558
-        echo "  rm /var/www/$WIKI_DOMAIN_NAME/htdocs/install.php" >> /home/$MY_USERNAME/README
559
-        echo '' >> /home/$MY_USERNAME/README
560
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
561
-        chmod 600 /home/$MY_USERNAME/README
562
-    fi
563
-
564
-    if ! grep -q "wiki domain" $COMPLETION_FILE; then
565
-        echo "wiki domain:$WIKI_DOMAIN_NAME" >> $COMPLETION_FILE
566
-    else
567
-        sed -i "s|wiki domain.*|wiki domain:$WIKI_DOMAIN_NAME|g" $COMPLETION_FILE
568
-    fi
569
-    APP_INSTALLED=1
570
-}
571
-
572
-# NOTE: deliberately no exit 0

+ 3
- 3
src/freedombone-config 查看文件

@@ -64,9 +64,9 @@ ENABLE_BATMAN=
64 64
 DEBIAN_REPO=
65 65
 NAMESERVER1=
66 66
 NAMESERVER2=
67
-WIKI_TITLE=
68
-WIKI_DOMAIN_NAME=
69
-WIKI_CODE=
67
+DOKUWIKI_TITLE=
68
+DOKUWIKI_DOMAIN_NAME=
69
+DOKUWIKI_CODE=
70 70
 MY_BLOG_TITLE=
71 71
 FULLBLOG_DOMAIN_NAME=
72 72
 FULLBLOG_CODE=

+ 4
- 4
src/freedombone-utils-dns 查看文件

@@ -116,10 +116,10 @@ function create_freedns_updater {
116 116
         echo "# $DEFAULT_DOMAIN_NAME" >> /usr/bin/dynamicdns
117 117
         echo "$FREEDNS_WGET$DEFAULT_DOMAIN_CODE=" >> /usr/bin/dynamicdns
118 118
     fi
119
-    if [ $WIKI_CODE ]; then
120
-        if [[ $WIKI_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
121
-            echo "# $WIKI_DOMAIN_NAME" >> /usr/bin/dynamicdns
122
-            echo "$FREEDNS_WGET$WIKI_CODE=" >> /usr/bin/dynamicdns
119
+    if [ $DOKUWIKI_CODE ]; then
120
+        if [[ $DOKUWIKI_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
121
+            echo "# $DOKUWIKI_DOMAIN_NAME" >> /usr/bin/dynamicdns
122
+            echo "$FREEDNS_WGET$DOKUWIKI_CODE=" >> /usr/bin/dynamicdns
123 123
         fi
124 124
     fi
125 125
     if [ $FULLBLOG_CODE ]; then

+ 0
- 5
src/freedombone-utils-help 查看文件

@@ -47,11 +47,6 @@ function show_help {
47 47
     echo $'     --ddnsuser         Dynamic DNS provider username'
48 48
     echo $'     --ddnspass         Dynamic DNS provider password'
49 49
     echo ''
50
-    echo $'     --microblogdomain  Microblog domain name'
51
-    echo $'     --wikidomain       Wiki domain name'
52
-    echo $'     --blogdomain       Blog domain name'
53
-    echo $'     --hubzilladomain   Hubzilla domain name'
54
-    echo $'     --gitdomain        Git hosting domain name'
55 50
     echo $'  -t --time             Domain used as a TLS time source'
56 51
     echo $'     --ssh              ssh port number'
57 52
     echo $'     --list             Public mailing list name'

+ 3
- 3
src/freedombone-utils-onion 查看文件

@@ -127,7 +127,7 @@ function set_default_onion_domains {
127 127
 
128 128
     MICROBLOG_DOMAIN_NAME='microblog.local'
129 129
     FULLBLOG_DOMAIN_NAME='blog.local'
130
-    WIKI_DOMAIN_NAME='wiki.local'
130
+    DOKUWIKI_DOMAIN_NAME='dokuwiki.local'
131 131
     DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
132 132
     GIT_DOMAIN_NAME='git.local'
133 133
     MEDIAGOBLIN_DOMAIN_NAME='media.local'
@@ -152,9 +152,9 @@ function create_avahi_onion_domains {
152 152
         function_check create_avahi_service
153 153
         create_avahi_service git http tcp $GIT_ONION_PORT
154 154
     fi
155
-    if [ $WIKI_DOMAIN_NAME ]; then
155
+    if [ $DOKUWIKI_DOMAIN_NAME ]; then
156 156
         function_check create_avahi_service
157
-        create_avahi_service wiki http tcp $WIKI_ONION_PORT
157
+        create_avahi_service dokuwiki http tcp $DOKUWIKI_ONION_PORT
158 158
     fi
159 159
 }
160 160
 

+ 1
- 1
src/freedombone-utils-upgrade 查看文件

@@ -75,7 +75,7 @@ function upgrade_installation_from_previous_versions {
75 75
     sed -i 's|Blog|blog|g' $COMPLETION_FILE
76 76
     sed -i 's|Hubzilla|hubzilla|g' $COMPLETION_FILE
77 77
     sed -i 's|Gogs|gogs|g' $COMPLETION_FILE
78
-    sed -i 's|Wiki|wiki|g' $COMPLETION_FILE
78
+    sed -i 's|Wiki|dokuwiki|g' $COMPLETION_FILE
79 79
     sed -i 's|RSS|rss|g' $COMPLETION_FILE
80 80
     sed -i 's|Webmail|webmail|g' $COMPLETION_FILE
81 81
     sed -i 's|Zeronet|zeronet|g' $COMPLETION_FILE