浏览代码

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

Bob Mottram 7 年前
父节点
当前提交
f928af7197

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

23
 Download the Armbian image for your board. It must be version 9 (Stretch), otherwise it won't work. Extract the image from its archive, then copy it to a microSD card:
23
 Download the Armbian image for your board. It must be version 9 (Stretch), otherwise it won't work. Extract the image from its archive, then copy it to a microSD card:
24
 
24
 
25
 #+begin_src bash
25
 #+begin_src bash
26
-sudo dd bs=1M if=[Armbian .img file] of=/dev/sdX conv=fdatasync
26
+sudo dd bs=32M if=[Armbian .img file] of=/dev/sdX conv=fdatasync
27
 #+end_src
27
 #+end_src
28
 
28
 
29
 Where */dev/sdX* is the path for the microSD drive on your system.
29
 Where */dev/sdX* is the path for the microSD drive on your system.

+ 3
- 0
doc/EN/faq.org 查看文件

19
 #+ATTR_HTML: :border -1
19
 #+ATTR_HTML: :border -1
20
 | [[What applications are supported?]]                                                          |
20
 | [[What applications are supported?]]                                                          |
21
 | [[I don't have a static IP address. Can I still install this system?]]                        |
21
 | [[I don't have a static IP address. Can I still install this system?]]                        |
22
+| [[What are the best microSD cards to use?]]                                                   |
22
 | [[Why Freedombone and not FreedomBox?]]                                                       |
23
 | [[Why Freedombone and not FreedomBox?]]                                                       |
23
 | [[Why not support building images for Raspberry Pi?]]                                         |
24
 | [[Why not support building images for Raspberry Pi?]]                                         |
24
 | [[Why use Tor? I've heard it's used by bad people]]                                           |
25
 | [[Why use Tor? I've heard it's used by bad people]]                                           |
59
 Yes. The minimum requirements are to have some hardware that you can install Debian onto and also that you have administrator access to your internet router so that you can forward ports to the system which has Freedombone installed.
60
 Yes. The minimum requirements are to have some hardware that you can install Debian onto and also that you have administrator access to your internet router so that you can forward ports to the system which has Freedombone installed.
60
 
61
 
61
 The lack of a static IP address can be worked around by using a dynamic DNS service. Freedombone uses [[https://troglobit.com/inadyn.html][inadyn]] , which supports a variety of dynamic DNS providers.
62
 The lack of a static IP address can be worked around by using a dynamic DNS service. Freedombone uses [[https://troglobit.com/inadyn.html][inadyn]] , which supports a variety of dynamic DNS providers.
63
+* What are the best microSD cards to use?
64
+There can be big differences in the performance of microSD cards, and the cheaper ones are almost invariably terrible and/or unusable. Sandisk and Samsung currently appear to be the better brands. You can find some performance benchmarks [[http://www.pidramble.com/wiki/benchmarks/microsd-cards][here]]. However, benchmarks like this only give a very rough idea of performance and they can vary significantly between individual cards even within the same brand.
62
 * Why Freedombone and not FreedomBox?
65
 * Why Freedombone and not FreedomBox?
63
 When the project began in late 2013 the FreedomBox project seemed to be going nowhere, and was only designed to work with the DreamPlug hardware. There was some new hardware out - the Beaglebone Black - which could run Debian and was also a free hardware design so seemed more appropriate. Hence the name "Freedombone", being like FreedomBox but on a Beaglebone. There are some similarities and differences between the two projects:
66
 When the project began in late 2013 the FreedomBox project seemed to be going nowhere, and was only designed to work with the DreamPlug hardware. There was some new hardware out - the Beaglebone Black - which could run Debian and was also a free hardware design so seemed more appropriate. Hence the name "Freedombone", being like FreedomBox but on a Beaglebone. There are some similarities and differences between the two projects:
64
 
67
 

+ 2
- 2
doc/EN/homeserver.org 查看文件

69
 You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
69
 You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
70
 
70
 
71
 #+begin_src bash
71
 #+begin_src bash
72
-dd if=/dev/zero of=/dev/sdX bs=1M count=8
73
-dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
72
+dd if=/dev/zero of=/dev/sdX bs=32M count=8
73
+dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync
74
 #+end_src
74
 #+end_src
75
 
75
 
76
 And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use as a server, power on and set the BIOS to boot from the USB stick.
76
 And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use as a server, power on and set the BIOS to boot from the USB stick.

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

129
 Then copy it to a microSD card. Depending on your system you may need an adaptor to be able to do that.
129
 Then copy it to a microSD card. Depending on your system you may need an adaptor to be able to do that.
130
 
130
 
131
 #+BEGIN_SRC bash
131
 #+BEGIN_SRC bash
132
-sudo dd bs=1M if=filename.img of=/dev/sdX conv=fdatasync
132
+sudo dd bs=32M if=filename.img of=/dev/sdX conv=fdatasync
133
 #+END_SRC
133
 #+END_SRC
134
 
134
 
135
 Where *sdX* is the microSD drive. You can check which drive is the microSD drive using:
135
 Where *sdX* is the microSD drive. You can check which drive is the microSD drive using:

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

19
  - Private and public sharing of files
19
  - Private and public sharing of files
20
  - Blogging
20
  - Blogging
21
  - Collaborative editing of documents and presentations
21
  - Collaborative editing of documents and presentations
22
- - Creating and broadcasting audio media/podcasts
23
  - Social network stream. Follow/unfollow other peers
22
  - Social network stream. Follow/unfollow other peers
24
  - No network administration required
23
  - No network administration required
25
  - No servers
24
  - No servers

+ 7
- 7
doc/EN/mesh_images.org 查看文件

41
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig
41
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig
42
 gpg --verify freedombone-meshclient-i386.img.xz.sig
42
 gpg --verify freedombone-meshclient-i386.img.xz.sig
43
 unxz freedombone-meshclient-i386.img.xz
43
 unxz freedombone-meshclient-i386.img.xz
44
-sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
45
-sudo dd bs=1M if=freedombone-meshclient-i386.img of=/dev/sdX conv=fdatasync
44
+sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
45
+sudo dd bs=32M if=freedombone-meshclient-i386.img of=/dev/sdX conv=fdatasync
46
 #+end_src
46
 #+end_src
47
 
47
 
48
 To get a number of systems onto the mesh repeat the /dd/ command to create however many bootable USB drives you need.
48
 To get a number of systems onto the mesh repeat the /dd/ command to create however many bootable USB drives you need.
55
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig
55
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig
56
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
56
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
57
 unxz freedombone-meshclient-insecure-i386.img.xz
57
 unxz freedombone-meshclient-insecure-i386.img.xz
58
-sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
59
-sudo dd bs=1M if=freedombone-meshclient-insecure-i386.img of=/dev/sdX conv=fdatasync
58
+sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
59
+sudo dd bs=32M if=freedombone-meshclient-insecure-i386.img of=/dev/sdX conv=fdatasync
60
 #+end_src
60
 #+end_src
61
 
61
 
62
 ** Router images
62
 ** Router images
75
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
75
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
76
 ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
76
 ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
77
 unxz freedombone-mesh_beaglebone-armhf.img.xz
77
 unxz freedombone-mesh_beaglebone-armhf.img.xz
78
-sudo dd bs=1M if=freedombone-mesh_beaglebone-armhf.img of=/dev/sdX conv=fdatasync
78
+sudo dd bs=32M if=freedombone-mesh_beaglebone-armhf.img of=/dev/sdX conv=fdatasync
79
 #+end_src
79
 #+end_src
80
 
80
 
81
 If you have a few Beaglebone Blacks to use as routers then repeat the /dd/ command to create however many microSD cards you need.
81
 If you have a few Beaglebone Blacks to use as routers then repeat the /dd/ command to create however many microSD cards you need.
119
 You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
119
 You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
120
 
120
 
121
 #+begin_src bash
121
 #+begin_src bash
122
-sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
123
-sudo dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
122
+sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
123
+sudo dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync
124
 #+end_src
124
 #+end_src
125
 
125
 
126
 And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use on the mesh, power on and set the BIOS to boot from the USB stick.
126
 And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use on the mesh, power on and set the BIOS to boot from the USB stick.

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

31
 
31
 
32
 #+BEGIN_SRC bash
32
 #+BEGIN_SRC bash
33
 unxz downloadedimagefile.img.xz
33
 unxz downloadedimagefile.img.xz
34
-dd bs=1M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
34
+dd bs=32M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
35
 #+END_SRC
35
 #+END_SRC
36
 
36
 
37
 And wait. It will take a while to copy over. When that's done you might want to increase the partition size on the drive, using a tool such as [[http://gparted.org][Gparted]]. Whether you need to do that will depend upon how many apps you intend to install and how much data they will store.
37
 And wait. It will take a while to copy over. When that's done you might want to increase the partition size on the drive, using a tool such as [[http://gparted.org][Gparted]]. Whether you need to do that will depend upon how many apps you intend to install and how much data they will store.

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

39
 
39
 
40
 #+BEGIN_SRC bash
40
 #+BEGIN_SRC bash
41
 unxz downloadedimagefile.img.xz
41
 unxz downloadedimagefile.img.xz
42
-dd bs=1M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
42
+dd bs=32M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
43
 #+END_SRC
43
 #+END_SRC
44
 
44
 
45
 And wait. It will take a while to copy over. When that's done you might want to increase the partition size on the drive, using a tool such as [[http://gparted.org][Gparted]]. Whether you need to do that will depend upon how many apps you intend to install and how much data they will store.
45
 And wait. It will take a while to copy over. When that's done you might want to increase the partition size on the drive, using a tool such as [[http://gparted.org][Gparted]]. Whether you need to do that will depend upon how many apps you intend to install and how much data they will store.

+ 2
- 2
doc/EN/socialinstance.org 查看文件

31
 wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig
31
 wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig
32
 gpg --verify freedombone-pleroma-amd64.img.xz.sig
32
 gpg --verify freedombone-pleroma-amd64.img.xz.sig
33
 unxz freedombone-pleroma-amd64.img.xz
33
 unxz freedombone-pleroma-amd64.img.xz
34
-sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
35
-sudo dd bs=1M if=freedombone-pleroma-amd64.img of=/dev/sdX conv=fdatasync
34
+sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
35
+sudo dd bs=32M if=freedombone-pleroma-amd64.img of=/dev/sdX conv=fdatasync
36
 #+end_src
36
 #+end_src
37
 
37
 
38
 Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.
38
 Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.

+ 24
- 4
src/freedombone-controlpanel 查看文件

1803
     "${PROJECT_NAME}-wifi" --disable $disable_wifi
1803
     "${PROJECT_NAME}-wifi" --disable $disable_wifi
1804
 }
1804
 }
1805
 
1805
 
1806
+function performance_benchmarks {
1807
+    clear
1808
+
1809
+    if [ ! -f /sbin/hdparm ]; then
1810
+        apt-get -yq install hdparm
1811
+        clear
1812
+    fi
1813
+
1814
+    test_drive=/dev/sda1
1815
+    if [ -f /dev/mmcblk0 ]; then
1816
+        test_drive=/dev/mmcblk0
1817
+    fi
1818
+    echo ''
1819
+    echo $"Testing read speed of drive $test_drive"
1820
+    hdparm -tT $test_drive
1821
+    any_key
1822
+}
1823
+
1806
 function add_clacks {
1824
 function add_clacks {
1807
     clacks=
1825
     clacks=
1808
 
1826
 
1929
            12 $"Wifi menu"
1947
            12 $"Wifi menu"
1930
            13 $"Add Clacks"
1948
            13 $"Add Clacks"
1931
            14 $"Check for updates"
1949
            14 $"Check for updates"
1932
-           15 $"Power off the system"
1933
-           16 $"Restart the system")
1950
+           15 $"Performance Benchmarks"
1951
+           16 $"Power off the system"
1952
+           17 $"Restart the system")
1934
 
1953
 
1935
         # shellcheck disable=SC2068
1954
         # shellcheck disable=SC2068
1936
         selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Administrator Control Panel" --menu $"Choose an operation, or ESC to exit:" 24 60 24 "${W[@]}" 3>&2 2>&1 1>&3)
1955
         selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Administrator Control Panel" --menu $"Choose an operation, or ESC to exit:" 24 60 24 "${W[@]}" 3>&2 2>&1 1>&3)
1959
             12) menu_wifi;;
1978
             12) menu_wifi;;
1960
             13) add_clacks;;
1979
             13) add_clacks;;
1961
             14) check_for_updates;;
1980
             14) check_for_updates;;
1962
-            15) shut_down_system;;
1963
-            16) restart_system;;
1981
+            15) performance_benchmarks;;
1982
+            16) shut_down_system;;
1983
+            17) restart_system;;
1964
         esac
1984
         esac
1965
     done
1985
     done
1966
 }
1986
 }

+ 2
- 2
src/freedombone-image 查看文件

698
     fi
698
     fi
699
     echo ''
699
     echo ''
700
     echo "    unxz -k ${PROJECT_NAME}*.img.xz"
700
     echo "    unxz -k ${PROJECT_NAME}*.img.xz"
701
-    echo '    sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8'
702
-    echo "    sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
701
+    echo '    sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8'
702
+    echo "    sudo dd bs=32M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
703
     echo ''
703
     echo ''
704
 fi
704
 fi
705
 
705
 

+ 1
- 1
src/freedombone-image-customise 查看文件

1719
     chroot "$rootdir" apt-get -yq dist-upgrade
1719
     chroot "$rootdir" apt-get -yq dist-upgrade
1720
     chroot "$rootdir" apt-get -yq install ca-certificates
1720
     chroot "$rootdir" apt-get -yq install ca-certificates
1721
     chroot "$rootdir" apt-get -yq install apt-utils
1721
     chroot "$rootdir" apt-get -yq install apt-utils
1722
-    chroot "$rootdir" apt-get -yq install shellcheck
1722
+    chroot "$rootdir" apt-get -yq install shellcheck hdparm
1723
 
1723
 
1724
     if [[ "$ARCHITECTURE" == 'amd64' ]]; then
1724
     if [[ "$ARCHITECTURE" == 'amd64' ]]; then
1725
         chroot "$rootdir" apt-get -yq install linux-image-amd64
1725
         chroot "$rootdir" apt-get -yq install linux-image-amd64

+ 24
- 49
src/freedombone-logging 查看文件

90
     done
90
     done
91
 }
91
 }
92
 
92
 
93
-function turn_off_rsys_logging {
94
-    if ! grep -q '/var/log/auth.log' /etc/rsyslog.conf; then
95
-        if ! grep -q '/var/log/kern.log' /etc/rsyslog.conf; then
96
-            return
97
-        fi
98
-    fi
99
-    sed -i 's|mail,news.none.*|mail,news.none      /dev/null|g' /etc/rsyslog.conf
100
-    sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /dev/null|g' /etc/rsyslog.conf
101
-    sed -i 's|mail.info.*|mail.info            /dev/null|g' /etc/rsyslog.conf
102
-    sed -i 's|mail.warn.*|mail.warn            /dev/null|g' /etc/rsyslog.conf
103
-    sed -i 's|mail.err.*|mail.err            /dev/null|g' /etc/rsyslog.conf
104
-    sed -i 's|daemon.\*.*|daemon.\*              /dev/null|g' /etc/rsyslog.conf
105
-    sed -i 's|mail.\*.*|mail.\*              /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
108
-    sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
109
-    sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      /dev/null|g' /etc/rsyslog.conf
110
-    sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
111
-    sed -i 's|cron.\*.*|cron.\*             /dev/null|g' /etc/rsyslog.conf
112
-    $REMOVE_FILES_COMMAND /var/log/wtmp*
113
-    $REMOVE_FILES_COMMAND /var/log/debug*
114
-    $REMOVE_FILES_COMMAND /var/log/cron.*
115
-    $REMOVE_FILES_COMMAND /var/log/auth.*
116
-    $REMOVE_FILES_COMMAND /var/log/mail.*
117
-    $REMOVE_FILES_COMMAND /var/log/daemon.*
118
-    $REMOVE_FILES_COMMAND /var/log/user.*
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*
124
-}
125
-
126
 function turn_on_rsys_logging {
93
 function turn_on_rsys_logging {
127
-    if grep -q '/var/log/auth.log' /etc/rsyslog.conf; then
128
-        return
129
-    fi
130
-    sed -i 's|mail,news.none.*|mail,news.none      -/var/log/messages|g' /etc/rsyslog.conf
131
-    sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /var/log/auth.log|g' /etc/rsyslog.conf
132
-    sed -i 's|mail.info.*|mail.info            -/var/log/mail.info|g' /etc/rsyslog.conf
133
-    sed -i 's|mail.warn.*|mail.warn            -/var/log/mail.warn|g' /etc/rsyslog.conf
134
-    sed -i 's|mail.err.*|mail.err            /var/log/mail.err|g' /etc/rsyslog.conf
135
-    sed -i 's|daemon.\*.*|daemon.\*              -/var/log/daemon.log|g' /etc/rsyslog.conf
136
-    sed -i 's|mail.\*.*|mail.\*              -/var/log/mail.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
139
-    sed -i 's|news.none;mail.none.*|news.none;mail.none -/var/log/debug|g' /etc/rsyslog.conf
140
-    sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      -/var/log/syslog|g' /etc/rsyslog.conf
141
-    sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
142
-    sed -i 's|cron.\*.*|cron.\*             /var/log/cron.log|g' /etc/rsyslog.conf
94
+    save_rsys_header
95
+
96
+    { echo 'auth,authpriv.*         /var/log/auth.log';
97
+      echo '*.*;auth,authpriv.none -/var/log/syslog';
98
+      echo 'cron.*                  /var/log/cron.log';
99
+      echo 'daemon.*               -/var/log/daemon.log';
100
+      echo 'kern.*                 -/var/log/kern.log';
101
+      echo 'lpr.*                  -/var/log/lpr.log';
102
+      echo 'mail.*                 -/var/log/mail.log';
103
+      echo 'user.*                 -/var/log/user.log';
104
+      echo '';
105
+      echo 'mail.info              -/var/log/mail.info';
106
+      echo 'mail.warn              -/var/log/mail.warn';
107
+      echo 'mail.err                /var/log/mail.err';
108
+      echo '';
109
+      echo "*.=debug;\\";
110
+      echo "        auth,authpriv.none;\\";
111
+      echo '        news.none;mail.none -/var/log/debug';
112
+      echo "*.=info;*.=notice;*.=warn;\\";
113
+      echo "        auth,authpriv.none;\\";
114
+      echo "        cron,daemon.none;\\";
115
+      echo '        mail,news.none      -/var/log/messages';
116
+      echo '';
117
+      echo '*.emerg                         :omusrmsg:*'; } >> /etc/rsyslog.conf
143
 }
118
 }
144
 
119
 
145
 if [ ! "$1" ]; then
120
 if [ ! "$1" ]; then

+ 91
- 23
src/freedombone-utils-setup 查看文件

223
     fi
223
     fi
224
 }
224
 }
225
 
225
 
226
+function save_rsys_header {
227
+    { echo "";
228
+      echo "#################";
229
+      echo "#### MODULES ####";
230
+      echo "#################";
231
+      echo '';
232
+      echo 'module(load="imuxsock")';
233
+      echo 'module(load="imklog")';
234
+      echo '';
235
+      echo '###########################';
236
+      echo '#### GLOBAL DIRECTIVES ####';
237
+      echo '###########################';
238
+      echo '';
239
+      echo "\$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat";
240
+      echo '';
241
+      echo "\$FileOwner root";
242
+      echo "\$FileGroup adm";
243
+      echo "\$FileCreateMode 0640";
244
+      echo "\$DirCreateMode 0755";
245
+      echo "\$Umask 0022";
246
+      echo '';
247
+      echo "\$WorkDirectory /var/spool/rsyslog";
248
+      echo '';
249
+      echo "\$IncludeConfig /etc/rsyslog.d/*.conf";
250
+      echo '';
251
+      echo '###############';
252
+      echo '#### RULES ####';
253
+      echo '###############';
254
+      echo ''; } > /etc/rsyslog.conf
255
+}
256
+
226
 function turn_off_rsys_logging {
257
 function turn_off_rsys_logging {
227
-    if grep -q '/dev/null' /etc/rsyslog.conf; then
228
-        return
229
-    fi
230
-    sed -i 's|mail,news.none.*|mail,news.none      /dev/null|g' /etc/rsyslog.conf
231
-    sed -i 's|auth,authpriv.\*.*|auth,authpriv.\*         /dev/null|g' /etc/rsyslog.conf
232
-    sed -i 's|mail.info.*|mail.info            /dev/null|g' /etc/rsyslog.conf
233
-    sed -i 's|mail.warn.*|mail.warn            /dev/null|g' /etc/rsyslog.conf
234
-    sed -i 's|mail.err.*|mail.err            /dev/null|g' /etc/rsyslog.conf
235
-    sed -i 's|daemon.\*.*|daemon.\*              /dev/null|g' /etc/rsyslog.conf
236
-    sed -i 's|mail.\*.*|mail.\*              /dev/null|g' /etc/rsyslog.conf
237
-    sed -i 's|user.\*.*|user.\*              /dev/null|g' /etc/rsyslog.conf
238
-    sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
239
-    sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none      /dev/null|g' /etc/rsyslog.conf
240
-    sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
241
-    sed -i 's|cron.\*.*|cron.\*             /dev/null|g' /etc/rsyslog.conf
242
-    shred -zu /var/log/wtmp*
243
-    shred -zu /var/log/debug*
244
-    shred -zu /var/log/cron.*
245
-    shred -zu /var/log/auth.*
246
-    shred -zu /var/log/mail.*
247
-    shred -zu /var/log/daemon.*
248
-    shred -zu /var/log/user.*
249
-    shred -zu /var/log/messages*
258
+    save_rsys_header
259
+    echo '*.*     ~' >> /etc/rsyslog.conf
260
+
261
+    rm -rf /var/log/wtmp*
262
+    rm -rf /var/log/debug*
263
+    rm -rf /var/log/cron.*
264
+    rm -rf /var/log/auth.*
265
+    rm -rf /var/log/mail.*
266
+    rm -rf /var/log/daemon.*
267
+    rm -rf /var/log/user.*
268
+    rm -rf /var/log/messages*
269
+    rm -rf /var/log/syslog*
270
+    rm -rf /var/log/alternatives*
271
+    rm -rf /var/log/faillog
272
+    rm -rf /var/log/kern.log*
250
 }
273
 }
251
 
274
 
252
 function initial_setup {
275
 function initial_setup {
794
     apt-get -yq install shellcheck
817
     apt-get -yq install shellcheck
795
 }
818
 }
796
 
819
 
820
+function microsd_card_optimisations {
821
+    # These values can improve performance on microSD cards
822
+
823
+    apt-get -yq install hdparm
824
+
825
+    printf '#!/bin/bash\n' > /usr/bin/enable_optimisations
826
+
827
+    if [ -f /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
828
+        echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb
829
+        echo "echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb" >> /usr/bin/enable_optimisations
830
+    fi
831
+
832
+    if [ -f /proc/sys/vm/dirty_expire_centisecs ]; then
833
+        echo -n '100' > /proc/sys/vm/dirty_expire_centisecs
834
+        echo "echo -n '100' > /proc/sys/vm/dirty_expire_centisecs" >> /usr/bin/enable_optimisations
835
+    fi
836
+
837
+    if [ -f /proc/sys/vm/dirty_writeback_centisecs ]; then
838
+        echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs
839
+        echo "echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs" >> /usr/bin/enable_optimisations
840
+    fi
841
+
842
+    chmod +x /usr/bin/enable_optimisations
843
+
844
+    { echo '[Unit]';
845
+      echo "Description=${PROJECT_NAME} optimisations";
846
+      echo 'After=syslog.target';
847
+      echo 'After=network.target';
848
+      echo 'After=remote-fs.target';
849
+      echo '';
850
+      echo '[Service]';
851
+      echo 'Type=simple';
852
+      echo 'User=root';
853
+      echo 'Group=root';
854
+      echo 'WorkingDirectory=/root';
855
+      echo 'ExecStart=/usr/bin/enable_optimisations';
856
+      echo '';
857
+      echo '[Install]';
858
+      echo 'WantedBy=multi-user.target'; } > /etc/systemd/system/optimisations.service
859
+      systemctl enable optimisations
860
+}
861
+
797
 function setup_utils {
862
 function setup_utils {
798
     read_config_param "PROJECT_REPO"
863
     read_config_param "PROJECT_REPO"
799
     write_config_param "PROJECT_REPO" "$PROJECT_REPO"
864
     write_config_param "PROJECT_REPO" "$PROJECT_REPO"
816
     function_check separate_tmp_filesystem
881
     function_check separate_tmp_filesystem
817
     separate_tmp_filesystem 150
882
     separate_tmp_filesystem 150
818
 
883
 
884
+    function_check microsd_card_optimisations
885
+    microsd_card_optimisations
886
+
819
     function_check proc_filesystem_settings
887
     function_check proc_filesystem_settings
820
     proc_filesystem_settings
888
     proc_filesystem_settings
821
 
889
 

+ 122
- 45
website/EN/armbian.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
-<title></title>
7
-<!-- 2018-04-12 Thu 14:28 -->
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="Installing Freedombone on Armbian"
6
+<!-- 2018-04-21 Sat 14:58 -->
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="Installing Freedombone on Armbian"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, debian, armbian, sbc" />
14
+<meta name="keywords" content="freedombone, debian, armbian, sbc" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
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; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
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; }
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; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
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'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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'; }
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'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
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; }
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; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
152
 </div>
243
 </div>
153
 
244
 
154
 
245
 
155
-<div class="export">
156
-<p>
157
-&lt;center&gt;&lt;h1&gt;Installing on Armbian&lt;/h1&gt;&lt;/center&gt;
158
-</p>
159
-
160
-</div>
246
+<center><h1>Installing on Armbian</h1></center>
161
 
247
 
162
 <blockquote>
248
 <blockquote>
163
 <p>
249
 <p>
174
 </p>
260
 </p>
175
 
261
 
176
 <div class="org-src-container">
262
 <div class="org-src-container">
177
-
178
-<pre class="src src-bash">sudo dd bs=1M if=[Armbian .img file] of=/dev/sdX conv=fdatasync
263
+<pre class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=[Armbian .img file] <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
179
 </pre>
264
 </pre>
180
 </div>
265
 </div>
181
 
266
 
200
 </p>
285
 </p>
201
 
286
 
202
 <div class="org-src-container">
287
 <div class="org-src-container">
203
-
204
 <pre class="src src-bash">ssh root@[local IP address]
288
 <pre class="src src-bash">ssh root@[local IP address]
205
 </pre>
289
 </pre>
206
 </div>
290
 </div>
220
 </p>
304
 </p>
221
 
305
 
222
 <div class="org-src-container">
306
 <div class="org-src-container">
223
-
224
 <pre class="src src-bash">ssh myusername@[local IP address]
307
 <pre class="src src-bash">ssh myusername@[local IP address]
225
 </pre>
308
 </pre>
226
 </div>
309
 </div>
230
 </p>
313
 </p>
231
 
314
 
232
 <div class="org-src-container">
315
 <div class="org-src-container">
233
-
234
 <pre class="src src-bash">sudo su
316
 <pre class="src src-bash">sudo su
235
 </pre>
317
 </pre>
236
 </div>
318
 </div>
240
 </p>
322
 </p>
241
 
323
 
242
 <div class="org-src-container">
324
 <div class="org-src-container">
243
-
244
 <pre class="src src-bash">apt-get -y install git dialog build-essential
325
 <pre class="src src-bash">apt-get -y install git dialog build-essential
245
 git clone https://github.com/bashrc/freedombone
326
 git clone https://github.com/bashrc/freedombone
246
-cd freedombone
327
+<span class="org-builtin">cd</span> freedombone
247
 git checkout stretch
328
 git checkout stretch
248
 </pre>
329
 </pre>
249
 </div>
330
 </div>
253
 </p>
334
 </p>
254
 
335
 
255
 <div class="org-src-container">
336
 <div class="org-src-container">
256
-
257
 <pre class="src src-bash">make install
337
 <pre class="src src-bash">make install
258
 </pre>
338
 </pre>
259
 </div>
339
 </div>
263
 </p>
343
 </p>
264
 
344
 
265
 <div class="org-src-container">
345
 <div class="org-src-container">
266
-
267
 <pre class="src src-bash">freedombone menuconfig
346
 <pre class="src src-bash">freedombone menuconfig
268
 </pre>
347
 </pre>
269
 </div>
348
 </div>
273
 </p>
352
 </p>
274
 
353
 
275
 <div class="org-src-container">
354
 <div class="org-src-container">
276
-
277
 <pre class="src src-bash">freedombone menuconfig-onion
355
 <pre class="src src-bash">freedombone menuconfig-onion
278
 </pre>
356
 </pre>
279
 </div>
357
 </div>
283
 </p>
361
 </p>
284
 
362
 
285
 <div class="org-src-container">
363
 <div class="org-src-container">
286
-
287
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
364
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
288
 </pre>
365
 </pre>
289
 </div>
366
 </div>

+ 152
- 140
website/EN/faq.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 15:14 -->
6
+<!-- 2018-04-21 Sat 17:21 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
262
 </colgroup>
262
 </colgroup>
263
 <tbody>
263
 <tbody>
264
 <tr>
264
 <tr>
265
-<td class="org-left"><a href="#org2ecea54">What applications are supported?</a></td>
265
+<td class="org-left"><a href="#org9ac9dc9">What applications are supported?</a></td>
266
 </tr>
266
 </tr>
267
 
267
 
268
 <tr>
268
 <tr>
269
-<td class="org-left"><a href="#orgaa0a705">I don't have a static IP address. Can I still install this system?</a></td>
269
+<td class="org-left"><a href="#org57cb5f7">I don't have a static IP address. Can I still install this system?</a></td>
270
 </tr>
270
 </tr>
271
 
271
 
272
 <tr>
272
 <tr>
273
-<td class="org-left"><a href="#org340be8a">Why Freedombone and not FreedomBox?</a></td>
273
+<td class="org-left"><a href="#org2ec231a">What are the best microSD cards to use?</a></td>
274
 </tr>
274
 </tr>
275
 
275
 
276
 <tr>
276
 <tr>
277
-<td class="org-left"><a href="#orgccf5702">Why not support building images for Raspberry Pi?</a></td>
277
+<td class="org-left"><a href="#orgf562031">Why Freedombone and not FreedomBox?</a></td>
278
 </tr>
278
 </tr>
279
 
279
 
280
 <tr>
280
 <tr>
281
-<td class="org-left"><a href="#org2af436d">Why use Tor? I've heard it's used by bad people</a></td>
281
+<td class="org-left"><a href="#orgba4b2dc">Why not support building images for Raspberry Pi?</a></td>
282
 </tr>
282
 </tr>
283
 
283
 
284
 <tr>
284
 <tr>
285
-<td class="org-left"><a href="#org3981923">How is Tor integrated with Freedombone?</a></td>
285
+<td class="org-left"><a href="#org8b22f5c">Why use Tor? I've heard it's used by bad people</a></td>
286
 </tr>
286
 </tr>
287
 
287
 
288
 <tr>
288
 <tr>
289
-<td class="org-left"><a href="#orgb732986">Can I add a clearnet domain to an onion build?</a></td>
289
+<td class="org-left"><a href="#orgbaa6623">How is Tor integrated with Freedombone?</a></td>
290
 </tr>
290
 </tr>
291
 
291
 
292
 <tr>
292
 <tr>
293
-<td class="org-left"><a href="#orgb1382c0">Why use Github?</a></td>
293
+<td class="org-left"><a href="#orgbd702fd">Can I add a clearnet domain to an onion build?</a></td>
294
 </tr>
294
 </tr>
295
 
295
 
296
 <tr>
296
 <tr>
297
-<td class="org-left"><a href="#org8d5c33e">After using nmap or other scanning tool I can no longer log in</a></td>
297
+<td class="org-left"><a href="#org4d09a2a">Why use Github?</a></td>
298
 </tr>
298
 </tr>
299
 
299
 
300
 <tr>
300
 <tr>
301
-<td class="org-left"><a href="#orgcaa8f8c">Should I upload my GPG keys to keybase.io?</a></td>
301
+<td class="org-left"><a href="#org82e9020">After using nmap or other scanning tool I can no longer log in</a></td>
302
 </tr>
302
 </tr>
303
 
303
 
304
 <tr>
304
 <tr>
305
-<td class="org-left"><a href="#org787d325">Keys and emails should not be stored on servers. Why do you do that?</a></td>
305
+<td class="org-left"><a href="#org6838add">Should I upload my GPG keys to keybase.io?</a></td>
306
 </tr>
306
 </tr>
307
 
307
 
308
 <tr>
308
 <tr>
309
-<td class="org-left"><a href="#org45d4472">Why can't I access my .onion site with a Tor browser?</a></td>
309
+<td class="org-left"><a href="#orgefe80fb">Keys and emails should not be stored on servers. Why do you do that?</a></td>
310
 </tr>
310
 </tr>
311
 
311
 
312
 <tr>
312
 <tr>
313
-<td class="org-left"><a href="#org000c926">What is the best hardware to run this system on?</a></td>
313
+<td class="org-left"><a href="#org7659367">Why can't I access my .onion site with a Tor browser?</a></td>
314
 </tr>
314
 </tr>
315
 
315
 
316
 <tr>
316
 <tr>
317
-<td class="org-left"><a href="#org36ddec5">Can I add more users to the system?</a></td>
317
+<td class="org-left"><a href="#org2bbb18a">What is the best hardware to run this system on?</a></td>
318
 </tr>
318
 </tr>
319
 
319
 
320
 <tr>
320
 <tr>
321
-<td class="org-left"><a href="#orgdd36f96">Why not use Signal for mobile chat?</a></td>
321
+<td class="org-left"><a href="#org15ecda8">Can I add more users to the system?</a></td>
322
 </tr>
322
 </tr>
323
 
323
 
324
 <tr>
324
 <tr>
325
-<td class="org-left"><a href="#org79827b5">What is the most secure chat app to use on mobile?</a></td>
325
+<td class="org-left"><a href="#orgc47b161">Why not use Signal for mobile chat?</a></td>
326
 </tr>
326
 </tr>
327
 
327
 
328
 <tr>
328
 <tr>
329
-<td class="org-left"><a href="#org5e417ee">How do I remove a user from the system?</a></td>
329
+<td class="org-left"><a href="#orgc0e8c86">What is the most secure chat app to use on mobile?</a></td>
330
 </tr>
330
 </tr>
331
 
331
 
332
 <tr>
332
 <tr>
333
-<td class="org-left"><a href="#org24c86ab">Why is logging for web sites turned off by default?</a></td>
333
+<td class="org-left"><a href="#org444799d">How do I remove a user from the system?</a></td>
334
 </tr>
334
 </tr>
335
 
335
 
336
 <tr>
336
 <tr>
337
-<td class="org-left"><a href="#orgd972cda">How do I reset the tripwire?</a></td>
337
+<td class="org-left"><a href="#orgc9b4ece">Why is logging for web sites turned off by default?</a></td>
338
 </tr>
338
 </tr>
339
 
339
 
340
 <tr>
340
 <tr>
341
-<td class="org-left"><a href="#org4d6c566">Is metadata protected?</a></td>
341
+<td class="org-left"><a href="#orge930cc5">How do I reset the tripwire?</a></td>
342
 </tr>
342
 </tr>
343
 
343
 
344
 <tr>
344
 <tr>
345
-<td class="org-left"><a href="#orga67d74a">How do I create email processing rules?</a></td>
345
+<td class="org-left"><a href="#org0947e5a">Is metadata protected?</a></td>
346
 </tr>
346
 </tr>
347
 
347
 
348
 <tr>
348
 <tr>
349
-<td class="org-left"><a href="#org69c34a0">Why isn't dynamic DNS working?</a></td>
349
+<td class="org-left"><a href="#orgb32e5cb">How do I create email processing rules?</a></td>
350
 </tr>
350
 </tr>
351
 
351
 
352
 <tr>
352
 <tr>
353
-<td class="org-left"><a href="#orgd5c5acc">How do I change my encryption settings?</a></td>
353
+<td class="org-left"><a href="#orgcc703f1">Why isn't dynamic DNS working?</a></td>
354
 </tr>
354
 </tr>
355
 
355
 
356
 <tr>
356
 <tr>
357
-<td class="org-left"><a href="#orgfc6fd46">How do I get a domain name?</a></td>
357
+<td class="org-left"><a href="#orgdb2c631">How do I change my encryption settings?</a></td>
358
 </tr>
358
 </tr>
359
 
359
 
360
 <tr>
360
 <tr>
361
-<td class="org-left"><a href="#org90eafd9">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
361
+<td class="org-left"><a href="#org748c030">How do I get a domain name?</a></td>
362
 </tr>
362
 </tr>
363
 
363
 
364
 <tr>
364
 <tr>
365
-<td class="org-left"><a href="#orgc91fc72">How do I renew a Let's Encrypt certificate?</a></td>
365
+<td class="org-left"><a href="#org20d848a">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
366
 </tr>
366
 </tr>
367
 
367
 
368
 <tr>
368
 <tr>
369
-<td class="org-left"><a href="#org73b061c">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
369
+<td class="org-left"><a href="#org364e5b4">How do I renew a Let's Encrypt certificate?</a></td>
370
 </tr>
370
 </tr>
371
 
371
 
372
 <tr>
372
 <tr>
373
-<td class="org-left"><a href="#org6a6cce4">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
373
+<td class="org-left"><a href="#org92cc380">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
374
 </tr>
374
 </tr>
375
 
375
 
376
 <tr>
376
 <tr>
377
-<td class="org-left"><a href="#orgc36400d">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
377
+<td class="org-left"><a href="#org7fdf511">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
378
 </tr>
378
 </tr>
379
 
379
 
380
 <tr>
380
 <tr>
381
-<td class="org-left"><a href="#org73e8a5c">Tor is censored/blocked in my area. What can I do?</a></td>
381
+<td class="org-left"><a href="#org2ac01d7">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
382
 </tr>
382
 </tr>
383
 
383
 
384
 <tr>
384
 <tr>
385
-<td class="org-left"><a href="#org1332523">I want to block a particular domain from getting its content into my social network sites</a></td>
385
+<td class="org-left"><a href="#orga441aa1">Tor is censored/blocked in my area. What can I do?</a></td>
386
 </tr>
386
 </tr>
387
 
387
 
388
 <tr>
388
 <tr>
389
-<td class="org-left"><a href="#org7e84bef">The mesh system doesn't boot from USB drive</a></td>
389
+<td class="org-left"><a href="#orgaf2f408">I want to block a particular domain from getting its content into my social network sites</a></td>
390
 </tr>
390
 </tr>
391
 
391
 
392
 <tr>
392
 <tr>
393
-<td class="org-left"><a href="#orgdae680c">Mesh system doesn't connect to the network</a></td>
393
+<td class="org-left"><a href="#orgf5fd6ee">The mesh system doesn't boot from USB drive</a></td>
394
+</tr>
395
+
396
+<tr>
397
+<td class="org-left"><a href="#org4b55e47">Mesh system doesn't connect to the network</a></td>
394
 </tr>
398
 </tr>
395
 </tbody>
399
 </tbody>
396
 </table>
400
 </table>
397
 </div>
401
 </div>
398
 
402
 
399
-<div id="outline-container-org2ecea54" class="outline-2">
400
-<h2 id="org2ecea54">What applications are supported?</h2>
401
-<div class="outline-text-2" id="text-org2ecea54">
403
+<div id="outline-container-org9ac9dc9" class="outline-2">
404
+<h2 id="org9ac9dc9">What applications are supported?</h2>
405
+<div class="outline-text-2" id="text-org9ac9dc9">
402
 <p>
406
 <p>
403
 <a href="./apps.html">See here</a> for the complete list of apps. In addition to those as part of the base install you get an email server.
407
 <a href="./apps.html">See here</a> for the complete list of apps. In addition to those as part of the base install you get an email server.
404
 </p>
408
 </p>
405
 </div>
409
 </div>
406
 </div>
410
 </div>
407
-<div id="outline-container-orgaa0a705" class="outline-2">
408
-<h2 id="orgaa0a705">I don't have a static IP address. Can I still install this system?</h2>
409
-<div class="outline-text-2" id="text-orgaa0a705">
411
+<div id="outline-container-org57cb5f7" class="outline-2">
412
+<h2 id="org57cb5f7">I don't have a static IP address. Can I still install this system?</h2>
413
+<div class="outline-text-2" id="text-org57cb5f7">
410
 <p>
414
 <p>
411
 Yes. The minimum requirements are to have some hardware that you can install Debian onto and also that you have administrator access to your internet router so that you can forward ports to the system which has Freedombone installed.
415
 Yes. The minimum requirements are to have some hardware that you can install Debian onto and also that you have administrator access to your internet router so that you can forward ports to the system which has Freedombone installed.
412
 </p>
416
 </p>
416
 </p>
420
 </p>
417
 </div>
421
 </div>
418
 </div>
422
 </div>
419
-<div id="outline-container-org340be8a" class="outline-2">
420
-<h2 id="org340be8a">Why Freedombone and not FreedomBox?</h2>
421
-<div class="outline-text-2" id="text-org340be8a">
423
+<div id="outline-container-org2ec231a" class="outline-2">
424
+<h2 id="org2ec231a">What are the best microSD cards to use?</h2>
425
+<div class="outline-text-2" id="text-org2ec231a">
426
+<p>
427
+There can be big differences in the performance of microSD cards, and the cheaper ones are almost invariably terrible and/or unusable. Sandisk and Samsung currently appear to be the better brands. You can find some performance benchmarks <a href="http://www.pidramble.com/wiki/benchmarks/microsd-cards">here</a>. However, benchmarks like this only give a very rough idea of performance and they can vary significantly between individual cards even within the same brand.
428
+</p>
429
+</div>
430
+</div>
431
+<div id="outline-container-orgf562031" class="outline-2">
432
+<h2 id="orgf562031">Why Freedombone and not FreedomBox?</h2>
433
+<div class="outline-text-2" id="text-orgf562031">
422
 <p>
434
 <p>
423
 When the project began in late 2013 the FreedomBox project seemed to be going nowhere, and was only designed to work with the DreamPlug hardware. There was some new hardware out - the Beaglebone Black - which could run Debian and was also a free hardware design so seemed more appropriate. Hence the name "Freedombone", being like FreedomBox but on a Beaglebone. There are some similarities and differences between the two projects:
435
 When the project began in late 2013 the FreedomBox project seemed to be going nowhere, and was only designed to work with the DreamPlug hardware. There was some new hardware out - the Beaglebone Black - which could run Debian and was also a free hardware design so seemed more appropriate. Hence the name "Freedombone", being like FreedomBox but on a Beaglebone. There are some similarities and differences between the two projects:
424
 </p>
436
 </p>
425
 </div>
437
 </div>
426
 
438
 
427
-<div id="outline-container-org918eba1" class="outline-3">
428
-<h3 id="org918eba1">Similarities</h3>
429
-<div class="outline-text-3" id="text-org918eba1">
439
+<div id="outline-container-org973e1fe" class="outline-3">
440
+<h3 id="org973e1fe">Similarities</h3>
441
+<div class="outline-text-3" id="text-org973e1fe">
430
 <ul class="org-ul">
442
 <ul class="org-ul">
431
 <li>Uses freedom-maker and vmdebootstrap to build debian images</li>
443
 <li>Uses freedom-maker and vmdebootstrap to build debian images</li>
432
 <li>Supports the use of Tor onion addresses to access websites</li>
444
 <li>Supports the use of Tor onion addresses to access websites</li>
440
 </ul>
452
 </ul>
441
 </div>
453
 </div>
442
 </div>
454
 </div>
443
-<div id="outline-container-orgf04a715" class="outline-3">
444
-<h3 id="orgf04a715">Differences</h3>
445
-<div class="outline-text-3" id="text-orgf04a715">
455
+<div id="outline-container-org54e398b" class="outline-3">
456
+<h3 id="org54e398b">Differences</h3>
457
+<div class="outline-text-3" id="text-org54e398b">
446
 <ul class="org-ul">
458
 <ul class="org-ul">
447
 <li>FreedomBox is a Debian pure blend. Freedombone is not</li>
459
 <li>FreedomBox is a Debian pure blend. Freedombone is not</li>
448
 <li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
460
 <li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
457
 </div>
469
 </div>
458
 </div>
470
 </div>
459
 </div>
471
 </div>
460
-<div id="outline-container-orgccf5702" class="outline-2">
461
-<h2 id="orgccf5702">Why not support building images for Raspberry Pi?</h2>
462
-<div class="outline-text-2" id="text-orgccf5702">
472
+<div id="outline-container-orgba4b2dc" class="outline-2">
473
+<h2 id="orgba4b2dc">Why not support building images for Raspberry Pi?</h2>
474
+<div class="outline-text-2" id="text-orgba4b2dc">
463
 <p>
475
 <p>
464
 The FreedomBox project supports Raspberry Pi builds, and the image build system for Freedombone is based on the same system. However, although the Raspberry Pi can run a version of Debian it requires a closed proprietary blob in order to boot the hardware. Who knows what that blob might contain or what exploits it could facilitate. From an adversarial point of view if you were trying to deliver "bulk equipment interference" then it doesn't get any better than piggybacking on something which has control of the boot process, and hence all subsequently run processes.
476
 The FreedomBox project supports Raspberry Pi builds, and the image build system for Freedombone is based on the same system. However, although the Raspberry Pi can run a version of Debian it requires a closed proprietary blob in order to boot the hardware. Who knows what that blob might contain or what exploits it could facilitate. From an adversarial point of view if you were trying to deliver "bulk equipment interference" then it doesn't get any better than piggybacking on something which has control of the boot process, and hence all subsequently run processes.
465
 </p>
477
 </p>
469
 </p>
481
 </p>
470
 </div>
482
 </div>
471
 </div>
483
 </div>
472
-<div id="outline-container-org2af436d" class="outline-2">
473
-<h2 id="org2af436d">Why use Tor? I've heard it's used by bad people</h2>
474
-<div class="outline-text-2" id="text-org2af436d">
484
+<div id="outline-container-org8b22f5c" class="outline-2">
485
+<h2 id="org8b22f5c">Why use Tor? I've heard it's used by bad people</h2>
486
+<div class="outline-text-2" id="text-org8b22f5c">
475
 <p>
487
 <p>
476
 Years ago Tor was usually depicted in the mainstream media as something scary inhabited by cyberterrorists and other bad cybers, but today to a large extent Tor is accepted as just another way of routing data in a network. Depending upon where you live there may still be some amount of fearmongering about Tor, but it now seems clear that the trajectory is towards general acceptance.
488
 Years ago Tor was usually depicted in the mainstream media as something scary inhabited by cyberterrorists and other bad cybers, but today to a large extent Tor is accepted as just another way of routing data in a network. Depending upon where you live there may still be some amount of fearmongering about Tor, but it now seems clear that the trajectory is towards general acceptance.
477
 </p>
489
 </p>
492
 </p>
504
 </p>
493
 </div>
505
 </div>
494
 </div>
506
 </div>
495
-<div id="outline-container-org3981923" class="outline-2">
496
-<h2 id="org3981923">How is Tor integrated with Freedombone?</h2>
497
-<div class="outline-text-2" id="text-org3981923">
507
+<div id="outline-container-orgbaa6623" class="outline-2">
508
+<h2 id="orgbaa6623">How is Tor integrated with Freedombone?</h2>
509
+<div class="outline-text-2" id="text-orgbaa6623">
498
 <p>
510
 <p>
499
 Within this project Tor is used more to provide <i>accessibility</i> than the <i>anonymity</i> factor for which Tor is better known. The onion address system provides a way of being able to access sites even if you don't own a conventional domain name or don't have administrator access to your local internet router to be able to do port forwarding.
511
 Within this project Tor is used more to provide <i>accessibility</i> than the <i>anonymity</i> factor for which Tor is better known. The onion address system provides a way of being able to access sites even if you don't own a conventional domain name or don't have administrator access to your local internet router to be able to do port forwarding.
500
 </p>
512
 </p>
512
 </p>
524
 </p>
513
 </div>
525
 </div>
514
 </div>
526
 </div>
515
-<div id="outline-container-orgb732986" class="outline-2">
516
-<h2 id="orgb732986">Can I add a clearnet domain to an onion build?</h2>
517
-<div class="outline-text-2" id="text-orgb732986">
527
+<div id="outline-container-orgbd702fd" class="outline-2">
528
+<h2 id="orgbd702fd">Can I add a clearnet domain to an onion build?</h2>
529
+<div class="outline-text-2" id="text-orgbd702fd">
518
 <p>
530
 <p>
519
 You could if you manually edited the relevant nginx configuration files and installed some dynamic DNS system yourself. If you already have sysadmin knowledge then that's probably not too hard. But the builds created with the <b>onion-addresses-only</b> option aren't really intended to support access via clearnet domains.
531
 You could if you manually edited the relevant nginx configuration files and installed some dynamic DNS system yourself. If you already have sysadmin knowledge then that's probably not too hard. But the builds created with the <b>onion-addresses-only</b> option aren't really intended to support access via clearnet domains.
520
 </p>
532
 </p>
521
 </div>
533
 </div>
522
 </div>
534
 </div>
523
-<div id="outline-container-orgb1382c0" class="outline-2">
524
-<h2 id="orgb1382c0">Why use Github?</h2>
525
-<div class="outline-text-2" id="text-orgb1382c0">
535
+<div id="outline-container-org4d09a2a" class="outline-2">
536
+<h2 id="org4d09a2a">Why use Github?</h2>
537
+<div class="outline-text-2" id="text-org4d09a2a">
526
 <p>
538
 <p>
527
 Github is paradoxically a centralized, closed and proprietary system which happens to mostly host free and open source projects. Up until now it has been relatively benign, but at some point in the name of "growth" it will likely start becoming more evil, or just become like SourceForge - which was also once much loved by FOSS developers, but turned into a den of malvertizing.
539
 Github is paradoxically a centralized, closed and proprietary system which happens to mostly host free and open source projects. Up until now it has been relatively benign, but at some point in the name of "growth" it will likely start becoming more evil, or just become like SourceForge - which was also once much loved by FOSS developers, but turned into a den of malvertizing.
528
 </p>
540
 </p>
540
 </p>
552
 </p>
541
 </div>
553
 </div>
542
 </div>
554
 </div>
543
-<div id="outline-container-org8d5c33e" class="outline-2">
544
-<h2 id="org8d5c33e">After using nmap or other scanning tool I can no longer log in</h2>
545
-<div class="outline-text-2" id="text-org8d5c33e">
555
+<div id="outline-container-org82e9020" class="outline-2">
556
+<h2 id="org82e9020">After using nmap or other scanning tool I can no longer log in</h2>
557
+<div class="outline-text-2" id="text-org82e9020">
546
 <p>
558
 <p>
547
 This system tries to block port scanners. Any other system trying to scan for open ports will have their IP address added to a temporary block list for 24 hours.
559
 This system tries to block port scanners. Any other system trying to scan for open ports will have their IP address added to a temporary block list for 24 hours.
548
 </p>
560
 </p>
549
 </div>
561
 </div>
550
 </div>
562
 </div>
551
-<div id="outline-container-orgcaa8f8c" class="outline-2">
552
-<h2 id="orgcaa8f8c">Should I upload my GPG keys to keybase.io?</h2>
553
-<div class="outline-text-2" id="text-orgcaa8f8c">
563
+<div id="outline-container-org6838add" class="outline-2">
564
+<h2 id="org6838add">Should I upload my GPG keys to keybase.io?</h2>
565
+<div class="outline-text-2" id="text-org6838add">
554
 <p>
566
 <p>
555
 It's not recommended unless there exists some compelling reason for you to be on there. That site asks users to upload the <b>private keys</b>, and even if the keys are client side encrypted with a passphrase there's always the chance that there will be a data leak in future and letter agencies will then have a full time opportunity to crack the passphrases.
567
 It's not recommended unless there exists some compelling reason for you to be on there. That site asks users to upload the <b>private keys</b>, and even if the keys are client side encrypted with a passphrase there's always the chance that there will be a data leak in future and letter agencies will then have a full time opportunity to crack the passphrases.
556
 </p>
568
 </p>
560
 </p>
572
 </p>
561
 </div>
573
 </div>
562
 </div>
574
 </div>
563
-<div id="outline-container-org787d325" class="outline-2">
564
-<h2 id="org787d325">Keys and emails should not be stored on servers. Why do you do that?</h2>
565
-<div class="outline-text-2" id="text-org787d325">
575
+<div id="outline-container-orgefe80fb" class="outline-2">
576
+<h2 id="orgefe80fb">Keys and emails should not be stored on servers. Why do you do that?</h2>
577
+<div class="outline-text-2" id="text-orgefe80fb">
566
 <p>
578
 <p>
567
 Ordinarily this is good advice. However, the threat model for a device in your home is different from the one for a generic server in a massive warehouse. Compare and contrast:
579
 Ordinarily this is good advice. However, the threat model for a device in your home is different from the one for a generic server in a massive warehouse. Compare and contrast:
568
 </p>
580
 </p>
620
 </div>
632
 </div>
621
 </div>
633
 </div>
622
 
634
 
623
-<div id="outline-container-org45d4472" class="outline-2">
624
-<h2 id="org45d4472">Why can't I access my .onion site with a Tor browser?</h2>
625
-<div class="outline-text-2" id="text-org45d4472">
635
+<div id="outline-container-org7659367" class="outline-2">
636
+<h2 id="org7659367">Why can't I access my .onion site with a Tor browser?</h2>
637
+<div class="outline-text-2" id="text-org7659367">
626
 <p>
638
 <p>
627
 Probably you need to add the site to the NoScript whitelist. Typically click/press on the noscript icon (or select from the menu on mobile) then select <i>whitelist</i> and add the site URL. You may also need to disable HTTPS Everywhere when using onion addresses, which don't use https.
639
 Probably you need to add the site to the NoScript whitelist. Typically click/press on the noscript icon (or select from the menu on mobile) then select <i>whitelist</i> and add the site URL. You may also need to disable HTTPS Everywhere when using onion addresses, which don't use https.
628
 </p>
640
 </p>
632
 </p>
644
 </p>
633
 </div>
645
 </div>
634
 </div>
646
 </div>
635
-<div id="outline-container-org000c926" class="outline-2">
636
-<h2 id="org000c926">What is the best hardware to run this system on?</h2>
637
-<div class="outline-text-2" id="text-org000c926">
647
+<div id="outline-container-org2bbb18a" class="outline-2">
648
+<h2 id="org2bbb18a">What is the best hardware to run this system on?</h2>
649
+<div class="outline-text-2" id="text-org2bbb18a">
638
 <p>
650
 <p>
639
 It was originally designed to run on the Beaglebone Black, but that should be regarded as the most minimal system, because it's single core and has by today's standards a small amount of memory. Obviously the more powerful the hardware is the faster things like web pages (blog, social networking, etc) will be served but the more electricity such a system will require if you're running it 24/7. A good compromise between performance and energy consumption is something like an old netbook. The battery of an old netbook or laptop even gives you <a href="https://en.wikipedia.org/wiki/Uninterruptible_power_supply">UPS capability</a> to keep the system going during brief power outages or cable re-arrangements, and that means using full disk encryption on the server also becomes more practical.
651
 It was originally designed to run on the Beaglebone Black, but that should be regarded as the most minimal system, because it's single core and has by today's standards a small amount of memory. Obviously the more powerful the hardware is the faster things like web pages (blog, social networking, etc) will be served but the more electricity such a system will require if you're running it 24/7. A good compromise between performance and energy consumption is something like an old netbook. The battery of an old netbook or laptop even gives you <a href="https://en.wikipedia.org/wiki/Uninterruptible_power_supply">UPS capability</a> to keep the system going during brief power outages or cable re-arrangements, and that means using full disk encryption on the server also becomes more practical.
640
 </p>
652
 </p>
644
 </p>
656
 </p>
645
 </div>
657
 </div>
646
 </div>
658
 </div>
647
-<div id="outline-container-org36ddec5" class="outline-2">
648
-<h2 id="org36ddec5">Can I add more users to the system?</h2>
649
-<div class="outline-text-2" id="text-org36ddec5">
659
+<div id="outline-container-org15ecda8" class="outline-2">
660
+<h2 id="org15ecda8">Can I add more users to the system?</h2>
661
+<div class="outline-text-2" id="text-org15ecda8">
650
 <p>
662
 <p>
651
 Yes. Freedombone can support a small number of users, for a "<i>friends and family</i>" type of home installation. This gives them access to an email account, XMPP, SIP phone and the blog (depending on whether the variant which you installed includes those).
663
 Yes. Freedombone can support a small number of users, for a "<i>friends and family</i>" type of home installation. This gives them access to an email account, XMPP, SIP phone and the blog (depending on whether the variant which you installed includes those).
652
 </p>
664
 </p>
669
 </p>
681
 </p>
670
 </div>
682
 </div>
671
 </div>
683
 </div>
672
-<div id="outline-container-orgdd36f96" class="outline-2">
673
-<h2 id="orgdd36f96">Why not use Signal for mobile chat?</h2>
674
-<div class="outline-text-2" id="text-orgdd36f96">
684
+<div id="outline-container-orgc47b161" class="outline-2">
685
+<h2 id="orgc47b161">Why not use Signal for mobile chat?</h2>
686
+<div class="outline-text-2" id="text-orgc47b161">
675
 <p>
687
 <p>
676
 Celebrities recommend Signal. It's Free Software so it must be good, right?
688
 Celebrities recommend Signal. It's Free Software so it must be good, right?
677
 </p>
689
 </p>
694
 </p>
706
 </p>
695
 </div>
707
 </div>
696
 </div>
708
 </div>
697
-<div id="outline-container-org79827b5" class="outline-2">
698
-<h2 id="org79827b5">What is the most secure chat app to use on mobile?</h2>
699
-<div class="outline-text-2" id="text-org79827b5">
709
+<div id="outline-container-orgc0e8c86" class="outline-2">
710
+<h2 id="orgc0e8c86">What is the most secure chat app to use on mobile?</h2>
711
+<div class="outline-text-2" id="text-orgc0e8c86">
700
 <p>
712
 <p>
701
 On mobile there are various options. The apps which are likely to be most secure are ones which have end-to-end encryption enabled by default and which can also be onion routed via Orbot. End-to-end encryption secures the content of the message and onion routing obscures the metadata, making it hard for a passive adversary to know who is communicating with who.
713
 On mobile there are various options. The apps which are likely to be most secure are ones which have end-to-end encryption enabled by default and which can also be onion routed via Orbot. End-to-end encryption secures the content of the message and onion routing obscures the metadata, making it hard for a passive adversary to know who is communicating with who.
702
 </p>
714
 </p>
706
 </p>
718
 </p>
707
 
719
 
708
 <p>
720
 <p>
709
-There are many <a href="#orgdd36f96">other fashionable chat apps</a> with end-to-end security, but often they are closed source, have a single central server or can't be onion routed. It's also important to remember that closed source chat apps should be assumed to be untrustworthy, since their security cannot be independently verified.
721
+There are many <a href="#orgc47b161">other fashionable chat apps</a> with end-to-end security, but often they are closed source, have a single central server or can't be onion routed. It's also important to remember that closed source chat apps should be assumed to be untrustworthy, since their security cannot be independently verified.
710
 </p>
722
 </p>
711
 </div>
723
 </div>
712
 </div>
724
 </div>
713
-<div id="outline-container-org5e417ee" class="outline-2">
714
-<h2 id="org5e417ee">How do I remove a user from the system?</h2>
715
-<div class="outline-text-2" id="text-org5e417ee">
725
+<div id="outline-container-org444799d" class="outline-2">
726
+<h2 id="org444799d">How do I remove a user from the system?</h2>
727
+<div class="outline-text-2" id="text-org444799d">
716
 <p>
728
 <p>
717
 To remove a user:
729
 To remove a user:
718
 </p>
730
 </p>
727
 </p>
739
 </p>
728
 </div>
740
 </div>
729
 </div>
741
 </div>
730
-<div id="outline-container-org24c86ab" class="outline-2">
731
-<h2 id="org24c86ab">Why is logging for web sites turned off by default?</h2>
732
-<div class="outline-text-2" id="text-org24c86ab">
742
+<div id="outline-container-orgc9b4ece" class="outline-2">
743
+<h2 id="orgc9b4ece">Why is logging for web sites turned off by default?</h2>
744
+<div class="outline-text-2" id="text-orgc9b4ece">
733
 <p>
745
 <p>
734
 If you're making profits out of the logs by running large server warehouses and then data mining what users click on - as is the business model of well known internet companies - then logging everything makes total sense. However, if you're running a home server then logging really only makes sense if you're trying to diagnose some specific problem with the system, and outside of that context logging everything becomes more of a liability than an asset.
746
 If you're making profits out of the logs by running large server warehouses and then data mining what users click on - as is the business model of well known internet companies - then logging everything makes total sense. However, if you're running a home server then logging really only makes sense if you're trying to diagnose some specific problem with the system, and outside of that context logging everything becomes more of a liability than an asset.
735
 </p>
747
 </p>
743
 </p>
755
 </p>
744
 </div>
756
 </div>
745
 </div>
757
 </div>
746
-<div id="outline-container-orgd972cda" class="outline-2">
747
-<h2 id="orgd972cda">How do I reset the tripwire?</h2>
748
-<div class="outline-text-2" id="text-orgd972cda">
758
+<div id="outline-container-orge930cc5" class="outline-2">
759
+<h2 id="orge930cc5">How do I reset the tripwire?</h2>
760
+<div class="outline-text-2" id="text-orge930cc5">
749
 <p>
761
 <p>
750
 The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
762
 The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
751
 </p>
763
 </p>
760
 </p>
772
 </p>
761
 </div>
773
 </div>
762
 </div>
774
 </div>
763
-<div id="outline-container-org4d6c566" class="outline-2">
764
-<h2 id="org4d6c566">Is metadata protected?</h2>
765
-<div class="outline-text-2" id="text-org4d6c566">
775
+<div id="outline-container-org0947e5a" class="outline-2">
776
+<h2 id="org0947e5a">Is metadata protected?</h2>
777
+<div class="outline-text-2" id="text-org0947e5a">
766
 <blockquote>
778
 <blockquote>
767
 <p>
779
 <p>
768
 "<i>We kill people based on metadata</i>"
780
 "<i>We kill people based on metadata</i>"
778
 </p>
790
 </p>
779
 </div>
791
 </div>
780
 </div>
792
 </div>
781
-<div id="outline-container-orga67d74a" class="outline-2">
782
-<h2 id="orga67d74a">How do I create email processing rules?</h2>
783
-<div class="outline-text-2" id="text-orga67d74a">
793
+<div id="outline-container-orgb32e5cb" class="outline-2">
794
+<h2 id="orgb32e5cb">How do I create email processing rules?</h2>
795
+<div class="outline-text-2" id="text-orgb32e5cb">
784
 <div class="org-src-container">
796
 <div class="org-src-container">
785
 <pre class="src src-bash">ssh username@domainname -p 2222
797
 <pre class="src src-bash">ssh username@domainname -p 2222
786
 </pre>
798
 </pre>
836
 </p>
848
 </p>
837
 </div>
849
 </div>
838
 </div>
850
 </div>
839
-<div id="outline-container-org69c34a0" class="outline-2">
840
-<h2 id="org69c34a0">Why isn't dynamic DNS working?</h2>
841
-<div class="outline-text-2" id="text-org69c34a0">
851
+<div id="outline-container-orgcc703f1" class="outline-2">
852
+<h2 id="orgcc703f1">Why isn't dynamic DNS working?</h2>
853
+<div class="outline-text-2" id="text-orgcc703f1">
842
 <p>
854
 <p>
843
 If you run the command:
855
 If you run the command:
844
 </p>
856
 </p>
861
 </div>
873
 </div>
862
 </div>
874
 </div>
863
 
875
 
864
-<div id="outline-container-orgd5c5acc" class="outline-2">
865
-<h2 id="orgd5c5acc">How do I change my encryption settings?</h2>
866
-<div class="outline-text-2" id="text-orgd5c5acc">
876
+<div id="outline-container-orgdb2c631" class="outline-2">
877
+<h2 id="orgdb2c631">How do I change my encryption settings?</h2>
878
+<div class="outline-text-2" id="text-orgdb2c631">
867
 <p>
879
 <p>
868
 Suppose that some new encryption vulnerability has been announced and that you need to change your encryption settings. Maybe an algorithm thought to be secure is now no longer so and you need to remove it. You can change your settings by doing the following:
880
 Suppose that some new encryption vulnerability has been announced and that you need to change your encryption settings. Maybe an algorithm thought to be secure is now no longer so and you need to remove it. You can change your settings by doing the following:
869
 </p>
881
 </p>
878
 </p>
890
 </p>
879
 </div>
891
 </div>
880
 </div>
892
 </div>
881
-<div id="outline-container-orgfc6fd46" class="outline-2">
882
-<h2 id="orgfc6fd46">How do I get a domain name?</h2>
883
-<div class="outline-text-2" id="text-orgfc6fd46">
893
+<div id="outline-container-org748c030" class="outline-2">
894
+<h2 id="org748c030">How do I get a domain name?</h2>
895
+<div class="outline-text-2" id="text-org748c030">
884
 <p>
896
 <p>
885
 Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.
897
 Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.
886
 </p>
898
 </p>
944
 </div>
956
 </div>
945
 </div>
957
 </div>
946
 
958
 
947
-<div id="outline-container-org90eafd9" class="outline-2">
948
-<h2 id="org90eafd9">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
949
-<div class="outline-text-2" id="text-org90eafd9">
959
+<div id="outline-container-org20d848a" class="outline-2">
960
+<h2 id="org20d848a">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
961
+<div class="outline-text-2" id="text-org20d848a">
950
 <p>
962
 <p>
951
 If you did the full install or selected the social variant then the system will have tried to obtain a Let's Encrypt certificate automatically during the install process. If this failed for any reason, or if you have created a new site which you need a certificate for then do the following:
963
 If you did the full install or selected the social variant then the system will have tried to obtain a Let's Encrypt certificate automatically during the install process. If this failed for any reason, or if you have created a new site which you need a certificate for then do the following:
952
 </p>
964
 </p>
965
 </p>
977
 </p>
966
 </div>
978
 </div>
967
 </div>
979
 </div>
968
-<div id="outline-container-orgc91fc72" class="outline-2">
969
-<h2 id="orgc91fc72">How do I renew a Let's Encrypt certificate?</h2>
970
-<div class="outline-text-2" id="text-orgc91fc72">
980
+<div id="outline-container-org364e5b4" class="outline-2">
981
+<h2 id="org364e5b4">How do I renew a Let's Encrypt certificate?</h2>
982
+<div class="outline-text-2" id="text-org364e5b4">
971
 <p>
983
 <p>
972
 Normally certificates will be automatically renewed once per month, so you don't need to be concerned about it. If anything goes wrong with the automatic renewal then you should receive a warning email.
984
 Normally certificates will be automatically renewed once per month, so you don't need to be concerned about it. If anything goes wrong with the automatic renewal then you should receive a warning email.
973
 </p>
985
 </p>
986
 </p>
998
 </p>
987
 </div>
999
 </div>
988
 </div>
1000
 </div>
989
-<div id="outline-container-org73b061c" class="outline-2">
990
-<h2 id="org73b061c">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
991
-<div class="outline-text-2" id="text-org73b061c">
1001
+<div id="outline-container-org92cc380" class="outline-2">
1002
+<h2 id="org92cc380">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
1003
+<div class="outline-text-2" id="text-org92cc380">
992
 <p>
1004
 <p>
993
 Most likely it's because Let's Encrypt doesn't support your particular domain or subdomain. Currently free subdomains tend not to work. You'll need to buy a domain name, link it to your dynamic DNS account and then do:
1005
 Most likely it's because Let's Encrypt doesn't support your particular domain or subdomain. Currently free subdomains tend not to work. You'll need to buy a domain name, link it to your dynamic DNS account and then do:
994
 </p>
1006
 </p>
1003
 </p>
1015
 </p>
1004
 </div>
1016
 </div>
1005
 </div>
1017
 </div>
1006
-<div id="outline-container-org6a6cce4" class="outline-2">
1007
-<h2 id="org6a6cce4">Why not use the services of $company instead? They took the Seppuku pledge</h2>
1008
-<div class="outline-text-2" id="text-org6a6cce4">
1018
+<div id="outline-container-org7fdf511" class="outline-2">
1019
+<h2 id="org7fdf511">Why not use the services of $company instead? They took the Seppuku pledge</h2>
1020
+<div class="outline-text-2" id="text-org7fdf511">
1009
 <p>
1021
 <p>
1010
 <a href="https://cryptostorm.org/viewtopic.php?f=63&amp;t=2954&amp;sid=7de2d1e699cfde2f574e6a7f6ea5a173">That pledge</a> is utterly worthless. Years ago people trusted Google in the same sort of way, because they promised not be be evil and because a lot of the engineers working for them seemed like honest types who were "<i>on our side</i>". Post-<a href="https://en.wikipedia.org/wiki/Nymwars">nymwars</a> and post-<a href="https://en.wikipedia.org/wiki/PRISM_(surveillance_program)">PRISM</a> we know exactly how much Google cared about the privacy and security of its users. But Google is only one particular example. In general don't trust pledges made by companies, even if the people running them seem really sincere.
1022
 <a href="https://cryptostorm.org/viewtopic.php?f=63&amp;t=2954&amp;sid=7de2d1e699cfde2f574e6a7f6ea5a173">That pledge</a> is utterly worthless. Years ago people trusted Google in the same sort of way, because they promised not be be evil and because a lot of the engineers working for them seemed like honest types who were "<i>on our side</i>". Post-<a href="https://en.wikipedia.org/wiki/Nymwars">nymwars</a> and post-<a href="https://en.wikipedia.org/wiki/PRISM_(surveillance_program)">PRISM</a> we know exactly how much Google cared about the privacy and security of its users. But Google is only one particular example. In general don't trust pledges made by companies, even if the people running them seem really sincere.
1011
 </p>
1023
 </p>
1012
 </div>
1024
 </div>
1013
 </div>
1025
 </div>
1014
-<div id="outline-container-orgc36400d" class="outline-2">
1015
-<h2 id="orgc36400d">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
1016
-<div class="outline-text-2" id="text-orgc36400d">
1026
+<div id="outline-container-org2ac01d7" class="outline-2">
1027
+<h2 id="org2ac01d7">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
1028
+<div class="outline-text-2" id="text-org2ac01d7">
1017
 <p>
1029
 <p>
1018
 Welcome to the world of email. Email is really the archetypal decentralized service, developed during the early days of the internet. In principle anyone can run an email server, and that's exactly what you're doing with Freedombone. Email is very useful, but it has a big problem, and that's that the protocols are totally insecure. That made it easy for spammers to do their thing, and in response highly elaborate spam filtering and blocking systems were developed. Chances are that your emails are being blocked in this way. Sometimes the blocking is so indisciminate that entire countries are excluded. What can you do about it? Unless you control the block list at the receiving end you may not be able to do much unless you can find an email proxy server which is trusted by the receiving server.
1030
 Welcome to the world of email. Email is really the archetypal decentralized service, developed during the early days of the internet. In principle anyone can run an email server, and that's exactly what you're doing with Freedombone. Email is very useful, but it has a big problem, and that's that the protocols are totally insecure. That made it easy for spammers to do their thing, and in response highly elaborate spam filtering and blocking systems were developed. Chances are that your emails are being blocked in this way. Sometimes the blocking is so indisciminate that entire countries are excluded. What can you do about it? Unless you control the block list at the receiving end you may not be able to do much unless you can find an email proxy server which is trusted by the receiving server.
1019
 </p>
1031
 </p>
1044
 </p>
1056
 </p>
1045
 </div>
1057
 </div>
1046
 </div>
1058
 </div>
1047
-<div id="outline-container-org73e8a5c" class="outline-2">
1048
-<h2 id="org73e8a5c">Tor is censored/blocked in my area. What can I do?</h2>
1049
-<div class="outline-text-2" id="text-org73e8a5c">
1059
+<div id="outline-container-orga441aa1" class="outline-2">
1060
+<h2 id="orga441aa1">Tor is censored/blocked in my area. What can I do?</h2>
1061
+<div class="outline-text-2" id="text-orga441aa1">
1050
 <p>
1062
 <p>
1051
 If you can find some details for an obfs4 Tor bridge (its IP address, port number and key or nickname) then you can set up the system to use it to connect to the Tor network. Unlike relay nodes the IP addresses for bridges are not public information and so can't be easily known and added to block lists by authoritarian regimes or over-zealous ISPs.
1063
 If you can find some details for an obfs4 Tor bridge (its IP address, port number and key or nickname) then you can set up the system to use it to connect to the Tor network. Unlike relay nodes the IP addresses for bridges are not public information and so can't be easily known and added to block lists by authoritarian regimes or over-zealous ISPs.
1052
 </p>
1064
 </p>
1071
 </div>
1083
 </div>
1072
 </div>
1084
 </div>
1073
 
1085
 
1074
-<div id="outline-container-org1332523" class="outline-2">
1075
-<h2 id="org1332523">I want to block a particular domain from getting its content into my social network sites</h2>
1076
-<div class="outline-text-2" id="text-org1332523">
1086
+<div id="outline-container-orgaf2f408" class="outline-2">
1087
+<h2 id="orgaf2f408">I want to block a particular domain from getting its content into my social network sites</h2>
1088
+<div class="outline-text-2" id="text-orgaf2f408">
1077
 <p>
1089
 <p>
1078
 If you're being pestered by some domain which contains bad/illegal/harrassing content or irritating users you can block domains at the firewall level. Go to the administrator control panel and select <i>domain blocking</i>. You can then block, unblock and view the list of blocked domains.
1090
 If you're being pestered by some domain which contains bad/illegal/harrassing content or irritating users you can block domains at the firewall level. Go to the administrator control panel and select <i>domain blocking</i>. You can then block, unblock and view the list of blocked domains.
1079
 </p>
1091
 </p>
1088
 </div>
1100
 </div>
1089
 </div>
1101
 </div>
1090
 
1102
 
1091
-<div id="outline-container-org7e84bef" class="outline-2">
1092
-<h2 id="org7e84bef">The mesh system doesn't boot from USB drive</h2>
1093
-<div class="outline-text-2" id="text-org7e84bef">
1103
+<div id="outline-container-orgf5fd6ee" class="outline-2">
1104
+<h2 id="orgf5fd6ee">The mesh system doesn't boot from USB drive</h2>
1105
+<div class="outline-text-2" id="text-orgf5fd6ee">
1094
 <p>
1106
 <p>
1095
 If the system doesn't boot and reports an error which includes <b>/dev/mapper/loop0p1</b> then reboot with <b>Ctrl-Alt-Del</b> and when you see the grub menu press <b>e</b> and manually change <b>/dev/mapper/loop0p1</b> to <b>/dev/sdb1</b>, then press <b>Ctrl-x</b>. If that doesn't work then reboot and try <b>/dev/sdc1</b> instead.
1107
 If the system doesn't boot and reports an error which includes <b>/dev/mapper/loop0p1</b> then reboot with <b>Ctrl-Alt-Del</b> and when you see the grub menu press <b>e</b> and manually change <b>/dev/mapper/loop0p1</b> to <b>/dev/sdb1</b>, then press <b>Ctrl-x</b>. If that doesn't work then reboot and try <b>/dev/sdc1</b> instead.
1096
 </p>
1108
 </p>
1101
 </div>
1113
 </div>
1102
 </div>
1114
 </div>
1103
 
1115
 
1104
-<div id="outline-container-orgdae680c" class="outline-2">
1105
-<h2 id="orgdae680c">Mesh system doesn't connect to the network</h2>
1106
-<div class="outline-text-2" id="text-orgdae680c">
1116
+<div id="outline-container-org4b55e47" class="outline-2">
1117
+<h2 id="org4b55e47">Mesh system doesn't connect to the network</h2>
1118
+<div class="outline-text-2" id="text-org4b55e47">
1107
 <p>
1119
 <p>
1108
 Sometimes after boot the mesh system won't connect to other peers on the network. If this happens select the <b>network restart</b> icon and enter the password, which by default is just "freedombone". Wait for a few minutes to see if it connects.
1120
 Sometimes after boot the mesh system won't connect to other peers on the network. If this happens select the <b>network restart</b> icon and enter the password, which by default is just "freedombone". Wait for a few minutes to see if it connects.
1109
 </p>
1121
 </p>

+ 126
- 45
website/EN/homeserver.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
-<title></title>
7
-<!-- 2018-04-12 Thu 18:24 -->
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="Freedombone home server setup"
6
+<!-- 2018-04-21 Sat 14:58 -->
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="Freedombone home server setup"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, home server" />
14
+<meta name="keywords" content="freedombone, home server" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
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; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
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; }
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; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
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'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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'; }
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'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
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; }
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; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
152
 </div>
243
 </div>
153
 
244
 
154
 
245
 
155
-<div id="outline-container-sec-1" class="outline-2">
156
-<h2 id="sec-1">Home Server</h2>
157
-<div class="outline-text-2" id="text-1">
246
+<div id="outline-container-org920b3b6" class="outline-2">
247
+<h2 id="org920b3b6">Home Server</h2>
248
+<div class="outline-text-2" id="text-org920b3b6">
158
 <p>
249
 <p>
159
 The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
250
 The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
160
 </p>
251
 </p>
164
 </p>
255
 </p>
165
 
256
 
166
 <div class="org-src-container">
257
 <div class="org-src-container">
167
-
168
 <pre class="src src-bash">sudo apt-get install git dialog build-essential
258
 <pre class="src src-bash">sudo apt-get install git dialog build-essential
169
 git clone https://github.com/bashrc/freedombone
259
 git clone https://github.com/bashrc/freedombone
170
-cd freedombone
260
+<span class="org-builtin">cd</span> freedombone
171
 git checkout stretch
261
 git checkout stretch
172
 sudo make install
262
 sudo make install
173
 freedombone-image --setup debian
263
 freedombone-image --setup debian
180
 </p>
270
 </p>
181
 
271
 
182
 <div class="org-src-container">
272
 <div class="org-src-container">
183
-
184
 <pre class="src src-bash">sudo pacman -S git dialog
273
 <pre class="src src-bash">sudo pacman -S git dialog
185
 git clone https://github.com/bashrc/freedombone
274
 git clone https://github.com/bashrc/freedombone
186
-cd freedombone
275
+<span class="org-builtin">cd</span> freedombone
187
 git checkout stretch
276
 git checkout stretch
188
 sudo make install
277
 sudo make install
189
 freedombone-image --setup parabola
278
 freedombone-image --setup parabola
196
 </p>
285
 </p>
197
 
286
 
198
 <div class="org-src-container">
287
 <div class="org-src-container">
199
-
200
 <pre class="src src-bash">freedombone-client
288
 <pre class="src src-bash">freedombone-client
201
 </pre>
289
 </pre>
202
 </div>
290
 </div>
234
 </p>
322
 </p>
235
 
323
 
236
 <div class="org-src-container">
324
 <div class="org-src-container">
237
-
238
 <pre class="src src-bash">ls /dev/sd*
325
 <pre class="src src-bash">ls /dev/sd*
239
 </pre>
326
 </pre>
240
 </div>
327
 </div>
248
 </p>
335
 </p>
249
 
336
 
250
 <div class="org-src-container">
337
 <div class="org-src-container">
251
-
252
-<pre class="src src-bash">dd if=/dev/zero of=/dev/sdX bs=1M count=8
253
-dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
338
+<pre class="src src-bash">dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
339
+dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
254
 </pre>
340
 </pre>
255
 </div>
341
 </div>
256
 
342
 
263
 </p>
349
 </p>
264
 
350
 
265
 <div class="org-src-container">
351
 <div class="org-src-container">
266
-
267
 <pre class="src src-bash">username: fbone
352
 <pre class="src src-bash">username: fbone
268
 password: freedombone
353
 password: freedombone
269
 </pre>
354
 </pre>
274
 </p>
359
 </p>
275
 
360
 
276
 <div class="org-src-container">
361
 <div class="org-src-container">
277
-
278
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
362
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
279
 </pre>
363
 </pre>
280
 </div>
364
 </div>
296
 </p>
380
 </p>
297
 
381
 
298
 <div class="org-src-container">
382
 <div class="org-src-container">
299
-
300
 <pre class="src src-bash">freedombone-client --verify
383
 <pre class="src src-bash">freedombone-client --verify
301
 </pre>
384
 </pre>
302
 </div>
385
 </div>
316
 </p>
399
 </p>
317
 
400
 
318
 <div class="org-src-container">
401
 <div class="org-src-container">
319
-
320
 <pre class="src src-bash">freedombone-client
402
 <pre class="src src-bash">freedombone-client
321
 ssh myusername@freedombone.local -p 2222
403
 ssh myusername@freedombone.local -p 2222
322
 </pre>
404
 </pre>
377
 </p>
459
 </p>
378
 
460
 
379
 <div class="org-src-container">
461
 <div class="org-src-container">
380
-
381
 <pre class="src src-bash">man freedombone-image
462
 <pre class="src src-bash">man freedombone-image
382
 </pre>
463
 </pre>
383
 </div>
464
 </div>

+ 240
- 185
website/EN/installation.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
-<title></title>
7
-<!-- 2018-04-12 Thu 13:09 -->
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="Freedombone installation"
6
+<!-- 2018-04-21 Sat 14:58 -->
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="Freedombone installation"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, installation" />
14
+<meta name="keywords" content="freedombone, installation" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
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; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
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; }
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; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
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'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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'; }
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'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
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; }
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; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
151
 </p>
242
 </p>
152
 </div>
243
 </div>
153
 
244
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">Installation</h2>
156
-<div class="outline-text-2" id="text-1">
245
+<div id="outline-container-orgaaffe7e" class="outline-2">
246
+<h2 id="orgaaffe7e">Installation</h2>
247
+<div class="outline-text-2" id="text-orgaaffe7e">
157
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
248
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
158
 
249
 
159
 
250
 
160
 <colgroup>
251
 <colgroup>
161
-<col  class="left" />
252
+<col  class="org-left" />
162
 </colgroup>
253
 </colgroup>
163
 <tbody>
254
 <tbody>
164
 <tr>
255
 <tr>
165
-<td class="left"><a href="#sec-2">Building an image for a Single Board Computer or Virtual Machine</a></td>
256
+<td class="org-left"><a href="#org85992f0">Building an image for a Single Board Computer or Virtual Machine</a></td>
166
 </tr>
257
 </tr>
167
 
258
 
168
 <tr>
259
 <tr>
169
-<td class="left"><a href="#sec-3">Checklist</a></td>
260
+<td class="org-left"><a href="#orga435974">Checklist</a></td>
170
 </tr>
261
 </tr>
171
 
262
 
172
 <tr>
263
 <tr>
173
-<td class="left"><a href="./mesh.html">Mesh network</a></td>
264
+<td class="org-left"><a href="./mesh.html">Mesh network</a></td>
174
 </tr>
265
 </tr>
175
 
266
 
176
 <tr>
267
 <tr>
177
-<td class="left"><a href="#sec-1">Installation</a></td>
268
+<td class="org-left"><a href="#orgaaffe7e">Installation</a></td>
178
 </tr>
269
 </tr>
179
 
270
 
180
 <tr>
271
 <tr>
181
-<td class="left"><a href="#sec-5">Social Key Management - the 'Unforgettable Key'</a></td>
272
+<td class="org-left"><a href="#orgdbb804d">Social Key Management - the 'Unforgettable Key'</a></td>
182
 </tr>
273
 </tr>
183
 
274
 
184
 <tr>
275
 <tr>
185
-<td class="left"><a href="#sec-6">Final Setup</a></td>
276
+<td class="org-left"><a href="#orgc7f7e79">Final Setup</a></td>
186
 </tr>
277
 </tr>
187
 
278
 
188
 <tr>
279
 <tr>
189
-<td class="left"><a href="#sec-7">Keydrives</a></td>
280
+<td class="org-left"><a href="#org5c56524">Keydrives</a></td>
190
 </tr>
281
 </tr>
191
 
282
 
192
 <tr>
283
 <tr>
193
-<td class="left"><a href="#sec-8">On Client Machines</a></td>
284
+<td class="org-left"><a href="#org27e42b6">On Client Machines</a></td>
194
 </tr>
285
 </tr>
195
 
286
 
196
 <tr>
287
 <tr>
197
-<td class="left"><a href="#sec-9">Administering the system</a></td>
288
+<td class="org-left"><a href="#org24fb926">Administering the system</a></td>
198
 </tr>
289
 </tr>
199
 </tbody>
290
 </tbody>
200
 </table>
291
 </table>
201
 </div>
292
 </div>
202
 </div>
293
 </div>
203
 
294
 
204
-<div id="outline-container-sec-2" class="outline-2">
205
-<h2 id="sec-2">Building an image for a Single Board Computer or Virtual Machine</h2>
206
-<div class="outline-text-2" id="text-2">
295
+<div id="outline-container-org85992f0" class="outline-2">
296
+<h2 id="org85992f0">Building an image for a Single Board Computer or Virtual Machine</h2>
297
+<div class="outline-text-2" id="text-org85992f0">
207
 <p>
298
 <p>
208
 You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the <b>freedombone-image</b> command.
299
 You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the <b>freedombone-image</b> command.
209
 </p>
300
 </p>
213
 </p>
304
 </p>
214
 
305
 
215
 <div class="org-src-container">
306
 <div class="org-src-container">
216
-
217
 <pre class="src src-bash">sudo apt-get install git build-essential dialog
307
 <pre class="src src-bash">sudo apt-get install git build-essential dialog
218
 git clone https://github.com/bashrc/freedombone
308
 git clone https://github.com/bashrc/freedombone
219
-cd freedombone
309
+<span class="org-builtin">cd</span> freedombone
220
 git checkout stretch
310
 git checkout stretch
221
 sudo make install
311
 sudo make install
222
 </pre>
312
 </pre>
227
 </p>
317
 </p>
228
 
318
 
229
 <div class="org-src-container">
319
 <div class="org-src-container">
230
-
231
 <pre class="src src-bash">freedombone-image --setup debian
320
 <pre class="src src-bash">freedombone-image --setup debian
232
 </pre>
321
 </pre>
233
 </div>
322
 </div>
237
 </p>
326
 </p>
238
 
327
 
239
 <div class="org-src-container">
328
 <div class="org-src-container">
240
-
241
 <pre class="src src-bash">freedombone-image --setup parabola
329
 <pre class="src src-bash">freedombone-image --setup parabola
242
 </pre>
330
 </pre>
243
 </div>
331
 </div>
247
 </p>
335
 </p>
248
 
336
 
249
 <div class="org-src-container">
337
 <div class="org-src-container">
250
-
251
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
338
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
252
 </pre>
339
 </pre>
253
 </div>
340
 </div>
257
 </p>
344
 </p>
258
 
345
 
259
 <div class="org-src-container">
346
 <div class="org-src-container">
260
-
261
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
347
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
262
 </pre>
348
 </pre>
263
 </div>
349
 </div>
267
 </p>
353
 </p>
268
 
354
 
269
 <div class="org-src-container">
355
 <div class="org-src-container">
270
-
271
 <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
356
 <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
272
 </pre>
357
 </pre>
273
 </div>
358
 </div>
281
 </p>
366
 </p>
282
 
367
 
283
 <div class="org-src-container">
368
 <div class="org-src-container">
284
-
285
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
369
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
286
 </pre>
370
 </pre>
287
 </div>
371
 </div>
288
 </div>
372
 </div>
289
 </div>
373
 </div>
290
 
374
 
291
-<div id="outline-container-sec-3" class="outline-2">
292
-<h2 id="sec-3">Checklist</h2>
293
-<div class="outline-text-2" id="text-3">
375
+<div id="outline-container-orga435974" class="outline-2">
376
+<h2 id="orga435974">Checklist</h2>
377
+<div class="outline-text-2" id="text-orga435974">
294
 <p>
378
 <p>
295
 Before installing Freedombone you will need a few things.
379
 Before installing Freedombone you will need a few things.
296
 </p>
380
 </p>
297
 
381
 
298
 <ul class="org-ul">
382
 <ul class="org-ul">
299
-<li>Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt.
300
-</li>
301
-<li>System with a new installation of Debian Stretch or a downloaded/prepared disk image
302
-</li>
303
-<li>Ethernet connection between the system and your internet router
304
-</li>
305
-<li>That it is possible to forward ports from the internet router to the system, typically via firewall settings
306
-</li>
307
-<li>Have ssh access to the system, typically via fbone@freedombone.local on port 2222
308
-</li>
383
+<li>Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt.</li>
384
+<li>System with a new installation of Debian Stretch or a downloaded/prepared disk image</li>
385
+<li>Ethernet connection between the system and your internet router</li>
386
+<li>That it is possible to forward ports from the internet router to the system, typically via firewall settings</li>
387
+<li>Have ssh access to the system, typically via fbone@freedombone.local on port 2222</li>
309
 </ul>
388
 </ul>
310
 </div>
389
 </div>
311
 </div>
390
 </div>
312
-<div id="outline-container-sec-4" class="outline-2">
313
-<h2 id="sec-4">Installation</h2>
314
-<div class="outline-text-2" id="text-4">
391
+<div id="outline-container-org81afcd3" class="outline-2">
392
+<h2 id="org81afcd3">Installation</h2>
393
+<div class="outline-text-2" id="text-org81afcd3">
315
 <p>
394
 <p>
316
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
395
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
317
 </p>
396
 </p>
318
 </div>
397
 </div>
319
 
398
 
320
-<div id="outline-container-sec-4-1" class="outline-3">
321
-<h3 id="sec-4-1">On a Laptop, Netbook or Desktop machine</h3>
322
-<div class="outline-text-3" id="text-4-1">
399
+<div id="outline-container-org8cf2237" class="outline-3">
400
+<h3 id="org8cf2237">On a Laptop, Netbook or Desktop machine</h3>
401
+<div class="outline-text-3" id="text-org8cf2237">
323
 <p>
402
 <p>
324
 If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
403
 If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
325
 </p>
404
 </p>
326
 
405
 
327
 <div class="org-src-container">
406
 <div class="org-src-container">
328
-
329
 <pre class="src src-bash">su
407
 <pre class="src src-bash">su
330
 apt-get update
408
 apt-get update
331
 apt-get -y install git dialog build-essential
409
 apt-get -y install git dialog build-essential
332
 git clone https://github.com/bashrc/freedombone
410
 git clone https://github.com/bashrc/freedombone
333
-cd freedombone
411
+<span class="org-builtin">cd</span> freedombone
334
 git checkout stretch
412
 git checkout stretch
335
 make install
413
 make install
336
 freedombone menuconfig
414
 freedombone menuconfig
339
 </div>
417
 </div>
340
 </div>
418
 </div>
341
 
419
 
342
-<div id="outline-container-sec-4-2" class="outline-3">
343
-<h3 id="sec-4-2">On a single board computer (SBC)</h3>
344
-<div class="outline-text-3" id="text-4-2">
420
+<div id="outline-container-orge5e5408" class="outline-3">
421
+<h3 id="orge5e5408">On a single board computer (SBC)</h3>
422
+<div class="outline-text-3" id="text-orge5e5408">
345
 <p>
423
 <p>
346
 Currently the following boards are supported:
424
 Currently the following boards are supported:
347
 </p>
425
 </p>
348
 
426
 
349
 <ul class="org-ul">
427
 <ul class="org-ul">
350
-<li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a>
351
-</li>
352
-<li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a>
353
-</li>
354
-<li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a>
355
-</li>
356
-<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a>
357
-</li>
358
-<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a>
359
-</li>
360
-<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a>
361
-</li>
362
-<li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a>
363
-</li>
428
+<li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a></li>
429
+<li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a></li>
430
+<li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a></li>
431
+<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a></li>
432
+<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a></li>
433
+<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a></li>
434
+<li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a></li>
364
 </ul>
435
 </ul>
365
 
436
 
366
 <p>
437
 <p>
368
 </p>
439
 </p>
369
 
440
 
370
 <div class="org-src-container">
441
 <div class="org-src-container">
371
-
372
 <pre class="src src-bash">gpg --verify filename.img.asc
442
 <pre class="src src-bash">gpg --verify filename.img.asc
373
 </pre>
443
 </pre>
374
 </div>
444
 </div>
378
 </p>
448
 </p>
379
 
449
 
380
 <div class="org-src-container">
450
 <div class="org-src-container">
381
-
382
 <pre class="src src-bash">sha256sum filename.img
451
 <pre class="src src-bash">sha256sum filename.img
383
 </pre>
452
 </pre>
384
 </div>
453
 </div>
388
 </p>
457
 </p>
389
 
458
 
390
 <div class="org-src-container">
459
 <div class="org-src-container">
391
-
392
 <pre class="src src-bash">unxz filename.img.xz
460
 <pre class="src src-bash">unxz filename.img.xz
393
 </pre>
461
 </pre>
394
 </div>
462
 </div>
398
 </p>
466
 </p>
399
 
467
 
400
 <div class="org-src-container">
468
 <div class="org-src-container">
401
-
402
-<pre class="src src-bash">sudo dd bs=1M if=filename.img of=/dev/sdX conv=fdatasync
469
+<pre class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=filename.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
403
 </pre>
470
 </pre>
404
 </div>
471
 </div>
405
 
472
 
408
 </p>
475
 </p>
409
 
476
 
410
 <div class="org-src-container">
477
 <div class="org-src-container">
411
-
412
 <pre class="src src-bash">ls /dev/sd*
478
 <pre class="src src-bash">ls /dev/sd*
413
 </pre>
479
 </pre>
414
 </div>
480
 </div>
422
 </p>
488
 </p>
423
 
489
 
424
 <div class="org-src-container">
490
 <div class="org-src-container">
425
-
426
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
491
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
427
 </pre>
492
 </pre>
428
 </div>
493
 </div>
433
 </div>
498
 </div>
434
 </div>
499
 </div>
435
 
500
 
436
-<div id="outline-container-sec-4-3" class="outline-3">
437
-<h3 id="sec-4-3">As a Virtual Machine</h3>
438
-<div class="outline-text-3" id="text-4-3">
501
+<div id="outline-container-org9ae9946" class="outline-3">
502
+<h3 id="org9ae9946">As a Virtual Machine</h3>
503
+<div class="outline-text-3" id="text-org9ae9946">
439
 <p>
504
 <p>
440
 Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
505
 Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
441
 </p>
506
 </p>
442
 
507
 
443
 <div class="org-src-container">
508
 <div class="org-src-container">
444
-
445
 <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
509
 <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
446
 </pre>
510
 </pre>
447
 </div>
511
 </div>
453
 </div>
517
 </div>
454
 </div>
518
 </div>
455
 
519
 
456
-<div id="outline-container-sec-5" class="outline-2">
457
-<h2 id="sec-5">Social Key Management - the 'Unforgettable Key'</h2>
458
-<div class="outline-text-2" id="text-5">
520
+<div id="outline-container-orgdbb804d" class="outline-2">
521
+<h2 id="orgdbb804d">Social Key Management - the 'Unforgettable Key'</h2>
522
+<div class="outline-text-2" id="text-orgdbb804d">
459
 <p>
523
 <p>
460
 During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
524
 During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
461
 </p>
525
 </p>
462
 </div>
526
 </div>
463
 
527
 
464
-<div id="outline-container-sec-5-1" class="outline-3">
465
-<h3 id="sec-5-1">You have the gnupg keyring on an encrypted USB drive</h3>
466
-<div class="outline-text-3" id="text-5-1">
528
+<div id="outline-container-orgea070ec" class="outline-3">
529
+<h3 id="orgea070ec">You have the gnupg keyring on an encrypted USB drive</h3>
530
+<div class="outline-text-3" id="text-orgea070ec">
467
 <p>
531
 <p>
468
 If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
532
 If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
469
 </p>
533
 </p>
470
 </div>
534
 </div>
471
 </div>
535
 </div>
472
-<div id="outline-container-sec-5-2" class="outline-3">
473
-<h3 id="sec-5-2">You have a number of key fragments on USB drives retrieved from friends</h3>
474
-<div class="outline-text-3" id="text-5-2">
536
+<div id="outline-container-org08d572c" class="outline-3">
537
+<h3 id="org08d572c">You have a number of key fragments on USB drives retrieved from friends</h3>
538
+<div class="outline-text-3" id="text-org08d572c">
475
 <p>
539
 <p>
476
-If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#sec-7">Keydrives</a>.
540
+If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#org5c56524">Keydrives</a>.
477
 </p>
541
 </p>
478
 </div>
542
 </div>
479
 </div>
543
 </div>
480
-<div id="outline-container-sec-5-3" class="outline-3">
481
-<h3 id="sec-5-3">You can specify some ssh login details for friends servers containing key fragments</h3>
482
-<div class="outline-text-3" id="text-5-3">
544
+<div id="outline-container-orgf13618c" class="outline-3">
545
+<h3 id="orgf13618c">You can specify some ssh login details for friends servers containing key fragments</h3>
546
+<div class="outline-text-3" id="text-orgf13618c">
483
 <p>
547
 <p>
484
 Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
548
 Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
485
 </p>
549
 </p>
486
 </div>
550
 </div>
487
 </div>
551
 </div>
488
 </div>
552
 </div>
489
-<div id="outline-container-sec-6" class="outline-2">
490
-<h2 id="sec-6">Final Setup</h2>
491
-<div class="outline-text-2" id="text-6">
553
+<div id="outline-container-orgc7f7e79" class="outline-2">
554
+<h2 id="orgc7f7e79">Final Setup</h2>
555
+<div class="outline-text-2" id="text-orgc7f7e79">
492
 <p>
556
 <p>
493
 Any manual post-installation setup instructions or passwords can be found in /home/username/README.
557
 Any manual post-installation setup instructions or passwords can be found in /home/username/README.
494
 </p>
558
 </p>
501
 
565
 
502
 
566
 
503
 <colgroup>
567
 <colgroup>
504
-<col  class="left" />
568
+<col  class="org-left" />
505
 
569
 
506
-<col  class="right" />
570
+<col  class="org-right" />
507
 </colgroup>
571
 </colgroup>
508
 <thead>
572
 <thead>
509
 <tr>
573
 <tr>
510
-<th scope="col" class="left">Service</th>
511
-<th scope="col" class="right">Ports</th>
574
+<th scope="col" class="org-left">Service</th>
575
+<th scope="col" class="org-right">Ports</th>
512
 </tr>
576
 </tr>
513
 </thead>
577
 </thead>
514
 <tbody>
578
 <tbody>
515
 <tr>
579
 <tr>
516
-<td class="left">HTTP</td>
517
-<td class="right">80</td>
580
+<td class="org-left">HTTP</td>
581
+<td class="org-right">80</td>
518
 </tr>
582
 </tr>
519
 
583
 
520
 <tr>
584
 <tr>
521
-<td class="left">HTTPS</td>
522
-<td class="right">443</td>
585
+<td class="org-left">HTTPS</td>
586
+<td class="org-right">443</td>
523
 </tr>
587
 </tr>
524
 
588
 
525
 <tr>
589
 <tr>
526
-<td class="left">SSH</td>
527
-<td class="right">2222</td>
590
+<td class="org-left">SSH</td>
591
+<td class="org-right">2222</td>
528
 </tr>
592
 </tr>
529
 
593
 
530
 <tr>
594
 <tr>
531
-<td class="left">DLNA</td>
532
-<td class="right">1900</td>
595
+<td class="org-left">DLNA</td>
596
+<td class="org-right">1900</td>
533
 </tr>
597
 </tr>
534
 
598
 
535
 <tr>
599
 <tr>
536
-<td class="left">DLNA</td>
537
-<td class="right">8200</td>
600
+<td class="org-left">DLNA</td>
601
+<td class="org-right">8200</td>
538
 </tr>
602
 </tr>
539
 
603
 
540
 <tr>
604
 <tr>
541
-<td class="left">XMPP</td>
542
-<td class="right">5222..5223</td>
605
+<td class="org-left">XMPP</td>
606
+<td class="org-right">5222..5223</td>
543
 </tr>
607
 </tr>
544
 
608
 
545
 <tr>
609
 <tr>
546
-<td class="left">XMPP</td>
547
-<td class="right">5269</td>
610
+<td class="org-left">XMPP</td>
611
+<td class="org-right">5269</td>
548
 </tr>
612
 </tr>
549
 
613
 
550
 <tr>
614
 <tr>
551
-<td class="left">XMPP</td>
552
-<td class="right">5280..5281</td>
615
+<td class="org-left">XMPP</td>
616
+<td class="org-right">5280..5281</td>
553
 </tr>
617
 </tr>
554
 
618
 
555
 <tr>
619
 <tr>
556
-<td class="left">IRC</td>
557
-<td class="right">6697</td>
620
+<td class="org-left">IRC</td>
621
+<td class="org-right">6697</td>
558
 </tr>
622
 </tr>
559
 
623
 
560
 <tr>
624
 <tr>
561
-<td class="left">Git</td>
562
-<td class="right">9418</td>
625
+<td class="org-left">Git</td>
626
+<td class="org-right">9418</td>
563
 </tr>
627
 </tr>
564
 
628
 
565
 <tr>
629
 <tr>
566
-<td class="left">Email</td>
567
-<td class="right">25</td>
630
+<td class="org-left">Email</td>
631
+<td class="org-right">25</td>
568
 </tr>
632
 </tr>
569
 
633
 
570
 <tr>
634
 <tr>
571
-<td class="left">Email</td>
572
-<td class="right">587</td>
635
+<td class="org-left">Email</td>
636
+<td class="org-right">587</td>
573
 </tr>
637
 </tr>
574
 
638
 
575
 <tr>
639
 <tr>
576
-<td class="left">Email</td>
577
-<td class="right">465</td>
640
+<td class="org-left">Email</td>
641
+<td class="org-right">465</td>
578
 </tr>
642
 </tr>
579
 
643
 
580
 <tr>
644
 <tr>
581
-<td class="left">Email</td>
582
-<td class="right">993</td>
645
+<td class="org-left">Email</td>
646
+<td class="org-right">993</td>
583
 </tr>
647
 </tr>
584
 
648
 
585
 <tr>
649
 <tr>
586
-<td class="left">VoIP</td>
587
-<td class="right">64738</td>
650
+<td class="org-left">VoIP</td>
651
+<td class="org-right">64738</td>
588
 </tr>
652
 </tr>
589
 
653
 
590
 <tr>
654
 <tr>
591
-<td class="left">VoIP</td>
592
-<td class="right">5060</td>
655
+<td class="org-left">VoIP</td>
656
+<td class="org-right">5060</td>
593
 </tr>
657
 </tr>
594
 
658
 
595
 <tr>
659
 <tr>
596
-<td class="left">Tox</td>
597
-<td class="right">33445</td>
660
+<td class="org-left">Tox</td>
661
+<td class="org-right">33445</td>
598
 </tr>
662
 </tr>
599
 
663
 
600
 <tr>
664
 <tr>
601
-<td class="left">Syncthing</td>
602
-<td class="right">22000</td>
665
+<td class="org-left">Syncthing</td>
666
+<td class="org-right">22000</td>
603
 </tr>
667
 </tr>
604
 </tbody>
668
 </tbody>
605
 </table>
669
 </table>
606
 </div>
670
 </div>
607
 </div>
671
 </div>
608
 
672
 
609
-<div id="outline-container-sec-7" class="outline-2">
610
-<h2 id="sec-7">Keydrives</h2>
611
-<div class="outline-text-2" id="text-7">
673
+<div id="outline-container-org5c56524" class="outline-2">
674
+<h2 id="org5c56524">Keydrives</h2>
675
+<div class="outline-text-2" id="text-org5c56524">
612
 <p>
676
 <p>
613
 After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
677
 After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
614
 </p>
678
 </p>
615
 </div>
679
 </div>
616
-<div id="outline-container-sec-7-1" class="outline-3">
617
-<h3 id="sec-7-1">Master Keydrive</h3>
618
-<div class="outline-text-3" id="text-7-1">
680
+<div id="outline-container-orga8df9a9" class="outline-3">
681
+<h3 id="orga8df9a9">Master Keydrive</h3>
682
+<div class="outline-text-3" id="text-orga8df9a9">
619
 <p>
683
 <p>
620
 This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">done from the <i>Disk Utility</i> application</a>. Then plug it into the Freedombone system, then from your local machine run:
684
 This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">done from the <i>Disk Utility</i> application</a>. Then plug it into the Freedombone system, then from your local machine run:
621
 </p>
685
 </p>
622
 
686
 
623
 <div class="org-src-container">
687
 <div class="org-src-container">
624
-
625
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
688
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
626
 </pre>
689
 </pre>
627
 </div>
690
 </div>
631
 </p>
694
 </p>
632
 </div>
695
 </div>
633
 </div>
696
 </div>
634
-<div id="outline-container-sec-7-2" class="outline-3">
635
-<h3 id="sec-7-2">Fragment keydrives</h3>
636
-<div class="outline-text-3" id="text-7-2">
697
+<div id="outline-container-orgfbd6e5b" class="outline-3">
698
+<h3 id="orgfbd6e5b">Fragment keydrives</h3>
699
+<div class="outline-text-3" id="text-orgfbd6e5b">
637
 <p>
700
 <p>
638
 This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">can be done from the <i>Disk Utility</i> application</a>. Plug it into the Freedombone system then from your local machine run the following commands:
701
 This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">can be done from the <i>Disk Utility</i> application</a>. Plug it into the Freedombone system then from your local machine run the following commands:
639
 </p>
702
 </p>
640
 
703
 
641
 <div class="org-src-container">
704
 <div class="org-src-container">
642
-
643
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
705
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
644
 </pre>
706
 </pre>
645
 </div>
707
 </div>
654
 </div>
716
 </div>
655
 </div>
717
 </div>
656
 </div>
718
 </div>
657
-<div id="outline-container-sec-8" class="outline-2">
658
-<h2 id="sec-8">On Client Machines</h2>
659
-<div class="outline-text-2" id="text-8">
719
+<div id="outline-container-org27e42b6" class="outline-2">
720
+<h2 id="org27e42b6">On Client Machines</h2>
721
+<div class="outline-text-2" id="text-org27e42b6">
660
 <p>
722
 <p>
661
 You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
723
 You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
662
 </p>
724
 </p>
663
 
725
 
664
 <div class="org-src-container">
726
 <div class="org-src-container">
665
-
666
 <pre class="src src-bash">sudo apt-get update
727
 <pre class="src src-bash">sudo apt-get update
667
 sudo apt-get install git dialog haveged build-essential
728
 sudo apt-get install git dialog haveged build-essential
668
 git clone https://github.com/bashrc/freedombone
729
 git clone https://github.com/bashrc/freedombone
669
-cd freedombone
730
+<span class="org-builtin">cd</span> freedombone
670
 git checkout stretch
731
 git checkout stretch
671
 sudo make install
732
 sudo make install
672
 freedombone-client
733
 freedombone-client
675
 </div>
736
 </div>
676
 </div>
737
 </div>
677
 
738
 
678
-<div id="outline-container-sec-9" class="outline-2">
679
-<h2 id="sec-9">Administering the system</h2>
680
-<div class="outline-text-2" id="text-9">
739
+<div id="outline-container-org24fb926" class="outline-2">
740
+<h2 id="org24fb926">Administering the system</h2>
741
+<div class="outline-text-2" id="text-org24fb926">
681
 <p>
742
 <p>
682
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
743
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
683
 </p>
744
 </p>
684
 
745
 
685
 <div class="org-src-container">
746
 <div class="org-src-container">
686
-
687
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
747
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
688
 </pre>
748
 </pre>
689
 </div>
749
 </div>
692
 Select <i>Administrator controls</i> then from there you will be able to perform various tasks, such as backups, adding and removing users and so on. You can also do this via commands, which are typically installed as /usr/local/bin/freedombone* and the corresponding manpages.
752
 Select <i>Administrator controls</i> then from there you will be able to perform various tasks, such as backups, adding and removing users and so on. You can also do this via commands, which are typically installed as /usr/local/bin/freedombone* and the corresponding manpages.
693
 </p>
753
 </p>
694
 
754
 
695
-<div class="export">
696
-<p>
697
-&lt;center&gt;
698
-Return to the &lt;a href="index.html"&gt;home page&lt;/a&gt;
699
-&lt;/center&gt;
700
-</p>
701
-
702
-</div>
755
+<center>
756
+Return to the <a href="index.html">home page</a>
757
+</center>
703
 </div>
758
 </div>
704
 </div>
759
 </div>
705
 </div>
760
 </div>

+ 136
- 61
website/EN/mesh_capabilities.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
-<title></title>
7
-<!-- 2018-04-12 Thu 18:24 -->
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="Freedombone mesh network capabilities"
6
+<!-- 2018-04-22 Sun 10:31 -->
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="Freedombone mesh network capabilities"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, mesh" />
14
+<meta name="keywords" content="freedombone, mesh" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
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; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
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; }
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; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
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'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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'; }
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'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
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; }
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; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
151
 </p>
242
 </p>
152
 </div>
243
 </div>
153
 
244
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">Mesh Network: Capabilities</h2>
156
-<div class="outline-text-2" id="text-1">
245
+<div id="outline-container-org19c4251" class="outline-2">
246
+<h2 id="org19c4251">Mesh Network: Capabilities</h2>
247
+<div class="outline-text-2" id="text-org19c4251">
157
 <p>
248
 <p>
158
 The mesh system has the following capabilities:
249
 The mesh system has the following capabilities:
159
 </p>
250
 </p>
160
 
251
 
161
 <ul class="org-ul">
252
 <ul class="org-ul">
162
-<li>Discovery of other users on the network
163
-</li>
164
-<li>Text based chat, one-to-one and in groups
165
-</li>
166
-<li>Voice chat (VoIP) and video calls
167
-</li>
168
-<li>Private and public sharing of files
169
-</li>
170
-<li>Blogging
171
-</li>
172
-<li>Collaborative editing of documents and presentations
173
-</li>
174
-<li>Creating and broadcasting audio media/podcasts
175
-</li>
176
-<li>Social network stream. Follow/unfollow other peers
177
-</li>
178
-<li>No network administration required
179
-</li>
180
-<li>No servers
181
-</li>
182
-<li>Internet connection is optional
183
-</li>
184
-<li>Works from bootable USB drives or microSD drives
185
-</li>
186
-<li>Data is mesh routed between systems
187
-</li>
188
-<li>Private communications is end-to-end secured and forward secret
189
-</li>
190
-<li>Publicly shared data is <i>content addressable</i>
191
-</li>
253
+<li>Discovery of other users on the network</li>
254
+<li>Text based chat, one-to-one and in groups</li>
255
+<li>Voice chat (VoIP) and video calls</li>
256
+<li>Private and public sharing of files</li>
257
+<li>Blogging</li>
258
+<li>Collaborative editing of documents and presentations</li>
259
+<li>Social network stream. Follow/unfollow other peers</li>
260
+<li>No network administration required</li>
261
+<li>No servers</li>
262
+<li>Internet connection is optional</li>
263
+<li>Works from bootable USB drives or microSD drives</li>
264
+<li>Data is mesh routed between systems</li>
265
+<li>Private communications is end-to-end secured and forward secret</li>
266
+<li>Publicly shared data is <i>content addressable</i></li>
192
 </ul>
267
 </ul>
193
 
268
 
194
 <p>
269
 <p>

+ 28
- 28
website/EN/mesh_images.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-15 Sun 18:25 -->
6
+<!-- 2018-04-21 Sat 14:59 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
242
 </p>
242
 </p>
243
 </div>
243
 </div>
244
 
244
 
245
-<div id="outline-container-orgd03cecc" class="outline-2">
246
-<h2 id="orgd03cecc">Mesh Network: Images</h2>
245
+<div id="outline-container-org86cebe1" class="outline-2">
246
+<h2 id="org86cebe1">Mesh Network: Images</h2>
247
 </div>
247
 </div>
248
 
248
 
249
-<div id="outline-container-org2613bbd" class="outline-2">
250
-<h2 id="org2613bbd">Pre-built Disk Images</h2>
251
-<div class="outline-text-2" id="text-org2613bbd">
249
+<div id="outline-container-org144a10d" class="outline-2">
250
+<h2 id="org144a10d">Pre-built Disk Images</h2>
251
+<div class="outline-text-2" id="text-org144a10d">
252
 </div>
252
 </div>
253
-<div id="outline-container-org3cdda6d" class="outline-3">
254
-<h3 id="org3cdda6d">Writing many images quickly</h3>
255
-<div class="outline-text-3" id="text-org3cdda6d">
253
+<div id="outline-container-org4231464" class="outline-3">
254
+<h3 id="org4231464">Writing many images quickly</h3>
255
+<div class="outline-text-3" id="text-org4231464">
256
 <p>
256
 <p>
257
 There may be situations where you need to write the same disk image to multiple drives at the same time in order to maximize rate of deployment. In the instructions given below the <b>dd</b> command is used for writing to the target drive, but to write to multiple drives you can use a tool such as <a href="https://wiki.gnome.org/Apps/MultiWriter">GNOME MultiWriter</a>.
257
 There may be situations where you need to write the same disk image to multiple drives at the same time in order to maximize rate of deployment. In the instructions given below the <b>dd</b> command is used for writing to the target drive, but to write to multiple drives you can use a tool such as <a href="https://wiki.gnome.org/Apps/MultiWriter">GNOME MultiWriter</a>.
258
 </p>
258
 </p>
280
 </p>
280
 </p>
281
 </div>
281
 </div>
282
 </div>
282
 </div>
283
-<div id="outline-container-org41f717a" class="outline-3">
284
-<h3 id="org41f717a">Client images</h3>
285
-<div class="outline-text-3" id="text-org41f717a">
283
+<div id="outline-container-org47d0e94" class="outline-3">
284
+<h3 id="org47d0e94">Client images</h3>
285
+<div class="outline-text-3" id="text-org47d0e94">
286
 
286
 
287
 <div class="figure">
287
 <div class="figure">
288
 <p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" />
288
 <p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" />
299
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig
299
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig
300
 gpg --verify freedombone-meshclient-i386.img.xz.sig
300
 gpg --verify freedombone-meshclient-i386.img.xz.sig
301
 unxz freedombone-meshclient-i386.img.xz
301
 unxz freedombone-meshclient-i386.img.xz
302
-sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
303
-sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-meshclient-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
302
+sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
303
+sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-meshclient-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
304
 </pre>
304
 </pre>
305
 </div>
305
 </div>
306
 
306
 
318
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig
318
 wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig
319
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
319
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
320
 unxz freedombone-meshclient-insecure-i386.img.xz
320
 unxz freedombone-meshclient-insecure-i386.img.xz
321
-sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
322
-sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-meshclient-insecure-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
321
+sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
322
+sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-meshclient-insecure-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
323
 </pre>
323
 </pre>
324
 </div>
324
 </div>
325
 </div>
325
 </div>
326
 </div>
326
 </div>
327
 
327
 
328
-<div id="outline-container-orgbe3f97e" class="outline-3">
329
-<h3 id="orgbe3f97e">Router images</h3>
330
-<div class="outline-text-3" id="text-orgbe3f97e">
328
+<div id="outline-container-orge2c765f" class="outline-3">
329
+<h3 id="orge2c765f">Router images</h3>
330
+<div class="outline-text-3" id="text-orge2c765f">
331
 <p>
331
 <p>
332
 Routers are intended to build network coverage for an area using small and low cost hardware. You can bolt them to walls or leave them on window ledges. They don't have any user interface and their only job is to haul network traffic across the mesh and to enable peers to find each other via running bootstrap nodes for Tox and IPFS. Copy the image to a microSD card and insert it into the router, plug in an Atheros wifi dongle and power on. That should be all you need to do.
332
 Routers are intended to build network coverage for an area using small and low cost hardware. You can bolt them to walls or leave them on window ledges. They don't have any user interface and their only job is to haul network traffic across the mesh and to enable peers to find each other via running bootstrap nodes for Tox and IPFS. Copy the image to a microSD card and insert it into the router, plug in an Atheros wifi dongle and power on. That should be all you need to do.
333
 </p>
333
 </p>
334
 </div>
334
 </div>
335
-<div id="outline-container-org1859392" class="outline-4">
336
-<h4 id="org1859392">Beaglebone Black</h4>
337
-<div class="outline-text-4" id="text-org1859392">
335
+<div id="outline-container-org0194fde" class="outline-4">
336
+<h4 id="org0194fde">Beaglebone Black</h4>
337
+<div class="outline-text-4" id="text-org0194fde">
338
 
338
 
339
 <div class="figure">
339
 <div class="figure">
340
 <p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" />
340
 <p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" />
353
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
353
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
354
 ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
354
 ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
355
 unxz freedombone-mesh_beaglebone-armhf.img.xz
355
 unxz freedombone-mesh_beaglebone-armhf.img.xz
356
-sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-mesh_beaglebone-armhf.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
356
+sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-mesh_beaglebone-armhf.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
357
 </pre>
357
 </pre>
358
 </div>
358
 </div>
359
 
359
 
369
 </div>
369
 </div>
370
 </div>
370
 </div>
371
 
371
 
372
-<div id="outline-container-orgf16e84d" class="outline-2">
373
-<h2 id="orgf16e84d">Building Disk Images</h2>
374
-<div class="outline-text-2" id="text-orgf16e84d">
372
+<div id="outline-container-orgfcd1440" class="outline-2">
373
+<h2 id="orgfcd1440">Building Disk Images</h2>
374
+<div class="outline-text-2" id="text-orgfcd1440">
375
 <p>
375
 <p>
376
 It's better not to trust images downloaded from random places on the interwebs. Chances are that unless you are in the web of trust of the above GPG signatures then they don't mean very much to you. If you actually want something trustworthy then build the images from scratch. It will take some time. Here's how to do it.
376
 It's better not to trust images downloaded from random places on the interwebs. Chances are that unless you are in the web of trust of the above GPG signatures then they don't mean very much to you. If you actually want something trustworthy then build the images from scratch. It will take some time. Here's how to do it.
377
 </p>
377
 </p>
425
 </p>
425
 </p>
426
 
426
 
427
 <div class="org-src-container">
427
 <div class="org-src-container">
428
-<pre class="src src-bash">sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
429
-sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
428
+<pre class="src src-bash">sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
429
+sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
430
 </pre>
430
 </pre>
431
 </div>
431
 </div>
432
 
432
 

+ 136
- 55
website/EN/release3.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
-<title></title>
7
-<!-- 2018-04-12 Thu 13:25 -->
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="Version 3"
6
+<!-- 2018-04-21 Sat 14:59 -->
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="Version 3"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone" />
14
+<meta name="keywords" content="freedombone" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
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; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
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; }
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; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
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'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
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'; }
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'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
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; }
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; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/release3.jpg" alt="release3.jpg" width="100%" align="center" />
241
 <p><img src="images/release3.jpg" alt="release3.jpg" width="100%" align="center" />
151
 </p>
242
 </p>
152
 </div>
243
 </div>
153
 
244
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">Building an internet run by the users, for the users</h2>
156
-<div class="outline-text-2" id="text-1">
245
+<div id="outline-container-org9121f8f" class="outline-2">
246
+<h2 id="org9121f8f">Building an internet run by the users, for the users</h2>
247
+<div class="outline-text-2" id="text-org9121f8f">
157
 <p>
248
 <p>
158
 The internet may still be mostly in the clutches of a few giant megacorporations and dubious governments with sketchy agendas, but it doesn't have to remain that way. With the third version of the Freedombone system there is now more scope than before to take back your privacy, have ownership of personal data and run your own online communities without undesirable intermediaries.
249
 The internet may still be mostly in the clutches of a few giant megacorporations and dubious governments with sketchy agendas, but it doesn't have to remain that way. With the third version of the Freedombone system there is now more scope than before to take back your privacy, have ownership of personal data and run your own online communities without undesirable intermediaries.
159
 </p>
250
 </p>
163
 </p>
254
 </p>
164
 
255
 
165
 <ul class="org-ul">
256
 <ul class="org-ul">
166
-<li>Faster initial setup
167
-</li>
168
-<li>More <a href="./apps.html">installable apps</a>, including CryptPad, Koel, NextCloud, PostActiv, Friendica and Matrix/RiotWeb
169
-</li>
170
-<li>Automated <a href="https://github.com/hardenedlinux/STIG-4-Debian">security tests</a>
171
-</li>
172
-<li>Improved XMPP configuration for support of the <a href="https://conversations.im">Conversations</a> app features
173
-</li>
174
-<li>Improved blocking controls for a better federated network experience
175
-</li>
176
-<li>Uses <a href="https://en.wikipedia.org/wiki/EdDSA">elliptic curve</a> based GPG keys for better performance on low power single board computers
177
-</li>
178
-<li>Pre-downloaded repos distributed within images for faster and more autonomous app installs
179
-</li>
257
+<li>Faster initial setup</li>
258
+<li>More <a href="./apps.html">installable apps</a>, including CryptPad, Koel, NextCloud, PostActiv, Friendica and Matrix/RiotWeb</li>
259
+<li>Automated <a href="https://github.com/hardenedlinux/STIG-4-Debian">security tests</a></li>
260
+<li>Improved XMPP configuration for support of the <a href="https://conversations.im">Conversations</a> app features</li>
261
+<li>Improved blocking controls for a better federated network experience</li>
262
+<li>Uses <a href="https://en.wikipedia.org/wiki/EdDSA">elliptic curve</a> based GPG keys for better performance on low power single board computers</li>
263
+<li>Pre-downloaded repos distributed within images for faster and more autonomous app installs</li>
180
 </ul>
264
 </ul>
181
 </div>
265
 </div>
182
 </div>
266
 </div>
183
 
267
 
184
-<div id="outline-container-sec-2" class="outline-2">
185
-<h2 id="sec-2">Installation</h2>
186
-<div class="outline-text-2" id="text-2">
268
+<div id="outline-container-org68d06a3" class="outline-2">
269
+<h2 id="org68d06a3">Installation</h2>
270
+<div class="outline-text-2" id="text-org68d06a3">
187
 <p>
271
 <p>
188
 The simplest way to install is from a pre-made disk image. Images can be <a href="https://freedombone.net/downloads/v3">downloaded here</a>. You will need to have previously obtained a domain name and have a dynamic DNS account somewhere.
272
 The simplest way to install is from a pre-made disk image. Images can be <a href="https://freedombone.net/downloads/v3">downloaded here</a>. You will need to have previously obtained a domain name and have a dynamic DNS account somewhere.
189
 </p>
273
 </p>
193
 </p>
277
 </p>
194
 
278
 
195
 <div class="org-src-container">
279
 <div class="org-src-container">
196
-
197
 <pre class="src src-bash">unxz downloadedimagefile.img.xz
280
 <pre class="src src-bash">unxz downloadedimagefile.img.xz
198
-dd bs=1M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
281
+dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=downloadedimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
199
 </pre>
282
 </pre>
200
 </div>
283
 </div>
201
 
284
 
212
 </p>
295
 </p>
213
 
296
 
214
 <div class="org-src-container">
297
 <div class="org-src-container">
215
-
216
 <pre class="src src-bash">username: fbone
298
 <pre class="src src-bash">username: fbone
217
 password: freedombone
299
 password: freedombone
218
 </pre>
300
 </pre>
223
 </p>
305
 </p>
224
 
306
 
225
 <div class="org-src-container">
307
 <div class="org-src-container">
226
-
227
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
308
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
228
 </pre>
309
 </pre>
229
 </div>
310
 </div>
242
 </div>
323
 </div>
243
 </div>
324
 </div>
244
 
325
 
245
-<div id="outline-container-sec-3" class="outline-2">
246
-<h2 id="sec-3">Upgrading from a previous install</h2>
247
-<div class="outline-text-2" id="text-3">
326
+<div id="outline-container-org976059e" class="outline-2">
327
+<h2 id="org976059e">Upgrading from a previous install</h2>
328
+<div class="outline-text-2" id="text-org976059e">
248
 <p>
329
 <p>
249
 To upgrade from the Debian Jessie version first create a master keydrive. Go to the <b>Administrator control panel</b> and select <b>Backup and restore</b> then <b>Backup GPG key to USB (master keydrive)</b>. Insert a LUKS encrypted USB drive. When that is done Create a full backup by selecting <b>Backup data to USB drive</b> and using another LUKS encrypted USB drive.
330
 To upgrade from the Debian Jessie version first create a master keydrive. Go to the <b>Administrator control panel</b> and select <b>Backup and restore</b> then <b>Backup GPG key to USB (master keydrive)</b>. Insert a LUKS encrypted USB drive. When that is done Create a full backup by selecting <b>Backup data to USB drive</b> and using another LUKS encrypted USB drive.
250
 </p>
331
 </p>

+ 11
- 11
website/EN/release31.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-15 Sun 19:01 -->
6
+<!-- 2018-04-21 Sat 15:00 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
242
 </p>
242
 </p>
243
 </div>
243
 </div>
244
 
244
 
245
-<div id="outline-container-org996a8d0" class="outline-2">
246
-<h2 id="org996a8d0"><b>Version 3.1, 2018-04-15</b></h2>
247
-<div class="outline-text-2" id="text-org996a8d0">
245
+<div id="outline-container-org562f1b2" class="outline-2">
246
+<h2 id="org562f1b2"><b>Version 3.1, 2018-04-15</b></h2>
247
+<div class="outline-text-2" id="text-org562f1b2">
248
 <p>
248
 <p>
249
 Newer and shinier than before, <a href="./index.html">Freedombone</a> 3.1 rests upon the solid foundation of Debian stable and delivers major new self-hosted apps, improved mesh networking and a new logo. It supports version 3 onion addresses and the ability to use <a href="./usage_email.html">email with onion and I2P addresses</a>. New apps are:
249
 Newer and shinier than before, <a href="./index.html">Freedombone</a> 3.1 rests upon the solid foundation of Debian stable and delivers major new self-hosted apps, improved mesh networking and a new logo. It supports version 3 onion addresses and the ability to use <a href="./usage_email.html">email with onion and I2P addresses</a>. New apps are:
250
 </p>
250
 </p>
281
 </div>
281
 </div>
282
 </div>
282
 </div>
283
 
283
 
284
-<div id="outline-container-org811872a" class="outline-2">
285
-<h2 id="org811872a">Installation</h2>
286
-<div class="outline-text-2" id="text-org811872a">
284
+<div id="outline-container-org0f2b77a" class="outline-2">
285
+<h2 id="org0f2b77a">Installation</h2>
286
+<div class="outline-text-2" id="text-org0f2b77a">
287
 <p>
287
 <p>
288
 The simplest way to install is from a pre-made disk image. Images can be <a href="https://freedombone.net/downloads/v31">downloaded here</a>. You will need to have previously obtained a domain name and have a dynamic DNS account somewhere. Or if you don't need clearnet domains and will be using Tor compatible browsers then you can use the "onion only" images where apps will be accessible via an onion address.
288
 The simplest way to install is from a pre-made disk image. Images can be <a href="https://freedombone.net/downloads/v31">downloaded here</a>. You will need to have previously obtained a domain name and have a dynamic DNS account somewhere. Or if you don't need clearnet domains and will be using Tor compatible browsers then you can use the "onion only" images where apps will be accessible via an onion address.
289
 </p>
289
 </p>
294
 
294
 
295
 <div class="org-src-container">
295
 <div class="org-src-container">
296
 <pre class="src src-bash">unxz downloadedimagefile.img.xz
296
 <pre class="src src-bash">unxz downloadedimagefile.img.xz
297
-dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=downloadedimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
297
+dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=downloadedimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
298
 </pre>
298
 </pre>
299
 </div>
299
 </div>
300
 
300
 
339
 </div>
339
 </div>
340
 </div>
340
 </div>
341
 
341
 
342
-<div id="outline-container-orgba24030" class="outline-2">
343
-<h2 id="orgba24030">Upgrading from a previous install</h2>
344
-<div class="outline-text-2" id="text-orgba24030">
342
+<div id="outline-container-orgf8d3f00" class="outline-2">
343
+<h2 id="orgf8d3f00">Upgrading from a previous install</h2>
344
+<div class="outline-text-2" id="text-orgf8d3f00">
345
 <p>
345
 <p>
346
 To upgrade from version 3 just go to the <b>administrator control panel</b> and select <b>check for updates</b>.
346
 To upgrade from version 3 just go to the <b>administrator control panel</b> and select <b>check for updates</b>.
347
 </p>
347
 </p>

+ 27
- 27
website/EN/socialinstance.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-15 Sun 18:26 -->
6
+<!-- 2018-04-21 Sat 15:00 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
242
 </p>
242
 </p>
243
 </div>
243
 </div>
244
 
244
 
245
-<div id="outline-container-org3a57e54" class="outline-2">
246
-<h2 id="org3a57e54">Social Instance</h2>
247
-<div class="outline-text-2" id="text-org3a57e54">
245
+<div id="outline-container-org7227583" class="outline-2">
246
+<h2 id="org7227583">Social Instance</h2>
247
+<div class="outline-text-2" id="text-org7227583">
248
 <p>
248
 <p>
249
 A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
249
 A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
250
 </p>
250
 </p>
263
 </div>
263
 </div>
264
 </div>
264
 </div>
265
 
265
 
266
-<div id="outline-container-orgb2f2066" class="outline-2">
267
-<h2 id="orgb2f2066">Copy the image to the USB drive</h2>
268
-<div class="outline-text-2" id="text-orgb2f2066">
266
+<div id="outline-container-org1d12ef2" class="outline-2">
267
+<h2 id="org1d12ef2">Copy the image to the USB drive</h2>
268
+<div class="outline-text-2" id="text-org1d12ef2">
269
 <p>
269
 <p>
270
 Substitute <b>sdX</b> with the device name for your USB drive.
270
 Substitute <b>sdX</b> with the device name for your USB drive.
271
 </p>
271
 </p>
276
 wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig
276
 wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig
277
 gpg --verify freedombone-pleroma-amd64.img.xz.sig
277
 gpg --verify freedombone-pleroma-amd64.img.xz.sig
278
 unxz freedombone-pleroma-amd64.img.xz
278
 unxz freedombone-pleroma-amd64.img.xz
279
-sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
280
-sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-pleroma-amd64.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
279
+sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
280
+sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-pleroma-amd64.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
281
 </pre>
281
 </pre>
282
 </div>
282
 </div>
283
 
283
 
287
 </div>
287
 </div>
288
 </div>
288
 </div>
289
 
289
 
290
-<div id="outline-container-orgb12b5ef" class="outline-2">
291
-<h2 id="orgb12b5ef">Connect the laptop to your internet router</h2>
292
-<div class="outline-text-2" id="text-orgb12b5ef">
290
+<div id="outline-container-org1acc3f8" class="outline-2">
291
+<h2 id="org1acc3f8">Connect the laptop to your internet router</h2>
292
+<div class="outline-text-2" id="text-org1acc3f8">
293
 <p>
293
 <p>
294
 Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
294
 Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
295
 </p>
295
 </p>
302
 </div>
302
 </div>
303
 </div>
303
 </div>
304
 
304
 
305
-<div id="outline-container-org32addf2" class="outline-2">
306
-<h2 id="org32addf2">Boot the laptop from the USB drive</h2>
307
-<div class="outline-text-2" id="text-org32addf2">
305
+<div id="outline-container-orgc06c32b" class="outline-2">
306
+<h2 id="orgc06c32b">Boot the laptop from the USB drive</h2>
307
+<div class="outline-text-2" id="text-orgc06c32b">
308
 <p>
308
 <p>
309
 You may need to alter the BIOS settings to get this to work reliably.
309
 You may need to alter the BIOS settings to get this to work reliably.
310
 </p>
310
 </p>
317
 </div>
317
 </div>
318
 </div>
318
 </div>
319
 
319
 
320
-<div id="outline-container-org6417b90" class="outline-2">
321
-<h2 id="org6417b90">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
322
-<div class="outline-text-2" id="text-org6417b90">
320
+<div id="outline-container-orgbe57b0d" class="outline-2">
321
+<h2 id="orgbe57b0d">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
322
+<div class="outline-text-2" id="text-orgbe57b0d">
323
 <p>
323
 <p>
324
 Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
324
 Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
325
 </p>
325
 </p>
332
 </div>
332
 </div>
333
 </div>
333
 </div>
334
 
334
 
335
-<div id="outline-container-orga1248fc" class="outline-2">
336
-<h2 id="orga1248fc">From another machine ssh into the laptop</h2>
337
-<div class="outline-text-2" id="text-orga1248fc">
335
+<div id="outline-container-org61c8baa" class="outline-2">
336
+<h2 id="org61c8baa">From another machine ssh into the laptop</h2>
337
+<div class="outline-text-2" id="text-org61c8baa">
338
 <div class="org-src-container">
338
 <div class="org-src-container">
339
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
339
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
340
 </pre>
340
 </pre>
346
 </div>
346
 </div>
347
 </div>
347
 </div>
348
 
348
 
349
-<div id="outline-container-orge7dea9e" class="outline-2">
350
-<h2 id="orge7dea9e">Follow the setup procedure</h2>
351
-<div class="outline-text-2" id="text-orge7dea9e">
349
+<div id="outline-container-orgaaaf930" class="outline-2">
350
+<h2 id="orgaaaf930">Follow the setup procedure</h2>
351
+<div class="outline-text-2" id="text-orgaaaf930">
352
 <p>
352
 <p>
353
 Enter your user details, domain name and dynamic DNS settings.
353
 Enter your user details, domain name and dynamic DNS settings.
354
 </p>
354
 </p>
355
 </div>
355
 </div>
356
 </div>
356
 </div>
357
 
357
 
358
-<div id="outline-container-orgde5ef18" class="outline-2">
359
-<h2 id="orgde5ef18">When installation is complete</h2>
360
-<div class="outline-text-2" id="text-orgde5ef18">
358
+<div id="outline-container-orgbd9fe95" class="outline-2">
359
+<h2 id="orgbd9fe95">When installation is complete</h2>
360
+<div class="outline-text-2" id="text-orgbd9fe95">
361
 <p>
361
 <p>
362
 Navigate to your domain and register a new user.
362
 Navigate to your domain and register a new user.
363
 </p>
363
 </p>