Kaynağa Gözat

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram 7 yıl önce
ebeveyn
işleme
07e91fa26c

+ 1
- 1
doc/EN/app_pleroma.org Dosyayı Görüntüle

@@ -32,7 +32,7 @@ Using cursor keys, space bar and Enter key select *Administrator controls* and t
32 32
 Select *Add/Remove Apps* then *pleroma*. You will then be asked for a domain name and if you are using FreeDNS also the code for the domain which can be found under *Dynamic DNS* on the FreeDNS site (the random string from "/quick cron example/" which appears after /update.php?/ and before />>/). For more details on obtaining a domain and making it accessible via dynamic DNS see the [[./faq.html][FAQ]]. Typically the domain name you use will be a subdomain, such as /pleroma.mydomainname.net/. It will need to be a domain which you have bought somewhere and own and not one of the FreeDNS subdomains, otherwise you won't be able to get a SSL/TLS certificate for it.
33 33
 
34 34
 * Initial setup
35
-The first thing you'll need to do is register a new account. You can set your profile details and profile image by selecting the small settings icon to the right of your name.
35
+The first thing you'll need to do is to obtain your login details. From the *administrator control panel* select *security settings* then *passwords* then *pleroma*. This gives the password you will need to log in, together with the username you gave during installation of the Freedombone system.
36 36
 
37 37
 Once you have done that then you can disable further registrations from the *Administrator control panel* by going to *App Settings* then *pleroma* then *Disable new account registrations*. This may take a while because the app gets recompiled afterwards.
38 38
 

+ 2
- 2
src/freedombone-app-gogs Dosyayı Görüntüle

@@ -655,11 +655,11 @@ function install_gogs {
655 655
         echo $'No Tor installation found. Gogs onion site cannot be configured.'
656 656
         exit 877367
657 657
     fi
658
-    if ! grep -q "hidden_service_gogs" /etc/tor/torrc; then
658
+    if ! grep -q "hidden_service_gogs" $ONION_SERVICES_FILE; then
659 659
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_gogs/';
660 660
           echo 'HiddenServiceVersion 3';
661 661
           echo "HiddenServicePort 80 127.0.0.1:${GIT_ONION_PORT}";
662
-          echo "HiddenServicePort 9418 127.0.0.1:9418"; } >> /etc/tor/torrc
662
+          echo "HiddenServicePort 9418 127.0.0.1:9418"; } >> $ONION_SERVICES_FILE
663 663
         echo $'Added onion site for Gogs'
664 664
     fi
665 665
 

+ 2
- 2
src/freedombone-app-keyserver Dosyayı Görüntüle

@@ -656,12 +656,12 @@ function install_keyserver {
656 656
 
657 657
     chown debian-sks: $sksconf_file
658 658
 
659
-    if ! grep -q "hidden_service_sks" /etc/tor/torrc; then
659
+    if ! grep -q "hidden_service_sks" $ONION_SERVICES_FILE; then
660 660
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_sks/';
661 661
           echo 'HiddenServiceVersion 3';
662 662
           echo "HiddenServicePort 11370 127.0.0.1:11370";
663 663
           echo "HiddenServicePort 11373 127.0.0.1:11371";
664
-          echo "HiddenServicePort 11372 127.0.0.1:11372"; } >> /etc/tor/torrc
664
+          echo "HiddenServicePort 11372 127.0.0.1:11372"; } >> $ONION_SERVICES_FILE
665 665
         echo $'Added onion site for sks'
666 666
     fi
667 667
 

+ 1
- 1
src/freedombone-app-matrix Dosyayı Görüntüle

@@ -702,7 +702,7 @@ function install_home_server {
702 702
 
703 703
     #MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
704 704
     add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT}
705
-    echo "HiddenServicePort ${MATRIX_HTTP_PORT} 127.0.0.1:${MATRIX_FEDERATION_ONION_PORT}" >> /etc/tor/torrc
705
+    echo "HiddenServicePort ${MATRIX_HTTP_PORT} 127.0.0.1:${MATRIX_FEDERATION_ONION_PORT}" >> $ONION_SERVICES_FILE
706 706
     systemctl restart tor
707 707
 
708 708
     if [ ! "${MATRIX_PASSWORD}" ]; then

+ 3
- 3
src/freedombone-app-xmpp Dosyayı Görüntüle

@@ -608,7 +608,7 @@ function remove_xmpp {
608 608
 
609 609
     function_check remove_onion_service
610 610
     remove_onion_service xmpp 5222 5223 5269
611
-    sed -i '/HiddenServiceVersion 2/d' /etc/tor/torrc
611
+    sed -i '/HiddenServiceVersion 2/d' $ONION_SERVICES_FILE
612 612
 
613 613
     apt-mark -q unhold prosody
614 614
     apt-get -yq remove --purge prosody
@@ -1079,11 +1079,11 @@ function install_xmpp {
1079 1079
         echo $'No Tor installation found. xmpp onion site cannot be configured.'
1080 1080
         exit 877367
1081 1081
     fi
1082
-    if ! grep -q "hidden_service_xmpp" /etc/tor/torrc; then
1082
+    if ! grep -q "hidden_service_xmpp" $ONION_SERVICES_FILE; then
1083 1083
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/';
1084 1084
           echo 'HiddenServiceVersion 2';
1085 1085
           echo "HiddenServicePort 5222 127.0.0.1:5222";
1086
-          echo "HiddenServicePort 5269 127.0.0.1:5269"; } >> /etc/tor/torrc
1086
+          echo "HiddenServicePort 5269 127.0.0.1:5269"; } >> $ONION_SERVICES_FILE
1087 1087
         echo $'Added onion site for xmpp chat'
1088 1088
     fi
1089 1089
 

+ 5
- 22
src/freedombone-base-email Dosyayı Görüntüle

@@ -224,12 +224,12 @@ function email_create_template {
224 224
 
225 225
 function create_email_onion_address {
226 226
     email_hostname='/var/lib/tor/hidden_service_email/hostname'
227
-    if ! grep -q "hidden_service_email" /etc/tor/torrc; then
227
+    if ! grep -q "hidden_service_email" $ONION_SERVICES_FILE; then
228 228
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_email/';
229 229
           echo 'HiddenServiceVersion 3';
230 230
           echo 'HiddenServicePort 25 127.0.0.1:25';
231 231
           echo 'HiddenServicePort 587 127.0.0.1:587';
232
-          echo 'HiddenServicePort 465 127.0.0.1:465'; } >> /etc/tor/torrc
232
+          echo 'HiddenServicePort 465 127.0.0.1:465'; } >> $ONION_SERVICES_FILE
233 233
 
234 234
         function_check onion_update
235 235
         onion_update
@@ -320,26 +320,9 @@ function configure_email_onion {
320 320
       echo "  hosts_avoid_tls = *";
321 321
       echo "  socks_proxy = 127.0.0.1 port=9050"; } > /etc/exim4/conf.d/transport/050_exim4-config_onion_relay
322 322
 
323
-    if ! grep -q "AutomapHostsOnResolve" /etc/tor/torrc; then
324
-        echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
325
-    else
326
-        sed -i 's|#AutomapHostsOnResolve.*|AutomapHostsOnResolve 1|g' /etc/tor/torrc
327
-        sed -i 's|AutomapHostsOnResolve.*|AutomapHostsOnResolve 1|g' /etc/tor/torrc
328
-    fi
329
-
330
-    if ! grep -q "DNSPort " /etc/tor/torrc; then
331
-        echo 'DNSPort 5300' >> /etc/tor/torrc
332
-    else
333
-        sed -i 's|#DNSPort .*|DNSPort 5300|g' /etc/tor/torrc
334
-        sed -i 's|DNSPort .*|DNSPort 5300|g' /etc/tor/torrc
335
-    fi
336
-
337
-    if ! grep -q "DNSListenAddress" /etc/tor/torrc; then
338
-        echo 'DNSListenAddress 127.0.0.1' >> /etc/tor/torrc
339
-    else
340
-        sed -i 's|#DNSListenAddress.*|DNSListenAddress 127.0.0.1|g' /etc/tor/torrc
341
-        sed -i 's|DNSListenAddress.*|DNSListenAddress 127.0.0.1|g' /etc/tor/torrc
342
-    fi
323
+    { echo 'DNSPort 5300';
324
+      echo 'DNSListenAddress 127.0.0.1';
325
+      echo 'AutomapHostsOnResolve 1'; } > /etc/torrc.d/dns
343 326
 
344 327
     update-exim4.conf.template -r
345 328
     update-exim4.conf

+ 0
- 14
src/freedombone-controlpanel Dosyayı Görüntüle

@@ -362,19 +362,6 @@ function show_tahoelafs {
362 362
     echo ''
363 363
 }
364 364
 
365
-function show_ip_addresses {
366
-    echo $'IP/DNS addresses'
367
-    echo '================'
368
-    echo ''
369
-    echo -n "IPv4: $(get_ipv4_address)/$(get_external_ipv4_address)"
370
-    ipv6_address="$(get_ipv6_address)"
371
-    if [ ${#ipv6_address} -gt 0 ]; then
372
-        echo "    IPv6: ${ipv6_address}"
373
-    fi
374
-    echo ''
375
-    echo ''
376
-}
377
-
378 365
 function show_ssh_public_key {
379 366
     echo $'SSH Public Keys'
380 367
     echo '==============='
@@ -391,7 +378,6 @@ function show_about {
391 378
     #clear
392 379
     #echo "==== ${PROJECT_NAME} version ${VERSION} ($DEBIAN_VERSION) ===="
393 380
     #echo ''
394
-    #show_ip_addresses
395 381
     #show_ssh_public_key
396 382
     show_domains
397 383
     #show_users

+ 16
- 5
src/freedombone-logging Dosyayı Görüntüle

@@ -92,7 +92,9 @@ function turn_logging_off {
92 92
 
93 93
 function turn_off_rsys_logging {
94 94
     if ! grep -q '/var/log/auth.log' /etc/rsyslog.conf; then
95
-        return
95
+        if ! grep -q '/var/log/kern.log' /etc/rsyslog.conf; then
96
+            return
97
+        fi
96 98
     fi
97 99
     sed -i 's|mail,news.none.*|mail,news.none      /dev/null|g' /etc/rsyslog.conf
98 100
     sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /dev/null|g' /etc/rsyslog.conf
@@ -102,6 +104,7 @@ function turn_off_rsys_logging {
102 104
     sed -i 's|daemon.\*.*|daemon.\*              /dev/null|g' /etc/rsyslog.conf
103 105
     sed -i 's|mail.\*.*|mail.\*              /dev/null|g' /etc/rsyslog.conf
104 106
     sed -i 's|user.\*.*|user.\*              /dev/null|g' /etc/rsyslog.conf
107
+    sed -i 's|kern.\*.*|kern.\*              /dev/null|g' /etc/rsyslog.conf
105 108
     sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
106 109
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      /dev/null|g' /etc/rsyslog.conf
107 110
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
@@ -114,6 +117,10 @@ function turn_off_rsys_logging {
114 117
     $REMOVE_FILES_COMMAND /var/log/daemon.*
115 118
     $REMOVE_FILES_COMMAND /var/log/user.*
116 119
     $REMOVE_FILES_COMMAND /var/log/messages*
120
+    $REMOVE_FILES_COMMAND /var/log/syslog*
121
+    $REMOVE_FILES_COMMAND /var/log/alternatives*
122
+    $REMOVE_FILES_COMMAND /var/log/faillog
123
+    $REMOVE_FILES_COMMAND /var/log/kern.log*
117 124
 }
118 125
 
119 126
 function turn_on_rsys_logging {
@@ -128,6 +135,7 @@ function turn_on_rsys_logging {
128 135
     sed -i 's|daemon.\*.*|daemon.\*              -/var/log/daemon.log|g' /etc/rsyslog.conf
129 136
     sed -i 's|mail.\*.*|mail.\*              -/var/log/mail.log|g' /etc/rsyslog.conf
130 137
     sed -i 's|user.\*.*|user.\*              -/var/log/user.log|g' /etc/rsyslog.conf
138
+    sed -i 's|kern.\*.*|kern.\*              -/var/log/kern.log|g' /etc/rsyslog.conf
131 139
     sed -i 's|news.none;mail.none.*|news.none;mail.none -/var/log/debug|g' /etc/rsyslog.conf
132 140
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      -/var/log/syslog|g' /etc/rsyslog.conf
133 141
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
@@ -150,8 +158,7 @@ if [[ "$1" == "on" || "$1" == "On" || "$1" == "ON" ]]; then
150 158
             touch /var/log/tor/notices.log
151 159
             chown debian-tor:adm /var/log/tor/notices.log
152 160
         fi
153
-        sed -i 's|#Log notice file.*|Log notice file /var/log/tor/notices.log|g' /etc/tor/torrc
154
-        sed -i 's|Log notice file.*|Log notice file /var/log/tor/notices.log|g' /etc/tor/torrc
161
+        echo 'Log notice file /var/log/tor/notices.log' > /etc/torrc.d/logging
155 162
     fi
156 163
     if [ -f /etc/php/7.0/fpm/php-fpm.conf ]; then
157 164
         sed -i 's|error_log =.*|error_log = /var/log/php-fpm.log|g' /etc/php/7.0/fpm/php-fpm.conf
@@ -193,12 +200,12 @@ if [[ "$1" == "on" || "$1" == "On" || "$1" == "ON" ]]; then
193 200
         fi
194 201
     fi
195 202
     turn_on_rsys_logging
203
+    turn_on_postgresql_logging
196 204
 else
197 205
     turn_logging_off
198 206
 
199 207
     if [ -d /etc/tor ]; then
200
-        sed -i 's|#Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
201
-        sed -i 's|Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
208
+        echo 'Log notice file /dev/null' > /etc/torrc.d/logging
202 209
         rm /var/log/tor/*
203 210
     fi
204 211
     if [ -d /var/log/radicale ]; then
@@ -250,6 +257,7 @@ else
250 257
         fi
251 258
     fi
252 259
     turn_off_rsys_logging
260
+    turn_off_postgresql_logging
253 261
 fi
254 262
 
255 263
 if [ -d /etc/exim4 ]; then
@@ -295,5 +303,8 @@ fi
295 303
 if [ -d /etc/matrix ]; then
296 304
     systemctl restart matrix
297 305
 fi
306
+if [ -d /etc/postgresql ]; then
307
+    systemctl restart postgresql
308
+fi
298 309
 
299 310
 exit 0

+ 1
- 0
src/freedombone-upgrade Dosyayı Görüntüle

@@ -95,6 +95,7 @@ if [ -d "$PROJECT_DIR" ]; then
95 95
         fi
96 96
 
97 97
         #rebuild_exim_with_socks
98
+        torrc_migrate
98 99
         nodejs_upgrade
99 100
         apt-get -yq -t stretch-backports install certbot
100 101
         email_install_tls

+ 86
- 108
src/freedombone-utils-onion Dosyayı Görüntüle

@@ -31,6 +31,47 @@ TOR_MAX_TRAFFIC_PER_MONTH_GB=10
31 31
 
32 32
 USE_V2_ONION_ADDRESS=
33 33
 HIDDEN_SERVICE_PATH='/var/lib/tor/hidden_service_'
34
+ONION_SERVICES_FILE=/etc/torrc.d/${PROJECT_NAME}
35
+
36
+function torrc_migrate {
37
+    if [ -f $ONION_SERVICES_FILE ]; then
38
+        if grep -q "#%include /etc/torrc.d" /etc/tor/torrc; then
39
+            sed -i 's|#%include /etc/torrc.d|%include /etc/torrc.d|g' /etc/tor/torrc
40
+            systemctl restart tor
41
+        fi
42
+        return
43
+    fi
44
+    systemctl stop tor
45
+
46
+    mkdir /etc/torrc.d
47
+
48
+    grep "HiddenServiceDir\\|HiddenServiceVersion\\|HiddenServicePort" /etc/tor/torrc | grep -v "#HiddenServiceDir" >> $ONION_SERVICES_FILE
49
+
50
+    if ! grep "HiddenServiceVersion" $ONION_SERVICES_FILE; then
51
+        systemctl restart tor
52
+        return
53
+    fi
54
+
55
+    if grep -q "#%include /etc/torrc.d" /etc/tor/torrc; then
56
+        sed -i 's|#%include /etc/torrc.d|%include /etc/torrc.d|g' /etc/tor/torrc
57
+    else
58
+        echo "%include /etc/torrc.d" >> /etc/tor/torrc
59
+    fi
60
+
61
+    { echo 'DNSPort 5300';
62
+      echo 'DNSListenAddress 127.0.0.1';
63
+      echo 'AutomapHostsOnResolve 1'; } > /etc/torrc.d/dns
64
+
65
+    sed -i '/DNSPort 5300/d' /etc/tor/torrc
66
+    sed -i '/DNSListenAddress 127.0.0./d' /etc/tor/torrc
67
+    sed -i '/AutomapHostsOnResolve 1/d' /etc/tor/torrc
68
+
69
+    sed -i '/HiddenServiceDir/d' /etc/tor/torrc
70
+    sed -i '/HiddenServiceVersion/d' /etc/tor/torrc
71
+    sed -i '/HiddenServicePort/d' /etc/tor/torrc
72
+
73
+    systemctl restart tor
74
+}
34 75
 
35 76
 function add_email_hostname {
36 77
     extra_email_hostname="$1"
@@ -80,17 +121,17 @@ function remove_onion_service {
80 121
     nick="$3"
81 122
 
82 123
     if [ ${#nick} -gt 0 ]; then
83
-        sed -i "/stealth ${nick}/d" /etc/tor/torrc
124
+        sed -i "/stealth ${nick}/d" $ONION_SERVICES_FILE
84 125
     fi
85
-    sed -i "/hidden_service_${onion_service_name}/,+1 d" /etc/tor/torrc
86
-    sed -i "/hidden_service_${onion_service_name}_mobile/,+1 d" /etc/tor/torrc
87
-    sed -i "/127.0.0.1:${onion_service_port_to}/d" /etc/tor/torrc
126
+    sed -i "/hidden_service_${onion_service_name}/,+1 d" $ONION_SERVICES_FILE
127
+    sed -i "/hidden_service_${onion_service_name}_mobile/,+1 d" $ONION_SERVICES_FILE
128
+    sed -i "/127.0.0.1:${onion_service_port_to}/d" $ONION_SERVICES_FILE
88 129
     if [ "$3" ]; then
89
-        sed -i "/127.0.0.1:${3}/d" /etc/tor/torrc
130
+        sed -i "/127.0.0.1:${3}/d" $ONION_SERVICES_FILE
90 131
         if [ "$4" ]; then
91
-            sed -i "/127.0.0.1:${4}/d" /etc/tor/torrc
132
+            sed -i "/127.0.0.1:${4}/d" $ONION_SERVICES_FILE
92 133
             if [ "$5" ]; then
93
-                sed -i "/127.0.0.1:${5}/d" /etc/tor/torrc
134
+                sed -i "/127.0.0.1:${5}/d" $ONION_SERVICES_FILE
94 135
             fi
95 136
         fi
96 137
     fi
@@ -123,16 +164,16 @@ function add_onion_service {
123 164
         USE_V2_ONION_ADDRESS=
124 165
         exit 877367
125 166
     fi
126
-    if ! grep -q "hidden_service_${onion_service_name}" /etc/tor/torrc; then
127
-        echo "HiddenServiceDir ${HIDDEN_SERVICE_PATH}${onion_service_name}/" >> /etc/tor/torrc
167
+    if ! grep -q "hidden_service_${onion_service_name}" $ONION_SERVICES_FILE; then
168
+        echo "HiddenServiceDir ${HIDDEN_SERVICE_PATH}${onion_service_name}/" >> $ONION_SERVICES_FILE
128 169
         if [ ! $USE_V2_ONION_ADDRESS ]; then
129
-            echo 'HiddenServiceVersion 3' >> /etc/tor/torrc
170
+            echo 'HiddenServiceVersion 3' >> $ONION_SERVICES_FILE
130 171
         else
131
-            echo 'HiddenServiceVersion 2' >> /etc/tor/torrc
172
+            echo 'HiddenServiceVersion 2' >> $ONION_SERVICES_FILE
132 173
         fi
133
-        echo "HiddenServicePort ${onion_service_port_from} 127.0.0.1:${onion_service_port_to}" >> /etc/tor/torrc
174
+        echo "HiddenServicePort ${onion_service_port_from} 127.0.0.1:${onion_service_port_to}" >> $ONION_SERVICES_FILE
134 175
         if [ ${#onion_stealth_name} -gt 0 ]; then
135
-            echo "HiddenServiceAuthorizeClient stealth ${onion_stealth_name}" >> /etc/tor/torrc
176
+            echo "HiddenServiceAuthorizeClient stealth ${onion_stealth_name}" >> $ONION_SERVICES_FILE
136 177
         fi
137 178
     fi
138 179
 
@@ -287,44 +328,16 @@ function install_tor {
287 328
     # For torify
288 329
     apt-get -yq install torsocks
289 330
 
290
-    # turn off logging
291
-    sed -i 's|#Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
292
-    sed -i 's|Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
293
-
294
-    # Restrict traffic
295
-    sed -i "s|#AccountingMax.*|AccountingMax $TOR_MAX_TRAFFIC_PER_MONTH_GB GBytes|g" /etc/tor/torrc
296
-    sed -i "s|AccountingMax.*|AccountingMax $TOR_MAX_TRAFFIC_PER_MONTH_GB GBytes|g" /etc/tor/torrc
297
-
298
-    mark_completed "${FUNCNAME[0]}"
299
-}
300
-
301
-function resolve_dns_via_tor {
302
-    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
303
-        return
331
+    if [ ! -d /etc/torrc.d ]; then
332
+        mkdir /etc/torrc.d
304 333
     fi
305
-    if [[ $(is_completed "${FUNCNAME[0]}") == "1" ]]; then
306
-        return
307
-    fi
308
-    if [ ! -f /etc/tor/torrc ]; then
309
-        echo $'tor was not installed'
310
-        exit 52952
334
+    sed -i 's|#%include /etc/torrc.d|%include /etc/torrc.d|g' /etc/tor/torrc
335
+    if ! grep -q '%include /etc/torrc.d' /etc/tor/torrc; then
336
+        echo '%include /etc/torrc.d' >> /etc/tor/torrc
311 337
     fi
312 338
 
313
-    # resolve DNS via tor
314
-    if ! grep -q 'DNSPort 53' /etc/tor/torrc; then
315
-        { echo 'DNSPort 53';
316
-          echo 'AutomapHostsOnResolve 1';
317
-          echo 'AutomapHostsSuffixes .exit,.onion'; } >> /etc/tor/torrc
318
-        onion_update
319
-    fi
320
-
321
-    # don't change resolv.conf
322
-    sed -i 's|, domain-name-servers||g' /etc/dhcp/dhclient.conf
323
-
324
-    # point resolv.conf to tor
325
-    resolvconf=/etc/resolvconf/resolv.conf.d/head
326
-    echo 'nameserver 127.0.0.1:53' > $resolvconf
327
-    resolvconf -u
339
+    echo 'Log notice file /dev/null' > /etc/torrc.d/logging
340
+    echo "AccountingMax $TOR_MAX_TRAFFIC_PER_MONTH_GB GBytes" > /etc/torrc.d/maxtraffic
328 341
 
329 342
     mark_completed "${FUNCNAME[0]}"
330 343
 }
@@ -465,24 +478,14 @@ function tor_add_bridge {
465 478
 
466 479
     apt-get -yq install obfs4proxy
467 480
 
468
-    if grep -q "ClientTransportPlugin" /etc/tor/torrc; then
469
-        sed -i 's|#ClientTransportPlugin|ClientTransportPlugin|g' /etc/tor/torrc
470
-        sed -i 's|# ClientTransportPlugin|ClientTransportPlugin|g' /etc/tor/torrc
471
-        sed -i 's|ClientTransportPlugin.*|ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed|g' /etc/tor/torrc
472
-    else
473
-        echo 'ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed' >> /etc/tor/torrc
474
-    fi
475
-    if grep -q "UseBridges" /etc/tor/torrc; then
476
-        sed -i 's|#UseBridges|UseBridges|g' /etc/tor/torrc
477
-        sed -i 's|# UseBridges|UseBridges|g' /etc/tor/torrc
478
-        sed -i 's|UseBridges.*|UseBridges 1|g' /etc/tor/torrc
481
+    if [ ! -f /etc/torrc.d/bridges ]; then
482
+        { echo 'ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed';
483
+          echo 'UseBridges 1';
484
+          echo "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}"; } > /etc/torrc.d/bridges
479 485
     else
480
-        echo 'UseBridges 1' >> /etc/tor/torrc
481
-    fi
482
-
483
-    bridge_str="Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}"
484
-    if ! grep -q "${bridge_str}" /etc/tor/torrc; then
485
-        sed -i "/UseBridges/a ${bridge_str}" >> /etc/tor/torrc
486
+        if ! grep -q "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}" /etc/torrc.d/bridges; then
487
+            echo "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}" >> /etc/torrc.d/bridges
488
+        fi
486 489
     fi
487 490
 
488 491
     systemctl restart tor
@@ -495,24 +498,19 @@ function tor_remove_bridge {
495 498
     if [[ "$bridge_ip_address" == *"."* ]]; then
496 499
         bridge_str="Bridge $bridge_type ${bridge_ip_address}"
497 500
     else
498
-        if grep -q " ${bridge_ip_address}" /etc/tor/torrc; then
501
+        if grep -q " ${bridge_ip_address}" /etc/torrc.d/bridges; then
499 502
             bridge_str=" ${bridge_ip_address}"
500 503
         else
501 504
             return
502 505
         fi
503 506
     fi
504
-    if grep -q "${bridge_str}" /etc/tor/torrc; then
505
-        sed -i "/${bridge_str}/d" /etc/tor/torrc
507
+    if grep -q "${bridge_str}" /etc/torrc.d/bridges; then
508
+        sed -i "/${bridge_str}/d" /etc/torrc.d/bridges
506 509
     fi
507 510
 
508
-    # If there are no bridges remaining then remove UseBridges
509
-    if ! grep -q "Bridge " /etc/tor/torrc; then
510
-        if ! grep -q "#UseBridges" /etc/tor/torrc; then
511
-            sed -i 's|UseBridges|#UseBridges|g' /etc/tor/torrc
512
-        fi
513
-        if ! grep -q "#ClientTransportPlugin" /etc/tor/torrc; then
514
-            sed -i 's|ClientTransportPlugin|#ClientTransportPlugin|g' /etc/tor/torrc
515
-        fi
511
+    # If there are no bridges remaining then remove the file
512
+    if ! grep -q "Bridge " /etc/torrc.d/bridges; then
513
+        rm /etc/torrc.d/bridges
516 514
     fi
517 515
 
518 516
     systemctl restart tor
@@ -521,6 +519,8 @@ function tor_remove_bridge {
521 519
 function tor_create_bridge_relay {
522 520
     read_config_param 'TOR_BRIDGE_PORT'
523 521
     read_config_param 'TOR_BRIDGE_NICKNAME'
522
+    read_config_param 'MY_EMAIL_ADDRESS'
523
+
524 524
     if [ ! "$TOR_BRIDGE_PORT" ]; then
525 525
         return
526 526
     fi
@@ -533,47 +533,25 @@ function tor_create_bridge_relay {
533 533
 
534 534
     apt-get -yq install obfs4proxy
535 535
 
536
-    sed -i 's|#BridgeRelay.*|BridgeRelay 1|g' /etc/tor/torrc
537
-    sed -i 's|BridgeRelay.*|BridgeRelay 1|g' /etc/tor/torrc
538
-    sed -i 's|#ServerTransportPlugin.*|ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy|g' /etc/tor/torrc
539
-    sed -i 's|ServerTransportPlugin.*|ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy|g' /etc/tor/torrc
540
-
541
-    if ! grep -q 'ExtORPort ' /etc/tor/torrc; then
542
-        echo "ExtORPort $TOR_BRIDGE_PORT" >> /etc/tor/torrc
543
-    else
544
-        sed -i "s|#ExtORPort .*|ExtORPort $TOR_BRIDGE_PORT|g" /etc/tor/torrc
545
-        sed -i "s|ExtORPort .*|ExtORPort $TOR_BRIDGE_PORT|g" /etc/tor/torrc
546
-    fi
536
+    { echo 'BridgeRelay 1';
537
+      echo 'ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy';
538
+      echo "ExtORPort $TOR_BRIDGE_PORT";
539
+      echo "ContactInfo $MY_EMAIL_ADDRESS";
540
+      echo "Nickname $TOR_BRIDGE_NICKNAME"; } > /etc/torrc.d/bridgerelay
547 541
 
548
-    read_config_param 'MY_EMAIL_ADDRESS'
549
-
550
-    sed -i "s|#ContactInfo.*|ContactInfo $MY_EMAIL_ADDRESS|g" /etc/tor/torrc
551
-    if [ "$TOR_BRIDGE_NICKNAME" ]; then
552
-        sed -i "s|#Nickname.*|Nickname $TOR_BRIDGE_NICKNAME|g" /etc/tor/torrc
553
-        sed -i "s|Nickname.*|Nickname $TOR_BRIDGE_NICKNAME|g" /etc/tor/torrc
554
-    fi
555 542
     firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
543
+
556 544
     systemctl restart tor
557 545
 }
558 546
 
559 547
 function tor_remove_bridge_relay {
560
-    if ! grep -q '#BridgeRelay ' /etc/tor/torrc; then
561
-        sed -i 's|BridgeRelay |#BridgeRelay |g' /etc/tor/torrc
562
-    fi
563
-    if ! grep -q '#ServerTransportPlugin ' /etc/tor/torrc; then
564
-        sed -i 's|ServerTransportPlugin |#ServerTransportPlugin |g' /etc/tor/torrc
565
-    fi
566
-    if ! grep -q '#ExtORPort ' /etc/tor/torrc; then
567
-        sed -i 's|ExtORPort |#ExtORPort |g' /etc/tor/torrc
568
-    fi
569
-    if ! grep -q '#ContactInfo ' /etc/tor/torrc; then
570
-        sed -i "s|ContactInfo |#ContactInfo |g" /etc/tor/torrc
571
-    fi
572
-    if ! grep -q '#Nickname ' /etc/tor/torrc; then
573
-        sed -i "s|Nickname |#Nickname |g" /etc/tor/torrc
548
+    if [ -f /etc/torrc.d/bridgerelay ]; then
549
+        rm /etc/torrc.d/bridgerelay
574 550
     fi
551
+
575 552
     read_config_param 'TOR_BRIDGE_PORT'
576 553
     firewall_remove "$TOR_BRIDGE_PORT" tcp
554
+
577 555
     systemctl restart tor
578 556
 }
579 557
 

+ 20
- 0
src/freedombone-utils-postgresql Dosyayı Görüntüle

@@ -29,6 +29,26 @@
29 29
 # Set this when calling backup and restore commands
30 30
 USE_POSTGRESQL=
31 31
 POSTGRESQL_PACKAGES='postgresql-9.6 postgresql-contrib-9.6 postgresql-client'
32
+POSTGRESQL_VERSION=9.6
33
+
34
+function turn_off_postgresql_logging {
35
+    if [ ! -f /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf ]; then
36
+        return
37
+    fi
38
+    sed -i 's|#log_destination|log_destination|g' /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf
39
+    sed -i "s|log_destination.*|log_destination = 'syslog'|g" /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf
40
+    if [ -d /var/log/postgresql ]; then
41
+        $REMOVE_FILES_COMMAND /var/log/postgresql/*
42
+    fi
43
+}
44
+
45
+function turn_on_postgresql_logging {
46
+    if [ ! -f /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf ]; then
47
+        return
48
+    fi
49
+    sed -i 's|log_destination|#log_destination|g' /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf
50
+    sed -i "s|log_destination.*|log_destination = 'stderr'|g" /etc/postgresql/$POSTGRESQL_VERSION/main/postgresql.conf
51
+}
32 52
 
33 53
 function store_original_postgresql_password {
34 54
     if [ ! -f /root/.postgresqloriginal ]; then

+ 0
- 3
src/freedombone-utils-setup Dosyayı Görüntüle

@@ -903,9 +903,6 @@ function setup_utils {
903 903
     function_check install_tor
904 904
     install_tor
905 905
 
906
-    #function_check resolve_dns_via_tor
907
-    #resolve_dns_via_tor
908
-
909 906
     function_check install_command_line_browser
910 907
     install_command_line_browser
911 908
 

+ 45
- 135
website/EN/app_pleroma.html Dosyayı Görüntüle

@@ -3,33 +3,26 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2018-04-14 Sat 22:26 -->
7
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
-<meta name="viewport" content="width=device-width, initial-scale=1" />
9
-<title>&lrm;</title>
10
-<meta name="generator" content="Org mode" />
11
-<meta name="author" content="Bob Mottram" />
12
-<meta name="description" content="How to use Pleroma"
6
+<title></title>
7
+<!-- 2018-04-18 Wed 15:48 -->
8
+<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
+<meta  name="generator" content="Org-mode" />
10
+<meta  name="author" content="Bob Mottram" />
11
+<meta  name="description" content="How to use Pleroma"
13 12
  />
14
-<meta name="keywords" content="freedombone, pleroma" />
13
+<meta  name="keywords" content="freedombone, pleroma" />
15 14
 <style type="text/css">
16 15
  <!--/*--><![CDATA[/*><!--*/
17
-  .title  { text-align: center;
18
-             margin-bottom: .2em; }
19
-  .subtitle { text-align: center;
20
-              font-size: medium;
21
-              font-weight: bold;
22
-              margin-top:0; }
16
+  .title  { text-align: center; }
23 17
   .todo   { font-family: monospace; color: red; }
24
-  .done   { font-family: monospace; color: green; }
25
-  .priority { font-family: monospace; color: orange; }
18
+  .done   { color: green; }
26 19
   .tag    { background-color: #eee; font-family: monospace;
27 20
             padding: 2px; font-size: 80%; font-weight: normal; }
28 21
   .timestamp { color: #bebebe; }
29 22
   .timestamp-kwd { color: #5f9ea0; }
30
-  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
-  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
-  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
23
+  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
24
+  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
25
+  .center { margin-left: auto; margin-right: auto; text-align: center; }
33 26
   .underline { text-decoration: underline; }
34 27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35 28
   p.verse { margin-left: 3%; }
@@ -56,111 +49,27 @@
56 49
     border: 1px solid black;
57 50
   }
58 51
   pre.src:hover:before { display: inline;}
59
-  /* Languages per Org manual */
60
-  pre.src-asymptote:before { content: 'Asymptote'; }
61
-  pre.src-awk:before { content: 'Awk'; }
62
-  pre.src-C:before { content: 'C'; }
63
-  /* pre.src-C++ doesn't work in CSS */
64
-  pre.src-clojure:before { content: 'Clojure'; }
65
-  pre.src-css:before { content: 'CSS'; }
66
-  pre.src-D:before { content: 'D'; }
67
-  pre.src-ditaa:before { content: 'ditaa'; }
68
-  pre.src-dot:before { content: 'Graphviz'; }
69
-  pre.src-calc:before { content: 'Emacs Calc'; }
52
+  pre.src-sh:before    { content: 'sh'; }
53
+  pre.src-bash:before  { content: 'sh'; }
70 54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
71
-  pre.src-fortran:before { content: 'Fortran'; }
72
-  pre.src-gnuplot:before { content: 'gnuplot'; }
73
-  pre.src-haskell:before { content: 'Haskell'; }
74
-  pre.src-hledger:before { content: 'hledger'; }
75
-  pre.src-java:before { content: 'Java'; }
76
-  pre.src-js:before { content: 'Javascript'; }
77
-  pre.src-latex:before { content: 'LaTeX'; }
78
-  pre.src-ledger:before { content: 'Ledger'; }
79
-  pre.src-lisp:before { content: 'Lisp'; }
80
-  pre.src-lilypond:before { content: 'Lilypond'; }
81
-  pre.src-lua:before { content: 'Lua'; }
82
-  pre.src-matlab:before { content: 'MATLAB'; }
83
-  pre.src-mscgen:before { content: 'Mscgen'; }
84
-  pre.src-ocaml:before { content: 'Objective Caml'; }
85
-  pre.src-octave:before { content: 'Octave'; }
86
-  pre.src-org:before { content: 'Org mode'; }
87
-  pre.src-oz:before { content: 'OZ'; }
88
-  pre.src-plantuml:before { content: 'Plantuml'; }
89
-  pre.src-processing:before { content: 'Processing.js'; }
90
-  pre.src-python:before { content: 'Python'; }
91
-  pre.src-R:before { content: 'R'; }
92
-  pre.src-ruby:before { content: 'Ruby'; }
93
-  pre.src-sass:before { content: 'Sass'; }
94
-  pre.src-scheme:before { content: 'Scheme'; }
95
-  pre.src-screen:before { content: 'Gnu Screen'; }
96
-  pre.src-sed:before { content: 'Sed'; }
97
-  pre.src-sh:before { content: 'shell'; }
98
-  pre.src-sql:before { content: 'SQL'; }
99
-  pre.src-sqlite:before { content: 'SQLite'; }
100
-  /* additional languages in org.el's org-babel-load-languages alist */
101
-  pre.src-forth:before { content: 'Forth'; }
102
-  pre.src-io:before { content: 'IO'; }
103
-  pre.src-J:before { content: 'J'; }
104
-  pre.src-makefile:before { content: 'Makefile'; }
105
-  pre.src-maxima:before { content: 'Maxima'; }
106
-  pre.src-perl:before { content: 'Perl'; }
107
-  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
-  pre.src-scala:before { content: 'Scala'; }
109
-  pre.src-shell:before { content: 'Shell Script'; }
110
-  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
-  /* additional language identifiers per "defun org-babel-execute"
112
-       in ob-*.el */
113
-  pre.src-cpp:before  { content: 'C++'; }
114
-  pre.src-abc:before  { content: 'ABC'; }
115
-  pre.src-coq:before  { content: 'Coq'; }
116
-  pre.src-groovy:before  { content: 'Groovy'; }
117
-  /* additional language identifiers from org-babel-shell-names in
118
-     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
-     the execution function name together. */
120
-  pre.src-bash:before  { content: 'bash'; }
121
-  pre.src-csh:before  { content: 'csh'; }
122
-  pre.src-ash:before  { content: 'ash'; }
123
-  pre.src-dash:before  { content: 'dash'; }
124
-  pre.src-ksh:before  { content: 'ksh'; }
125
-  pre.src-mksh:before  { content: 'mksh'; }
126
-  pre.src-posh:before  { content: 'posh'; }
127
-  /* Additional Emacs modes also supported by the LaTeX listings package */
128
-  pre.src-ada:before { content: 'Ada'; }
129
-  pre.src-asm:before { content: 'Assembler'; }
130
-  pre.src-caml:before { content: 'Caml'; }
131
-  pre.src-delphi:before { content: 'Delphi'; }
132
-  pre.src-html:before { content: 'HTML'; }
133
-  pre.src-idl:before { content: 'IDL'; }
134
-  pre.src-mercury:before { content: 'Mercury'; }
135
-  pre.src-metapost:before { content: 'MetaPost'; }
136
-  pre.src-modula-2:before { content: 'Modula-2'; }
137
-  pre.src-pascal:before { content: 'Pascal'; }
138
-  pre.src-ps:before { content: 'PostScript'; }
139
-  pre.src-prolog:before { content: 'Prolog'; }
140
-  pre.src-simula:before { content: 'Simula'; }
141
-  pre.src-tcl:before { content: 'tcl'; }
142
-  pre.src-tex:before { content: 'TeX'; }
143
-  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
-  pre.src-verilog:before { content: 'Verilog'; }
145
-  pre.src-vhdl:before { content: 'VHDL'; }
146
-  pre.src-xml:before { content: 'XML'; }
147
-  pre.src-nxml:before { content: 'XML'; }
148
-  /* add a generic configuration mode; LaTeX export needs an additional
149
-     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
-  pre.src-conf:before { content: 'Configuration File'; }
55
+  pre.src-R:before     { content: 'R'; }
56
+  pre.src-perl:before  { content: 'Perl'; }
57
+  pre.src-java:before  { content: 'Java'; }
58
+  pre.src-sql:before   { content: 'SQL'; }
151 59
 
152 60
   table { border-collapse:collapse; }
153 61
   caption.t-above { caption-side: top; }
154 62
   caption.t-bottom { caption-side: bottom; }
155 63
   td, th { vertical-align:top;  }
156
-  th.org-right  { text-align: center;  }
157
-  th.org-left   { text-align: center;   }
158
-  th.org-center { text-align: center; }
159
-  td.org-right  { text-align: right;  }
160
-  td.org-left   { text-align: left;   }
161
-  td.org-center { text-align: center; }
64
+  th.right  { text-align: center;  }
65
+  th.left   { text-align: center;   }
66
+  th.center { text-align: center; }
67
+  td.right  { text-align: right;  }
68
+  td.left   { text-align: left;   }
69
+  td.center { text-align: center; }
162 70
   dt { font-weight: bold; }
163
-  .footpara { display: inline; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
164 73
   .footdef  { margin-bottom: 1em; }
165 74
   .figure { padding: 1em; }
166 75
   .figure p { text-align: center; }
@@ -180,7 +89,6 @@
180 89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
181 90
   .org-info-js_search-highlight
182 91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
-  .org-svg { width: 90%; }
184 92
   /*]]>*/-->
185 93
 </style>
186 94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
@@ -189,7 +97,7 @@
189 97
 @licstart  The following is the entire license notice for the
190 98
 JavaScript code in this tag.
191 99
 
192
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
100
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
193 101
 
194 102
 The JavaScript code in this tag is free software: you can
195 103
 redistribute it and/or modify it under the terms of the GNU
@@ -236,6 +144,7 @@ for the JavaScript code in this tag.
236 144
 <a name="top" id="top"></a>
237 145
 </div>
238 146
 <div id="content">
147
+<h1 class="title"></h1>
239 148
 
240 149
 <div class="figure">
241 150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
@@ -262,14 +171,15 @@ Some general advice about life in the fediverse <a href="./fediverse.html">can b
262 171
 </p>
263 172
 </div>
264 173
 
265
-<div id="outline-container-org0daf1b1" class="outline-2">
266
-<h2 id="org0daf1b1">Installation</h2>
267
-<div class="outline-text-2" id="text-org0daf1b1">
174
+<div id="outline-container-sec-1" class="outline-2">
175
+<h2 id="sec-1">Installation</h2>
176
+<div class="outline-text-2" id="text-1">
268 177
 <p>
269 178
 Log into your system with:
270 179
 </p>
271 180
 
272 181
 <div class="org-src-container">
182
+
273 183
 <pre class="src src-bash">ssh myusername@mydomain -p 2222
274 184
 </pre>
275 185
 </div>
@@ -284,11 +194,11 @@ Select <b>Add/Remove Apps</b> then <b>pleroma</b>. You will then be asked for a
284 194
 </div>
285 195
 </div>
286 196
 
287
-<div id="outline-container-org79fb756" class="outline-2">
288
-<h2 id="org79fb756">Initial setup</h2>
289
-<div class="outline-text-2" id="text-org79fb756">
197
+<div id="outline-container-sec-2" class="outline-2">
198
+<h2 id="sec-2">Initial setup</h2>
199
+<div class="outline-text-2" id="text-2">
290 200
 <p>
291
-The first thing you'll need to do is register a new account. You can set your profile details and profile image by selecting the small settings icon to the right of your name.
201
+The first thing you'll need to do is to obtain your login details. From the <b>administrator control panel</b> select <b>security settings</b> then <b>passwords</b> then <b>pleroma</b>. This gives the password you will need to log in, together with the username you gave during installation of the Freedombone system.
292 202
 </p>
293 203
 
294 204
 <p>
@@ -297,9 +207,9 @@ Once you have done that then you can disable further registrations from the <b>A
297 207
 </div>
298 208
 </div>
299 209
 
300
-<div id="outline-container-org260dfa9" class="outline-2">
301
-<h2 id="org260dfa9">Mastodon user interface</h2>
302
-<div class="outline-text-2" id="text-org260dfa9">
210
+<div id="outline-container-sec-3" class="outline-2">
211
+<h2 id="sec-3">Mastodon user interface</h2>
212
+<div class="outline-text-2" id="text-3">
303 213
 <p>
304 214
 If you prefer a Tweetdeck-style user interface, similar to Mastodon, then once you have registered an account navigate to <b>/yourpleromadomainname/web</b> and log in.
305 215
 </p>
@@ -312,9 +222,9 @@ If you prefer a Tweetdeck-style user interface, similar to Mastodon, then once y
312 222
 </div>
313 223
 </div>
314 224
 
315
-<div id="outline-container-org2c42cb3" class="outline-2">
316
-<h2 id="org2c42cb3">Mobile apps</h2>
317
-<div class="outline-text-2" id="text-org2c42cb3">
225
+<div id="outline-container-sec-4" class="outline-2">
226
+<h2 id="sec-4">Mobile apps</h2>
227
+<div class="outline-text-2" id="text-4">
318 228
 <p>
319 229
 It's also possible to use Mastodon apps together with Pleroma, such as Tusky, since it supports the Mastodon API. You may need to install <b>IcecatMobile</b> and set it as your default browser (under <b>Settings/Apps/Menu</b>) in order for the initial oauth registration process to work.
320 230
 </p>
@@ -327,9 +237,9 @@ It's also possible to use Mastodon apps together with Pleroma, such as Tusky, si
327 237
 </div>
328 238
 </div>
329 239
 
330
-<div id="outline-container-org07c16bd" class="outline-2">
331
-<h2 id="org07c16bd">Blocking controls</h2>
332
-<div class="outline-text-2" id="text-org07c16bd">
240
+<div id="outline-container-sec-5" class="outline-2">
241
+<h2 id="sec-5">Blocking controls</h2>
242
+<div class="outline-text-2" id="text-5">
333 243
 
334 244
 <div class="figure">
335 245
 <p><img src="images/controlpanel/control_panel_blocking.jpg" alt="control_panel_blocking.jpg" width="80%" align="center" />