浏览代码

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

Bob Mottram 7 年前
父节点
当前提交
07e91fa26c

+ 1
- 1
doc/EN/app_pleroma.org 查看文件

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.
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
 * Initial setup
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
 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.
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 查看文件

655
         echo $'No Tor installation found. Gogs onion site cannot be configured.'
655
         echo $'No Tor installation found. Gogs onion site cannot be configured.'
656
         exit 877367
656
         exit 877367
657
     fi
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
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_gogs/';
659
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_gogs/';
660
           echo 'HiddenServiceVersion 3';
660
           echo 'HiddenServiceVersion 3';
661
           echo "HiddenServicePort 80 127.0.0.1:${GIT_ONION_PORT}";
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
         echo $'Added onion site for Gogs'
663
         echo $'Added onion site for Gogs'
664
     fi
664
     fi
665
 
665
 

+ 2
- 2
src/freedombone-app-keyserver 查看文件

656
 
656
 
657
     chown debian-sks: $sksconf_file
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
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_sks/';
660
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_sks/';
661
           echo 'HiddenServiceVersion 3';
661
           echo 'HiddenServiceVersion 3';
662
           echo "HiddenServicePort 11370 127.0.0.1:11370";
662
           echo "HiddenServicePort 11370 127.0.0.1:11370";
663
           echo "HiddenServicePort 11373 127.0.0.1:11371";
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
         echo $'Added onion site for sks'
665
         echo $'Added onion site for sks'
666
     fi
666
     fi
667
 
667
 

+ 1
- 1
src/freedombone-app-matrix 查看文件

702
 
702
 
703
     #MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
703
     #MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
704
     add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT}
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
     systemctl restart tor
706
     systemctl restart tor
707
 
707
 
708
     if [ ! "${MATRIX_PASSWORD}" ]; then
708
     if [ ! "${MATRIX_PASSWORD}" ]; then

+ 3
- 3
src/freedombone-app-xmpp 查看文件

608
 
608
 
609
     function_check remove_onion_service
609
     function_check remove_onion_service
610
     remove_onion_service xmpp 5222 5223 5269
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
     apt-mark -q unhold prosody
613
     apt-mark -q unhold prosody
614
     apt-get -yq remove --purge prosody
614
     apt-get -yq remove --purge prosody
1079
         echo $'No Tor installation found. xmpp onion site cannot be configured.'
1079
         echo $'No Tor installation found. xmpp onion site cannot be configured.'
1080
         exit 877367
1080
         exit 877367
1081
     fi
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
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/';
1083
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/';
1084
           echo 'HiddenServiceVersion 2';
1084
           echo 'HiddenServiceVersion 2';
1085
           echo "HiddenServicePort 5222 127.0.0.1:5222";
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
         echo $'Added onion site for xmpp chat'
1087
         echo $'Added onion site for xmpp chat'
1088
     fi
1088
     fi
1089
 
1089
 

+ 5
- 22
src/freedombone-base-email 查看文件

224
 
224
 
225
 function create_email_onion_address {
225
 function create_email_onion_address {
226
     email_hostname='/var/lib/tor/hidden_service_email/hostname'
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
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_email/';
228
         { echo 'HiddenServiceDir /var/lib/tor/hidden_service_email/';
229
           echo 'HiddenServiceVersion 3';
229
           echo 'HiddenServiceVersion 3';
230
           echo 'HiddenServicePort 25 127.0.0.1:25';
230
           echo 'HiddenServicePort 25 127.0.0.1:25';
231
           echo 'HiddenServicePort 587 127.0.0.1:587';
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
         function_check onion_update
234
         function_check onion_update
235
         onion_update
235
         onion_update
320
       echo "  hosts_avoid_tls = *";
320
       echo "  hosts_avoid_tls = *";
321
       echo "  socks_proxy = 127.0.0.1 port=9050"; } > /etc/exim4/conf.d/transport/050_exim4-config_onion_relay
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
     update-exim4.conf.template -r
327
     update-exim4.conf.template -r
345
     update-exim4.conf
328
     update-exim4.conf

+ 0
- 14
src/freedombone-controlpanel 查看文件

362
     echo ''
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
 function show_ssh_public_key {
365
 function show_ssh_public_key {
379
     echo $'SSH Public Keys'
366
     echo $'SSH Public Keys'
380
     echo '==============='
367
     echo '==============='
391
     #clear
378
     #clear
392
     #echo "==== ${PROJECT_NAME} version ${VERSION} ($DEBIAN_VERSION) ===="
379
     #echo "==== ${PROJECT_NAME} version ${VERSION} ($DEBIAN_VERSION) ===="
393
     #echo ''
380
     #echo ''
394
-    #show_ip_addresses
395
     #show_ssh_public_key
381
     #show_ssh_public_key
396
     show_domains
382
     show_domains
397
     #show_users
383
     #show_users

+ 16
- 5
src/freedombone-logging 查看文件

92
 
92
 
93
 function turn_off_rsys_logging {
93
 function turn_off_rsys_logging {
94
     if ! grep -q '/var/log/auth.log' /etc/rsyslog.conf; then
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
     fi
98
     fi
97
     sed -i 's|mail,news.none.*|mail,news.none      /dev/null|g' /etc/rsyslog.conf
99
     sed -i 's|mail,news.none.*|mail,news.none      /dev/null|g' /etc/rsyslog.conf
98
     sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /dev/null|g' /etc/rsyslog.conf
100
     sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /dev/null|g' /etc/rsyslog.conf
102
     sed -i 's|daemon.\*.*|daemon.\*              /dev/null|g' /etc/rsyslog.conf
104
     sed -i 's|daemon.\*.*|daemon.\*              /dev/null|g' /etc/rsyslog.conf
103
     sed -i 's|mail.\*.*|mail.\*              /dev/null|g' /etc/rsyslog.conf
105
     sed -i 's|mail.\*.*|mail.\*              /dev/null|g' /etc/rsyslog.conf
104
     sed -i 's|user.\*.*|user.\*              /dev/null|g' /etc/rsyslog.conf
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
     sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
108
     sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
106
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      /dev/null|g' /etc/rsyslog.conf
109
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      /dev/null|g' /etc/rsyslog.conf
107
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
110
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
114
     $REMOVE_FILES_COMMAND /var/log/daemon.*
117
     $REMOVE_FILES_COMMAND /var/log/daemon.*
115
     $REMOVE_FILES_COMMAND /var/log/user.*
118
     $REMOVE_FILES_COMMAND /var/log/user.*
116
     $REMOVE_FILES_COMMAND /var/log/messages*
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
 function turn_on_rsys_logging {
126
 function turn_on_rsys_logging {
128
     sed -i 's|daemon.\*.*|daemon.\*              -/var/log/daemon.log|g' /etc/rsyslog.conf
135
     sed -i 's|daemon.\*.*|daemon.\*              -/var/log/daemon.log|g' /etc/rsyslog.conf
129
     sed -i 's|mail.\*.*|mail.\*              -/var/log/mail.log|g' /etc/rsyslog.conf
136
     sed -i 's|mail.\*.*|mail.\*              -/var/log/mail.log|g' /etc/rsyslog.conf
130
     sed -i 's|user.\*.*|user.\*              -/var/log/user.log|g' /etc/rsyslog.conf
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
     sed -i 's|news.none;mail.none.*|news.none;mail.none -/var/log/debug|g' /etc/rsyslog.conf
139
     sed -i 's|news.none;mail.none.*|news.none;mail.none -/var/log/debug|g' /etc/rsyslog.conf
132
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      -/var/log/syslog|g' /etc/rsyslog.conf
140
     sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      -/var/log/syslog|g' /etc/rsyslog.conf
133
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
141
     sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
150
             touch /var/log/tor/notices.log
158
             touch /var/log/tor/notices.log
151
             chown debian-tor:adm /var/log/tor/notices.log
159
             chown debian-tor:adm /var/log/tor/notices.log
152
         fi
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
     fi
162
     fi
156
     if [ -f /etc/php/7.0/fpm/php-fpm.conf ]; then
163
     if [ -f /etc/php/7.0/fpm/php-fpm.conf ]; then
157
         sed -i 's|error_log =.*|error_log = /var/log/php-fpm.log|g' /etc/php/7.0/fpm/php-fpm.conf
164
         sed -i 's|error_log =.*|error_log = /var/log/php-fpm.log|g' /etc/php/7.0/fpm/php-fpm.conf
193
         fi
200
         fi
194
     fi
201
     fi
195
     turn_on_rsys_logging
202
     turn_on_rsys_logging
203
+    turn_on_postgresql_logging
196
 else
204
 else
197
     turn_logging_off
205
     turn_logging_off
198
 
206
 
199
     if [ -d /etc/tor ]; then
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
         rm /var/log/tor/*
209
         rm /var/log/tor/*
203
     fi
210
     fi
204
     if [ -d /var/log/radicale ]; then
211
     if [ -d /var/log/radicale ]; then
250
         fi
257
         fi
251
     fi
258
     fi
252
     turn_off_rsys_logging
259
     turn_off_rsys_logging
260
+    turn_off_postgresql_logging
253
 fi
261
 fi
254
 
262
 
255
 if [ -d /etc/exim4 ]; then
263
 if [ -d /etc/exim4 ]; then
295
 if [ -d /etc/matrix ]; then
303
 if [ -d /etc/matrix ]; then
296
     systemctl restart matrix
304
     systemctl restart matrix
297
 fi
305
 fi
306
+if [ -d /etc/postgresql ]; then
307
+    systemctl restart postgresql
308
+fi
298
 
309
 
299
 exit 0
310
 exit 0

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

95
         fi
95
         fi
96
 
96
 
97
         #rebuild_exim_with_socks
97
         #rebuild_exim_with_socks
98
+        torrc_migrate
98
         nodejs_upgrade
99
         nodejs_upgrade
99
         apt-get -yq -t stretch-backports install certbot
100
         apt-get -yq -t stretch-backports install certbot
100
         email_install_tls
101
         email_install_tls

+ 86
- 108
src/freedombone-utils-onion 查看文件

31
 
31
 
32
 USE_V2_ONION_ADDRESS=
32
 USE_V2_ONION_ADDRESS=
33
 HIDDEN_SERVICE_PATH='/var/lib/tor/hidden_service_'
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
 function add_email_hostname {
76
 function add_email_hostname {
36
     extra_email_hostname="$1"
77
     extra_email_hostname="$1"
80
     nick="$3"
121
     nick="$3"
81
 
122
 
82
     if [ ${#nick} -gt 0 ]; then
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
     fi
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
     if [ "$3" ]; then
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
         if [ "$4" ]; then
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
             if [ "$5" ]; then
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
             fi
135
             fi
95
         fi
136
         fi
96
     fi
137
     fi
123
         USE_V2_ONION_ADDRESS=
164
         USE_V2_ONION_ADDRESS=
124
         exit 877367
165
         exit 877367
125
     fi
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
         if [ ! $USE_V2_ONION_ADDRESS ]; then
169
         if [ ! $USE_V2_ONION_ADDRESS ]; then
129
-            echo 'HiddenServiceVersion 3' >> /etc/tor/torrc
170
+            echo 'HiddenServiceVersion 3' >> $ONION_SERVICES_FILE
130
         else
171
         else
131
-            echo 'HiddenServiceVersion 2' >> /etc/tor/torrc
172
+            echo 'HiddenServiceVersion 2' >> $ONION_SERVICES_FILE
132
         fi
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
         if [ ${#onion_stealth_name} -gt 0 ]; then
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
         fi
177
         fi
137
     fi
178
     fi
138
 
179
 
287
     # For torify
328
     # For torify
288
     apt-get -yq install torsocks
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
     fi
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
     fi
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
     mark_completed "${FUNCNAME[0]}"
342
     mark_completed "${FUNCNAME[0]}"
330
 }
343
 }
465
 
478
 
466
     apt-get -yq install obfs4proxy
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
     else
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
     fi
489
     fi
487
 
490
 
488
     systemctl restart tor
491
     systemctl restart tor
495
     if [[ "$bridge_ip_address" == *"."* ]]; then
498
     if [[ "$bridge_ip_address" == *"."* ]]; then
496
         bridge_str="Bridge $bridge_type ${bridge_ip_address}"
499
         bridge_str="Bridge $bridge_type ${bridge_ip_address}"
497
     else
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
             bridge_str=" ${bridge_ip_address}"
502
             bridge_str=" ${bridge_ip_address}"
500
         else
503
         else
501
             return
504
             return
502
         fi
505
         fi
503
     fi
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
     fi
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
     fi
514
     fi
517
 
515
 
518
     systemctl restart tor
516
     systemctl restart tor
521
 function tor_create_bridge_relay {
519
 function tor_create_bridge_relay {
522
     read_config_param 'TOR_BRIDGE_PORT'
520
     read_config_param 'TOR_BRIDGE_PORT'
523
     read_config_param 'TOR_BRIDGE_NICKNAME'
521
     read_config_param 'TOR_BRIDGE_NICKNAME'
522
+    read_config_param 'MY_EMAIL_ADDRESS'
523
+
524
     if [ ! "$TOR_BRIDGE_PORT" ]; then
524
     if [ ! "$TOR_BRIDGE_PORT" ]; then
525
         return
525
         return
526
     fi
526
     fi
533
 
533
 
534
     apt-get -yq install obfs4proxy
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
     firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
542
     firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
543
+
556
     systemctl restart tor
544
     systemctl restart tor
557
 }
545
 }
558
 
546
 
559
 function tor_remove_bridge_relay {
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
     fi
550
     fi
551
+
575
     read_config_param 'TOR_BRIDGE_PORT'
552
     read_config_param 'TOR_BRIDGE_PORT'
576
     firewall_remove "$TOR_BRIDGE_PORT" tcp
553
     firewall_remove "$TOR_BRIDGE_PORT" tcp
554
+
577
     systemctl restart tor
555
     systemctl restart tor
578
 }
556
 }
579
 
557
 

+ 20
- 0
src/freedombone-utils-postgresql 查看文件

29
 # Set this when calling backup and restore commands
29
 # Set this when calling backup and restore commands
30
 USE_POSTGRESQL=
30
 USE_POSTGRESQL=
31
 POSTGRESQL_PACKAGES='postgresql-9.6 postgresql-contrib-9.6 postgresql-client'
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
 function store_original_postgresql_password {
53
 function store_original_postgresql_password {
34
     if [ ! -f /root/.postgresqloriginal ]; then
54
     if [ ! -f /root/.postgresqloriginal ]; then

+ 0
- 3
src/freedombone-utils-setup 查看文件

903
     function_check install_tor
903
     function_check install_tor
904
     install_tor
904
     install_tor
905
 
905
 
906
-    #function_check resolve_dns_via_tor
907
-    #resolve_dns_via_tor
908
-
909
     function_check install_command_line_browser
906
     function_check install_command_line_browser
910
     install_command_line_browser
907
     install_command_line_browser
911
 
908
 

+ 45
- 135
website/EN/app_pleroma.html 查看文件

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
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
 <style type="text/css">
14
 <style type="text/css">
16
  <!--/*--><![CDATA[/*><!--*/
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
   .todo   { font-family: monospace; color: red; }
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
   .tag    { background-color: #eee; font-family: monospace;
19
   .tag    { background-color: #eee; font-family: monospace;
27
             padding: 2px; font-size: 80%; font-weight: normal; }
20
             padding: 2px; font-size: 80%; font-weight: normal; }
28
   .timestamp { color: #bebebe; }
21
   .timestamp { color: #bebebe; }
29
   .timestamp-kwd { color: #5f9ea0; }
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
   .underline { text-decoration: underline; }
26
   .underline { text-decoration: underline; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35
   p.verse { margin-left: 3%; }
28
   p.verse { margin-left: 3%; }
56
     border: 1px solid black;
49
     border: 1px solid black;
57
   }
50
   }
58
   pre.src:hover:before { display: inline;}
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
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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
   table { border-collapse:collapse; }
60
   table { border-collapse:collapse; }
153
   caption.t-above { caption-side: top; }
61
   caption.t-above { caption-side: top; }
154
   caption.t-bottom { caption-side: bottom; }
62
   caption.t-bottom { caption-side: bottom; }
155
   td, th { vertical-align:top;  }
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
   dt { font-weight: bold; }
70
   dt { font-weight: bold; }
163
-  .footpara { display: inline; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
164
   .footdef  { margin-bottom: 1em; }
73
   .footdef  { margin-bottom: 1em; }
165
   .figure { padding: 1em; }
74
   .figure { padding: 1em; }
166
   .figure p { text-align: center; }
75
   .figure p { text-align: center; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
181
   .org-info-js_search-highlight
90
   .org-info-js_search-highlight
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
-  .org-svg { width: 90%; }
184
   /*]]>*/-->
92
   /*]]>*/-->
185
 </style>
93
 </style>
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
189
 @licstart  The following is the entire license notice for the
97
 @licstart  The following is the entire license notice for the
190
 JavaScript code in this tag.
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
 The JavaScript code in this tag is free software: you can
102
 The JavaScript code in this tag is free software: you can
195
 redistribute it and/or modify it under the terms of the GNU
103
 redistribute it and/or modify it under the terms of the GNU
236
 <a name="top" id="top"></a>
144
 <a name="top" id="top"></a>
237
 </div>
145
 </div>
238
 <div id="content">
146
 <div id="content">
147
+<h1 class="title"></h1>
239
 
148
 
240
 <div class="figure">
149
 <div class="figure">
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
262
 </p>
171
 </p>
263
 </div>
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
 <p>
177
 <p>
269
 Log into your system with:
178
 Log into your system with:
270
 </p>
179
 </p>
271
 
180
 
272
 <div class="org-src-container">
181
 <div class="org-src-container">
182
+
273
 <pre class="src src-bash">ssh myusername@mydomain -p 2222
183
 <pre class="src src-bash">ssh myusername@mydomain -p 2222
274
 </pre>
184
 </pre>
275
 </div>
185
 </div>
284
 </div>
194
 </div>
285
 </div>
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
 <p>
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
 </p>
202
 </p>
293
 
203
 
294
 <p>
204
 <p>
297
 </div>
207
 </div>
298
 </div>
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
 <p>
213
 <p>
304
 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.
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
 </p>
215
 </p>
312
 </div>
222
 </div>
313
 </div>
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
 <p>
228
 <p>
319
 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.
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
 </p>
230
 </p>
327
 </div>
237
 </div>
328
 </div>
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
 <div class="figure">
244
 <div class="figure">
335
 <p><img src="images/controlpanel/control_panel_blocking.jpg" alt="control_panel_blocking.jpg" width="80%" align="center" />
245
 <p><img src="images/controlpanel/control_panel_blocking.jpg" alt="control_panel_blocking.jpg" width="80%" align="center" />