瀏覽代碼

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

Bob Mottram 7 年之前
父節點
當前提交
6b0397e414

+ 2
- 2
code-of-conduct.md 查看文件

@@ -30,6 +30,6 @@ This applies to messages for help, too; not only is a public support request muc
30 30
 
31 31
 While this code of conduct should be adhered to by participants, we recognize that sometimes people may have a bad day, or be unaware of some of the guidelines in this code of conduct. When that happens, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. However, regardless of whether the message is public or not, it should still adhere to the relevant parts of this code of conduct; in particular, it should not be abusive or disrespectful. Assume good faith; it is more likely that participants are unaware of their bad behaviour than that they intentionally try to degrade the quality of the discussion.
32 32
 
33
-Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed.
33
+Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed. In this context "serious" means that someone is causing others to feel unsafe or be unable to contribute, for whatever reason.
34 34
 
35
-Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net.
35
+This is not a big project and so there is no division of labor or special enforcement committee or bureaucratic process. Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net. XMPP messages are likely to get a quicker response.

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

@@ -44,6 +44,6 @@ This applies to messages for help, too; not only is a public support request muc
44 44
 
45 45
 While this code of conduct should be adhered to by participants, we recognize that sometimes people may have a bad day, or be unaware of some of the guidelines in this code of conduct. When that happens, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. However, regardless of whether the message is public or not, it should still adhere to the relevant parts of this code of conduct; in particular, it should not be abusive or disrespectful. Assume good faith; it is more likely that participants are unaware of their bad behaviour than that they intentionally try to degrade the quality of the discussion.
46 46
 
47
-Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed.
47
+Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed. In this context "serious" means that someone is causing others to feel unsafe or be unable to contribute, for whatever reason.
48 48
 
49
-Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net.
49
+This is not a big project and so there is no division of labor or special enforcement committee or bureaucratic process. Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net. XMPP messages are likely to get a quicker response.

+ 8
- 6
doc/EN/faq.org 查看文件

@@ -32,7 +32,6 @@
32 32
 | [[Can I add a clearnet domain to an onion build?]]                                            |
33 33
 | [[Why use Github?]]                                                                           |
34 34
 | [[Keys and emails should not be stored on servers. Why do you do that?]]                      |
35
-| [[./mirrors.html][I have a question about mirrors or upstream repositories]]                                  |
36 35
 | [[Why can't I access my .onion site with a Tor browser?]]                                     |
37 36
 | [[What is the best hardware to run this system on?]]                                          |
38 37
 | [[Can I add more users to the system?]]                                                       |
@@ -91,13 +90,16 @@ The FreedomBox project supports Raspberry Pi builds, and the image build system
91 90
 
92 91
 So although the Raspberry Pi is cheap and hugely popular it's not supported by the Freedombone project. Perhaps future versions of the Pi won't have the proprietary blob requirement, or maybe the blob will be open sourced at some stage.
93 92
 * Why use Tor? I've heard it's used by bad people
94
-Before you run screaming for the hills based upon whatever scare story you may have just read in the mainstream media there are a few things worthy of consideration. Tor is installed by default on Freedombone, /but not as a relay or exit node/. It's only used to provide onion addresses so that this gives you or the viewers of your sites some choice about how they access the information. It also allows you to subscribe to and read RSS feeds privately.
93
+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.
95 94
 
96
-Onion routing - which is what Tor provides - gives you some level of protection against bulk surveillance of metadata. These days governments and other organisations are in the business of collecting and analysing your metadata. They want to have comprehensive lists of which sites you visited, or who visited your sites. Tor may at least partially help to thwart their totalitarian ambitions to know everything about everyone all of the time.
95
+Tor and its onion addresses, previously called hidden addresses, have a few key advantages:
97 96
 
98
-Tor is not a perfect system and is not fully decentralised. Like all software it has bugs, but it can be considered to probably be an effective tactic against some of the most egregious surveillance fanatics out there.
97
+ * NAT traversal
98
+ * Firewall traversal
99
+ * Avoiding the domain name system (DNS), which is mostly centralized and not secure
100
+ * Avoiding passive bulk surveillance in which governments try to find out who is communicating with who
99 101
 
100
-The media may also have sold you torrid tales about individual Tor project developers. While the conduct of individuals does matter, what matters far more is whether the technical system works and is practical for the average user. Don't allow your opinions of the technical system to be deflected by transient sex scandals or oppressive moralising, and /don't hold anyone to standards higher than you would apply to yourself/.
102
+On the negative side it's a complex system which is not fully decentralized.
101 103
 * How is Tor integrated with Freedombone?
102 104
 Within this project Tor is used more to provide /accessibility/ than the /anonymity/ 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.
103 105
 
@@ -115,7 +117,7 @@ At present Github is useful just because of the sheer number of eyeballs and the
115 117
 
116 118
 The source code for this project is experimentally independently hosted, and it is expected that in future the main development will shift over to an independent site, maybe with mirrors on Github if it still exists in a viable form.
117 119
 
118
-Currently many of the repositories used for applications which are not yet packaged for Debian are on Github, and to provide some degree of resilliance against depending too much upon that it's possible to use [[./mirrors.html][mirrors stored on another server]].
120
+Currently many of the repositories used for applications which are not yet packaged for Debian are on Github, and to provide some degree of resilliance against depending too much upon that copies of them also exist within disk images.
119 121
 * Keys and emails should not be stored on servers. Why do you do that?
120 122
 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:
121 123
 

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

@@ -23,7 +23,7 @@ The Freedombone Mesh is a wireless solution for autonomous or internet connected
23 23
  * [[./mesh_usage.html][How to use it]]
24 24
 
25 25
 #+BEGIN_CENTER
26
-[[file:images/mesh_logo.jpg]]
26
+[[file:images/mesh_desktop1.png]]
27 27
 #+END_CENTER
28 28
 
29 29
 Mesh networks are useful as a quick way to make a fully decentralised communications system which is not connected to or reliant upon the internet. Think festivals, hacker conferences, onboard ships at sea, disaster/war zones, small businesses who don't want the overhead of server maintenance, protests, remote areas of the world, temporary "digital blackouts", scientific expeditions and off-world space colonies.

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

@@ -61,7 +61,7 @@ wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i
61 61
 wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz.sig
62 62
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
63 63
 sha256sum freedombone-meshclient-insecure-i386.img.xz
64
-066ef17f90078de8ae85807fa0207f5e3b994a74442cb0683a3bbce1a1b6253b
64
+c11783741e66df5072ffcbef8d9b04260a2298d84e33c72fefa4bb539d094810
65 65
 unxz freedombone-meshclient-insecure-i386.img.xz
66 66
 sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
67 67
 sudo dd bs=1M if=freedombone-meshclient-insecure-i386.img of=/dev/sdX conv=fdatasync
@@ -102,7 +102,7 @@ wget https://freedombone.net/downloads/current/freedombone.tar.gz
102 102
 wget https://freedombone.net/downloads/current/freedombone.tar.gz.sig
103 103
 gpg --verify freedombone.tar.gz.sig
104 104
 sha256sum freedombone.tar.gz
105
-
105
+afbb536564140aa28c6491d45b7474ced5a0b018539ffd3e96b13b242a41792e
106 106
 tar -xzvf freedombone.tar.gz
107 107
 cd freedombone
108 108
 git checkout stretch

+ 55
- 0
image_build/mod_omemo_all_access.lua 查看文件

@@ -0,0 +1,55 @@
1
+-- OMEMO all access module
2
+-- Copyright (c) 2017 Daniel Gultsch
3
+--
4
+-- This module is MIT/X11 licensed
5
+--
6
+
7
+local jid_bare = require "util.jid".bare;
8
+local st = require "util.stanza"
9
+local white_listed_namespace = "eu.siacs.conversations.axolotl."
10
+local disco_feature_namespace = white_listed_namespace .. "whitelisted"
11
+
12
+local mod_pep = module:depends"pep";
13
+local pep_data = mod_pep.module.save().data;
14
+
15
+local function on_account_disco_info(event)
16
+	(event.reply or event.stanza):tag("feature", {var=disco_feature_namespace}):up();
17
+end
18
+
19
+local function on_pep_request(event)
20
+	local session, stanza = event.origin, event.stanza
21
+	local payload = stanza.tags[1];
22
+	if stanza.attr.type == 'get' then
23
+		local node, requested_id;
24
+		payload = payload.tags[1]
25
+		if payload and payload.name == 'items' then
26
+			node = payload.attr.node
27
+			local item = payload.tags[1];
28
+			if item and item.name == 'item' then
29
+				requested_id = item.attr.id;
30
+			end 
31
+		end
32
+		if node and string.sub(node,1,string.len(white_listed_namespace)) == white_listed_namespace then
33
+			local user = stanza.attr.to and jid_bare(stanza.attr.to) or session.username..'@'..session.host;
34
+			local user_data = pep_data[user];
35
+			if user_data and user_data[node] then
36
+				local id, item = unpack(user_data[node]);
37
+				if not requested_id or id == requested_id then
38
+					local stanza = st.reply(stanza)
39
+						:tag('pubsub', {xmlns='http://jabber.org/protocol/pubsub'})
40
+							:tag('items', {node=node})
41
+								:add_child(item)
42
+							:up()
43
+						:up();
44
+					session.send(stanza);
45
+					module:log("debug","provided access to omemo node",node)
46
+					return true;
47
+				end
48
+			end
49
+			module:log("debug","requested node was white listed", node)
50
+		end
51
+	end
52
+end
53
+
54
+module:hook("iq/bare/http://jabber.org/protocol/pubsub:pubsub", on_pep_request, 10);
55
+module:hook("account-disco-info", on_account_disco_info);

二進制
img/backgrounds/freedombone_mesh_background.png 查看文件


二進制
img/mesh_desktop1.png 查看文件


二進制
img/mesh_logo.jpg 查看文件


+ 6
- 2
src/freedombone-app-ipfs 查看文件

@@ -42,7 +42,7 @@ IPFS_N_VERSION='2.1.4'
42 42
 IPFS_JS_VERSION='0.14.3'
43 43
 IPFS_JS_RONIN_VERSION='0.3.11'
44 44
 IPFS_KEY_LENGTH=2048
45
-IPFS_GO_VERSION=0.4.2
45
+IPFS_GO_VERSION=0.4.13
46 46
 
47 47
 ipfs_variables=(IPFS_GO_VERSION
48 48
                 IPFS_KEY_LENGTH
@@ -451,11 +451,14 @@ function mesh_install_ipfs_go {
451 451
 
452 452
     echo '[Unit]' > $IPFS_USER_DAEMON
453 453
     echo 'Description=IPFS go daemon' >> $IPFS_USER_DAEMON
454
+    echo 'After=syslog.target' >> $IPFS_USER_DAEMON
455
+    echo 'After=network.target' >> $IPFS_USER_DAEMON
454 456
     echo '' >> $IPFS_USER_DAEMON
455 457
     echo '[Service]' >> $IPFS_USER_DAEMON
458
+    echo 'Type=simple' >> $IPFS_USER_DAEMON
456 459
     echo "ExecStart=$IPFS_PATH/ipfs daemon" >> $IPFS_USER_DAEMON
457 460
     echo 'Restart=on-failure' >> $IPFS_USER_DAEMON
458
-    echo 'RestartSec=10' >> $IPFS_USER_DAEMON
461
+    echo 'RestartSec=60' >> $IPFS_USER_DAEMON
459 462
     echo '' >> $IPFS_USER_DAEMON
460 463
     echo '[Install]' >> $IPFS_USER_DAEMON
461 464
     echo 'WantedBy=default.target' >> $IPFS_USER_DAEMON
@@ -539,6 +542,7 @@ function install_ipfs_go {
539 542
     fi
540 543
 
541 544
     # initialise
545
+    chmod 755 $IPFS_PATH/ipfs
542 546
     su -c "$IPFS_PATH/ipfs init -b 2048" - $MY_USERNAME
543 547
     if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
544 548
         echo "IPFS could not be initialised for user $MY_USERNAME"

+ 14
- 15
src/freedombone-app-pelican 查看文件

@@ -49,6 +49,15 @@ pelican_variables=(MY_USERNAME
49 49
                    PELICAN_DOMAIN_NAME
50 50
                    PELICAN_BLOG_CODE)
51 51
 
52
+function pelican_remove_bad_blog_links {
53
+    find ./ -type f -name *.css -exec sed -i -e '/googleapi/d' {} \;
54
+    find ./ -type f -name *.scss -exec sed -i -e '/googleapi/d' {} \;
55
+    find ./ -type f -name *.html -exec sed -i -e '/googleapi/d' {} \;
56
+    find ./ -type f -name *.css -exec sed -i -e '/bootstrapcdn/d' {} \;
57
+    find ./ -type f -name *.scss -exec sed -i -e '/bootstrapcdn/d' {} \;
58
+    find ./ -type f -name *.html -exec sed -i -e '/bootstrapcdn/d' {} \;
59
+}
60
+
52 61
 function logging_on_pelican {
53 62
     echo -n ''
54 63
 }
@@ -275,13 +284,6 @@ function pelican_delete_blog {
275 284
     esac
276 285
 }
277 286
 
278
-function pelican_remove_bad_blog_links {
279
-    current_theme=$1
280
-    if [ -f $PELICAN_BLOG_INSTALL_DIR/themes/$current_theme/static/css/style.css ]; then
281
-        sed -i '/googleapi/d' $PELICAN_BLOG_INSTALL_DIR/themes/$current_theme/static/css/style.css
282
-    fi
283
-}
284
-
285 287
 function pelican_change_theme {
286 288
     THEMES=()
287 289
     for d in $PELICAN_BLOG_INSTALL_DIR/themes/*/ ; do
@@ -330,7 +332,10 @@ function pelican_change_theme {
330 332
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
331 333
 
332 334
     CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
333
-    pelican_remove_bad_blog_links $CHOSEN_THEME
335
+
336
+    cd $PELICAN_BLOG_INSTALL_DIR/themes/$CHOSEN_THEME
337
+    pelican_remove_bad_blog_links
338
+
334 339
     if grep -q "THEME=" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py; then
335 340
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py
336 341
     else
@@ -742,13 +747,7 @@ function pelican_themes {
742 747
     git clone https://github.com/jarv/water-iris
743 748
     git clone https://github.com/kplaube/yapeme
744 749
 
745
-    # remove any dubious css
746
-    for d in */ ; do
747
-        THEME_NAME=$(echo "$d" | awk -F '/' '{print $1}')
748
-        if [ -d $d/static/css/style.css ]; then
749
-            sed -i '/googleapi/d' $d/static/css/style.css
750
-        fi
751
-    done
750
+    pelican_remove_bad_blog_links
752 751
 }
753 752
 
754 753
 function mesh_install_pelican {

+ 2
- 0
src/freedombone-app-riot 查看文件

@@ -330,6 +330,8 @@ function install_riot {
330 330
 
331 331
     sed '/Content-Security-Policy/d' $riot_nginx_site
332 332
     sed -i 's| DENY;| SAMEORIGIN;|g' $riot_nginx_site
333
+    sed -i 's|limit_conn conn_limit_per_ip.*|limit_conn conn_limit_per_ip 50;|g' $riot_nginx_site
334
+    sed -i 's|limit_req zone.*|limit_req zone=req_limit_per_ip burst=20 nodelay;|g' $riot_nginx_site
333 335
 
334 336
     function_check create_site_certificate
335 337
     if [ ! -f /etc/ssl/certs/${RIOT_DOMAIN_NAME}.pem ]; then

+ 41
- 0
src/freedombone-app-xmpp 查看文件

@@ -326,6 +326,46 @@ function update_prosody_modules {
326 326
         return
327 327
     fi
328 328
 
329
+    # This module is a workaround for OMEMO within group chat
330
+    # See https://github.com/iNPUTmice/omemo_all_access
331
+    if [ -f ~/freedombone/image_build/mod_omemo_all_access.lua ]; then
332
+        if [ ! -d /var/lib/prosody/prosody-modules ]; then
333
+            mkdir -p /var/lib/prosody/prosody-modules
334
+        fi
335
+
336
+        copy_omemo_all_access=1
337
+        if [ -f /usr/lib/prosody/modules/mod_omemo_all_access.lua ]; then
338
+            curr_hash=$(sha256sum /usr/lib/prosody/modules/mod_omemo_all_access.lua)
339
+            new_hash=$(sha256sum ~/freedombone/image_build/mod_omemo_all_access.lua)
340
+            if [[ "$curr_hash" == "$new_hash" ]]; then
341
+                copy_omemo_all_access=
342
+            fi
343
+        fi
344
+
345
+        if [ $copy_omemo_all_access ]; then
346
+            systemctl stop prosody
347
+            cp ~/freedombone/image_build/mod_omemo_all_access.lua /var/lib/prosody/prosody-modules/mod_omemo_all_access.lua
348
+            cp ~/freedombone/image_build/mod_omemo_all_access.lua /usr/lib/prosody/modules/mod_omemo_all_access.lua
349
+
350
+            chmod +x /var/lib/prosody/prosody-modules/mod_omemo_all_access.lua
351
+            chmod +x /usr/lib/prosody/modules/mod_omemo_all_access.lua
352
+
353
+            if ! grep -q "omemo_all_access" /etc/prosody/prosody.cfg.lua; then
354
+                sed -i '/"pep";/a "omemo_all_access"; -- Fix for PEP with OMEMO' /etc/prosody/prosody.cfg.lua
355
+                sed -i 's|"omemo_all_access";|  "omemo_all_access";|g' /etc/prosody/prosody.cfg.lua
356
+            fi
357
+
358
+            if ! grep -q "omemo_all_access" /etc/prosody/conf.avail/xmpp.cfg.lua; then
359
+                sed -i '/"pep";/a "omemo_all_access"; -- Fix for PEP with OMEMO' /etc/prosody/conf.avail/xmpp.cfg.lua
360
+                sed -i 's|"omemo_all_access";|  "omemo_all_access";|g' /etc/prosody/conf.avail/xmpp.cfg.lua
361
+            fi
362
+
363
+            chown -R prosody:prosody /var/lib/prosody/prosody-modules
364
+            chown -R prosody:prosody /usr/lib/prosody/modules
365
+            systemctl start prosody
366
+        fi
367
+    fi
368
+
329 369
     if [ ! -f $INSTALL_DIR/$prosody_modules_filename ]; then
330 370
         # Obtain the modules
331 371
         if [ -f ~/freedombone/image_build/$prosody_modules_filename ]; then
@@ -624,6 +664,7 @@ function xmpp_modules {
624 664
     echo '  "smacks"; -- Stream management' >> $filename
625 665
     echo '  "smacks_offline"; -- Stream management' >> $filename
626 666
     echo '  "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
667
+    echo '  "omemo_all_access"; -- Fix for PEP with OMEMO' >> $filename
627 668
     echo '  "vcard"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
628 669
     echo '  "e2e_policy"; -- To support OMEMO' >> $filename
629 670
     echo '  "pep_vcard_avatar"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename

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

@@ -985,6 +985,7 @@ function setup_ipfs {
985 985
     IPFS_COMMAND=$IPFS_PATH/ipfs
986 986
     IPFS_PUBLIC=/home/$MY_USERNAME/.ipfs-public
987 987
 
988
+    chmod 755 $IPFS_COMMAND
988 989
     su -c "systemctl --user enable ipfs" - $MY_USERNAME
989 990
 
990 991
     if [ -f $CURRENT_BLOG_INDEX ]; then
@@ -1033,6 +1034,7 @@ function setup_ipfs {
1033 1034
         shred -zu /home/$MY_USERNAME/.ipfs-public
1034 1035
     fi
1035 1036
 
1037
+    chmod 755 $IPFS_COMMAND
1036 1038
     su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
1037 1039
     if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
1038 1040
         echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG

+ 12
- 5
src/freedombone-mesh-blog 查看文件

@@ -42,10 +42,12 @@ BLOG_EDITOR='pluma'
42 42
 DEFAULT_BLOG_TITLE=$"Freedombone Blog"
43 43
 
44 44
 function remove_bad_blog_links {
45
-    current_theme=$1
46
-    if [ -f $BLOG_PATH/themes/$current_theme/static/css/style.css ]; then
47
-        sed -i '/googleapi/d' $BLOG_PATH/themes/$current_theme/static/css/style.css
48
-    fi
45
+    find ./ -type f -name *.css -exec sed -i -e '/googleapi/d' {} \;
46
+    find ./ -type f -name *.scss -exec sed -i -e '/googleapi/d' {} \;
47
+    find ./ -type f -name *.html -exec sed -i -e '/googleapi/d' {} \;
48
+    find ./ -type f -name *.css -exec sed -i -e '/bootstrapcdn/d' {} \;
49
+    find ./ -type f -name *.scss -exec sed -i -e '/bootstrapcdn/d' {} \;
50
+    find ./ -type f -name *.html -exec sed -i -e '/bootstrapcdn/d' {} \;
49 51
 }
50 52
 
51 53
 function ipfs_publish {
@@ -80,6 +82,10 @@ function regenerate_blog {
80 82
         sed -i "s|SITENAME=.*|SITENAME=u\"${BLOG_TITLE}\"|g" $BLOG_PATH/pelicanconf.py
81 83
     fi
82 84
     make html
85
+
86
+    cd $BLOG_PATH
87
+    remove_bad_blog_links
88
+
83 89
     ipfs_publish
84 90
 }
85 91
 
@@ -206,7 +212,8 @@ function change_theme {
206 212
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
207 213
 
208 214
     CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
209
-    remove_bad_blog_links $CHOSEN_THEME
215
+    cd cd $BLOG_PATH/themes/$CHOSEN_THEME
216
+    remove_bad_blog_links
210 217
     if grep -q "THEME=" $BLOG_PATH/pelicanconf.py; then
211 218
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $BLOG_PATH/pelicanconf.py
212 219
     else

+ 21
- 21
website/EN/codeofconduct.html 查看文件

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-12-20 Wed 12:45 -->
6
+<!-- 2017-12-29 Fri 10:25 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -246,27 +246,27 @@ for the JavaScript code in this tag.
246 246
 
247 247
 <center><h1>Code of Conduct</h1></center>
248 248
 
249
-<div id="outline-container-orga839710" class="outline-2">
250
-<h2 id="orga839710">Be respectful</h2>
251
-<div class="outline-text-2" id="text-orga839710">
249
+<div id="outline-container-org7389049" class="outline-2">
250
+<h2 id="org7389049">Be respectful</h2>
251
+<div class="outline-text-2" id="text-org7389049">
252 252
 <p>
253 253
 In any Free Software project with more than one participant inevitably there may be people with whom you may disagree, or find it difficult to cooperate. Accept that, but even so, remain respectful. Disagreement is no excuse for poor behaviour or personal attacks, and a community in which people feel threatened is not a healthy community.
254 254
 </p>
255 255
 </div>
256 256
 </div>
257 257
 
258
-<div id="outline-container-org890f143" class="outline-2">
259
-<h2 id="org890f143">Assume good faith</h2>
260
-<div class="outline-text-2" id="text-org890f143">
258
+<div id="outline-container-orgb4a8701" class="outline-2">
259
+<h2 id="orgb4a8701">Assume good faith</h2>
260
+<div class="outline-text-2" id="text-orgb4a8701">
261 261
 <p>
262 262
 Freedombone Contributors have many ways of reaching our common goal of providing freedom respecting internet or mesh systems which may differ from your ways. Assume that other people are working towards this goal.
263 263
 </p>
264 264
 </div>
265 265
 </div>
266 266
 
267
-<div id="outline-container-orgccafefb" class="outline-2">
268
-<h2 id="orgccafefb">Be collaborative</h2>
269
-<div class="outline-text-2" id="text-orgccafefb">
267
+<div id="outline-container-org323e1d5" class="outline-2">
268
+<h2 id="org323e1d5">Be collaborative</h2>
269
+<div class="outline-text-2" id="text-org323e1d5">
270 270
 <p>
271 271
 Freedombone is a moderately complex project, though nothing big and professional like GNU. It's good to ask for help when you need it. Similarly, offers for help should be seen in the context of our shared goal of improving the system.
272 272
 </p>
@@ -277,9 +277,9 @@ When you make something for the benefit of the project, be willing to explain to
277 277
 </div>
278 278
 </div>
279 279
 
280
-<div id="outline-container-org960241b" class="outline-2">
281
-<h2 id="org960241b">Try to be concise</h2>
282
-<div class="outline-text-2" id="text-org960241b">
280
+<div id="outline-container-org2247eb7" class="outline-2">
281
+<h2 id="org2247eb7">Try to be concise</h2>
282
+<div class="outline-text-2" id="text-org2247eb7">
283 283
 <p>
284 284
 If you're submitting documentation then keep in mind that what you write once could be read by many other people. To avoid TL;DR keep it as short and concise as possible. This will also reduce the amount of translations effort needed.
285 285
 </p>
@@ -290,9 +290,9 @@ If you're discussing an issue or bug, try to stay on topic, especially in discus
290 290
 </div>
291 291
 </div>
292 292
 
293
-<div id="outline-container-orgd3249bd" class="outline-2">
294
-<h2 id="orgd3249bd">Be open</h2>
295
-<div class="outline-text-2" id="text-orgd3249bd">
293
+<div id="outline-container-org9d2afa5" class="outline-2">
294
+<h2 id="org9d2afa5">Be open</h2>
295
+<div class="outline-text-2" id="text-org9d2afa5">
296 296
 <p>
297 297
 Most ways of communication used within Freedombone (eg Matrix/XMPP) allow for public and private communication. Prefer public methods of communication for Freedombone-related messages, unless posting something sensitive.
298 298
 </p>
@@ -303,19 +303,19 @@ This applies to messages for help, too; not only is a public support request muc
303 303
 </div>
304 304
 </div>
305 305
 
306
-<div id="outline-container-org8f9612f" class="outline-2">
307
-<h2 id="org8f9612f">In case of problems</h2>
308
-<div class="outline-text-2" id="text-org8f9612f">
306
+<div id="outline-container-orgeac99f0" class="outline-2">
307
+<h2 id="orgeac99f0">In case of problems</h2>
308
+<div class="outline-text-2" id="text-orgeac99f0">
309 309
 <p>
310 310
 While this code of conduct should be adhered to by participants, we recognize that sometimes people may have a bad day, or be unaware of some of the guidelines in this code of conduct. When that happens, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. However, regardless of whether the message is public or not, it should still adhere to the relevant parts of this code of conduct; in particular, it should not be abusive or disrespectful. Assume good faith; it is more likely that participants are unaware of their bad behaviour than that they intentionally try to degrade the quality of the discussion.
311 311
 </p>
312 312
 
313 313
 <p>
314
-Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed.
314
+Serious or persistent offenders will be kicked from chat rooms and any of their subsequent patches will be unlikely to be upstreamed. In this context "serious" means that someone is causing others to feel unsafe or be unable to contribute, for whatever reason.
315 315
 </p>
316 316
 
317 317
 <p>
318
-Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net.
318
+This is not a big project and so there is no division of labor or special enforcement committee or bureaucratic process. Complaints should be made (in private) to the maintainer or chat room admin. The typical email address can be found in the source code headers. Preferably use GPG/OpenPGP if you can, or XMPP with OTR/OMEMO to bob@freedombone.net. XMPP messages are likely to get a quicker response.
319 319
 </p>
320 320
 </div>
321 321
 </div>

+ 138
- 139
website/EN/faq.html 查看文件

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-11-11 Sat 18:24 -->
6
+<!-- 2017-12-30 Sat 15:48 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -264,143 +264,139 @@ for the JavaScript code in this tag.
264 264
 </colgroup>
265 265
 <tbody>
266 266
 <tr>
267
-<td class="org-left"><a href="#orgf3ee5ce">What applications are supported?</a></td>
267
+<td class="org-left"><a href="#org416597b">What applications are supported?</a></td>
268 268
 </tr>
269 269
 
270 270
 <tr>
271
-<td class="org-left"><a href="#orgec76339">I don't have a static IP address. Can I still install this system?</a></td>
271
+<td class="org-left"><a href="#org719e222">I don't have a static IP address. Can I still install this system?</a></td>
272 272
 </tr>
273 273
 
274 274
 <tr>
275
-<td class="org-left"><a href="#org2da13bd">Why Freedombone and not FreedomBox?</a></td>
275
+<td class="org-left"><a href="#org997ae78">Why Freedombone and not FreedomBox?</a></td>
276 276
 </tr>
277 277
 
278 278
 <tr>
279
-<td class="org-left"><a href="#orgd530659">Why not support building images for Raspberry Pi?</a></td>
279
+<td class="org-left"><a href="#org0fe5706">Why not support building images for Raspberry Pi?</a></td>
280 280
 </tr>
281 281
 
282 282
 <tr>
283
-<td class="org-left"><a href="#org4bb2842">Why use Tor? I've heard it's used by bad people</a></td>
283
+<td class="org-left"><a href="#orgf565b16">Why use Tor? I've heard it's used by bad people</a></td>
284 284
 </tr>
285 285
 
286 286
 <tr>
287
-<td class="org-left"><a href="#org8f15beb">How is Tor integrated with Freedombone?</a></td>
287
+<td class="org-left"><a href="#orgac61490">How is Tor integrated with Freedombone?</a></td>
288 288
 </tr>
289 289
 
290 290
 <tr>
291
-<td class="org-left"><a href="#orgd33d165">Can I add a clearnet domain to an onion build?</a></td>
291
+<td class="org-left"><a href="#orgbe35250">Can I add a clearnet domain to an onion build?</a></td>
292 292
 </tr>
293 293
 
294 294
 <tr>
295
-<td class="org-left"><a href="#org8e4a27d">Why use Github?</a></td>
295
+<td class="org-left"><a href="#org1ea193b">Why use Github?</a></td>
296 296
 </tr>
297 297
 
298 298
 <tr>
299
-<td class="org-left"><a href="#org3cd5f2c">Keys and emails should not be stored on servers. Why do you do that?</a></td>
299
+<td class="org-left"><a href="#org7057def">Keys and emails should not be stored on servers. Why do you do that?</a></td>
300 300
 </tr>
301 301
 
302 302
 <tr>
303
-<td class="org-left"><a href="./mirrors.html">I have a question about mirrors or upstream repositories</a></td>
303
+<td class="org-left"><a href="#orge669711">Why can't I access my .onion site with a Tor browser?</a></td>
304 304
 </tr>
305 305
 
306 306
 <tr>
307
-<td class="org-left"><a href="#org97f01de">Why can't I access my .onion site with a Tor browser?</a></td>
307
+<td class="org-left"><a href="#orgdb3b7a6">What is the best hardware to run this system on?</a></td>
308 308
 </tr>
309 309
 
310 310
 <tr>
311
-<td class="org-left"><a href="#org49504c7">What is the best hardware to run this system on?</a></td>
311
+<td class="org-left"><a href="#orgf1c38a0">Can I add more users to the system?</a></td>
312 312
 </tr>
313 313
 
314 314
 <tr>
315
-<td class="org-left"><a href="#orgf3e781c">Can I add more users to the system?</a></td>
315
+<td class="org-left"><a href="#orgd32f191">Why not use Signal for mobile chat?</a></td>
316 316
 </tr>
317 317
 
318 318
 <tr>
319
-<td class="org-left"><a href="#orgb408729">Why not use Signal for mobile chat?</a></td>
319
+<td class="org-left"><a href="#org16a21bb">What is the most secure chat app to use on mobile?</a></td>
320 320
 </tr>
321 321
 
322 322
 <tr>
323
-<td class="org-left"><a href="#orgd117b08">What is the most secure chat app to use on mobile?</a></td>
323
+<td class="org-left"><a href="#org279eac7">How do I remove a user from the system?</a></td>
324 324
 </tr>
325 325
 
326 326
 <tr>
327
-<td class="org-left"><a href="#orgb5b2126">How do I remove a user from the system?</a></td>
327
+<td class="org-left"><a href="#org12ac09e">Why is logging for web sites turned off by default?</a></td>
328 328
 </tr>
329 329
 
330 330
 <tr>
331
-<td class="org-left"><a href="#org1ab944e">Why is logging for web sites turned off by default?</a></td>
331
+<td class="org-left"><a href="#org5e9d3c7">How do I reset the tripwire?</a></td>
332 332
 </tr>
333 333
 
334 334
 <tr>
335
-<td class="org-left"><a href="#org576c1da">How do I reset the tripwire?</a></td>
335
+<td class="org-left"><a href="#org0613054">Is metadata protected?</a></td>
336 336
 </tr>
337 337
 
338 338
 <tr>
339
-<td class="org-left"><a href="#org575438d">Is metadata protected?</a></td>
339
+<td class="org-left"><a href="#orgdf75721">How do I create email processing rules?</a></td>
340 340
 </tr>
341 341
 
342 342
 <tr>
343
-<td class="org-left"><a href="#org249cb8e">How do I create email processing rules?</a></td>
343
+<td class="org-left"><a href="#org5b21211">Why isn't dynamic DNS working?</a></td>
344 344
 </tr>
345 345
 
346 346
 <tr>
347
-<td class="org-left"><a href="#org0026d12">Why isn't dynamic DNS working?</a></td>
347
+<td class="org-left"><a href="#org929e4ae">How do I change my encryption settings?</a></td>
348 348
 </tr>
349 349
 
350 350
 <tr>
351
-<td class="org-left"><a href="#orgcf9314c">How do I change my encryption settings?</a></td>
351
+<td class="org-left"><a href="#org087d147">How do I get a domain name?</a></td>
352 352
 </tr>
353 353
 
354 354
 <tr>
355
-<td class="org-left"><a href="#org623845a">How do I get a domain name?</a></td>
355
+<td class="org-left"><a href="#org4bb381a">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
356 356
 </tr>
357 357
 
358 358
 <tr>
359
-<td class="org-left"><a href="#org80ee241">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
359
+<td class="org-left"><a href="#orgfbd420c">How do I renew a Let's Encrypt certificate?</a></td>
360 360
 </tr>
361 361
 
362 362
 <tr>
363
-<td class="org-left"><a href="#org8b85e62">How do I renew a Let's Encrypt certificate?</a></td>
363
+<td class="org-left"><a href="#orgdaf57b7">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
364 364
 </tr>
365 365
 
366 366
 <tr>
367
-<td class="org-left"><a href="#org6aba810">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
367
+<td class="org-left"><a href="#org9fde76d">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
368 368
 </tr>
369 369
 
370 370
 <tr>
371
-<td class="org-left"><a href="#orgc65717c">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
371
+<td class="org-left"><a href="#org71ce92c">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
372 372
 </tr>
373 373
 
374 374
 <tr>
375
-<td class="org-left"><a href="#org76affcf">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
375
+<td class="org-left"><a href="#org1bd542d">Tor is censored/blocked in my area. What can I do?</a></td>
376 376
 </tr>
377 377
 
378 378
 <tr>
379
-<td class="org-left"><a href="#org93992f5">Tor is censored/blocked in my area. What can I do?</a></td>
379
+<td class="org-left"><a href="#orgcf6a401">I want to block a particular domain from getting its content into my social network sites</a></td>
380 380
 </tr>
381 381
 
382 382
 <tr>
383
-<td class="org-left"><a href="#org92ebfd1">I want to block a particular domain from getting its content into my social network sites</a></td>
384
-</tr>
385
-
386
-<tr>
387
-<td class="org-left"><a href="#orgd38ad08">The mesh system doesn't boot from USB drive</a></td>
383
+<td class="org-left"><a href="#org39004fe">The mesh system doesn't boot from USB drive</a></td>
388 384
 </tr>
389 385
 </tbody>
390 386
 </table>
391 387
 </div>
392 388
 
393
-<div id="outline-container-orgf3ee5ce" class="outline-2">
394
-<h2 id="orgf3ee5ce">What applications are supported?</h2>
395
-<div class="outline-text-2" id="text-orgf3ee5ce">
389
+<div id="outline-container-org416597b" class="outline-2">
390
+<h2 id="org416597b">What applications are supported?</h2>
391
+<div class="outline-text-2" id="text-org416597b">
396 392
 <p>
397 393
 <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.
398 394
 </p>
399 395
 </div>
400 396
 </div>
401
-<div id="outline-container-orgec76339" class="outline-2">
402
-<h2 id="orgec76339">I don't have a static IP address. Can I still install this system?</h2>
403
-<div class="outline-text-2" id="text-orgec76339">
397
+<div id="outline-container-org719e222" class="outline-2">
398
+<h2 id="org719e222">I don't have a static IP address. Can I still install this system?</h2>
399
+<div class="outline-text-2" id="text-org719e222">
404 400
 <p>
405 401
 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.
406 402
 </p>
@@ -410,17 +406,17 @@ The lack of a static IP address can be worked around by using a dynamic DNS serv
410 406
 </p>
411 407
 </div>
412 408
 </div>
413
-<div id="outline-container-org2da13bd" class="outline-2">
414
-<h2 id="org2da13bd">Why Freedombone and not FreedomBox?</h2>
415
-<div class="outline-text-2" id="text-org2da13bd">
409
+<div id="outline-container-org997ae78" class="outline-2">
410
+<h2 id="org997ae78">Why Freedombone and not FreedomBox?</h2>
411
+<div class="outline-text-2" id="text-org997ae78">
416 412
 <p>
417 413
 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:
418 414
 </p>
419 415
 </div>
420 416
 
421
-<div id="outline-container-orgfb1ae01" class="outline-3">
422
-<h3 id="orgfb1ae01">Similarities</h3>
423
-<div class="outline-text-3" id="text-orgfb1ae01">
417
+<div id="outline-container-org33179aa" class="outline-3">
418
+<h3 id="org33179aa">Similarities</h3>
419
+<div class="outline-text-3" id="text-org33179aa">
424 420
 <ul class="org-ul">
425 421
 <li>Uses freedom-maker and vmdebootstrap to build debian images</li>
426 422
 <li>Supports the use of Tor onion addresses to access websites</li>
@@ -434,9 +430,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
434 430
 </ul>
435 431
 </div>
436 432
 </div>
437
-<div id="outline-container-orgea61850" class="outline-3">
438
-<h3 id="orgea61850">Differences</h3>
439
-<div class="outline-text-3" id="text-orgea61850">
433
+<div id="outline-container-orgc193b4e" class="outline-3">
434
+<h3 id="orgc193b4e">Differences</h3>
435
+<div class="outline-text-3" id="text-orgc193b4e">
440 436
 <ul class="org-ul">
441 437
 <li>FreedomBox is a Debian pure blend. Freedombone is not</li>
442 438
 <li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
@@ -451,9 +447,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
451 447
 </div>
452 448
 </div>
453 449
 </div>
454
-<div id="outline-container-orgd530659" class="outline-2">
455
-<h2 id="orgd530659">Why not support building images for Raspberry Pi?</h2>
456
-<div class="outline-text-2" id="text-orgd530659">
450
+<div id="outline-container-org0fe5706" class="outline-2">
451
+<h2 id="org0fe5706">Why not support building images for Raspberry Pi?</h2>
452
+<div class="outline-text-2" id="text-org0fe5706">
457 453
 <p>
458 454
 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.
459 455
 </p>
@@ -463,29 +459,32 @@ So although the Raspberry Pi is cheap and hugely popular it's not supported by t
463 459
 </p>
464 460
 </div>
465 461
 </div>
466
-<div id="outline-container-org4bb2842" class="outline-2">
467
-<h2 id="org4bb2842">Why use Tor? I've heard it's used by bad people</h2>
468
-<div class="outline-text-2" id="text-org4bb2842">
462
+<div id="outline-container-orgf565b16" class="outline-2">
463
+<h2 id="orgf565b16">Why use Tor? I've heard it's used by bad people</h2>
464
+<div class="outline-text-2" id="text-orgf565b16">
469 465
 <p>
470
-Before you run screaming for the hills based upon whatever scare story you may have just read in the mainstream media there are a few things worthy of consideration. Tor is installed by default on Freedombone, <i>but not as a relay or exit node</i>. It's only used to provide onion addresses so that this gives you or the viewers of your sites some choice about how they access the information. It also allows you to subscribe to and read RSS feeds privately.
466
+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.
471 467
 </p>
472 468
 
473 469
 <p>
474
-Onion routing - which is what Tor provides - gives you some level of protection against bulk surveillance of metadata. These days governments and other organisations are in the business of collecting and analysing your metadata. They want to have comprehensive lists of which sites you visited, or who visited your sites. Tor may at least partially help to thwart their totalitarian ambitions to know everything about everyone all of the time.
470
+Tor and its onion addresses, previously called hidden addresses, have a few key advantages:
475 471
 </p>
476 472
 
477
-<p>
478
-Tor is not a perfect system and is not fully decentralised. Like all software it has bugs, but it can be considered to probably be an effective tactic against some of the most egregious surveillance fanatics out there.
479
-</p>
473
+<ul class="org-ul">
474
+<li>NAT traversal</li>
475
+<li>Firewall traversal</li>
476
+<li>Avoiding the domain name system (DNS), which is mostly centralized and not secure</li>
477
+<li>Avoiding passive bulk surveillance in which governments try to find out who is communicating with who</li>
478
+</ul>
480 479
 
481 480
 <p>
482
-The media may also have sold you torrid tales about individual Tor project developers. While the conduct of individuals does matter, what matters far more is whether the technical system works and is practical for the average user. Don't allow your opinions of the technical system to be deflected by transient sex scandals or oppressive moralising, and <i>don't hold anyone to standards higher than you would apply to yourself</i>.
481
+On the negative side it's a complex system which is not fully decentralized.
483 482
 </p>
484 483
 </div>
485 484
 </div>
486
-<div id="outline-container-org8f15beb" class="outline-2">
487
-<h2 id="org8f15beb">How is Tor integrated with Freedombone?</h2>
488
-<div class="outline-text-2" id="text-org8f15beb">
485
+<div id="outline-container-orgac61490" class="outline-2">
486
+<h2 id="orgac61490">How is Tor integrated with Freedombone?</h2>
487
+<div class="outline-text-2" id="text-orgac61490">
489 488
 <p>
490 489
 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.
491 490
 </p>
@@ -503,17 +502,17 @@ Even if you're running the "onion only" build, this only means that sites are ac
503 502
 </p>
504 503
 </div>
505 504
 </div>
506
-<div id="outline-container-orgd33d165" class="outline-2">
507
-<h2 id="orgd33d165">Can I add a clearnet domain to an onion build?</h2>
508
-<div class="outline-text-2" id="text-orgd33d165">
505
+<div id="outline-container-orgbe35250" class="outline-2">
506
+<h2 id="orgbe35250">Can I add a clearnet domain to an onion build?</h2>
507
+<div class="outline-text-2" id="text-orgbe35250">
509 508
 <p>
510 509
 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.
511 510
 </p>
512 511
 </div>
513 512
 </div>
514
-<div id="outline-container-org8e4a27d" class="outline-2">
515
-<h2 id="org8e4a27d">Why use Github?</h2>
516
-<div class="outline-text-2" id="text-org8e4a27d">
513
+<div id="outline-container-org1ea193b" class="outline-2">
514
+<h2 id="org1ea193b">Why use Github?</h2>
515
+<div class="outline-text-2" id="text-org1ea193b">
517 516
 <p>
518 517
 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.
519 518
 </p>
@@ -527,13 +526,13 @@ The source code for this project is experimentally independently hosted, and it
527 526
 </p>
528 527
 
529 528
 <p>
530
-Currently many of the repositories used for applications which are not yet packaged for Debian are on Github, and to provide some degree of resilliance against depending too much upon that it's possible to use <a href="./mirrors.html">mirrors stored on another server</a>.
529
+Currently many of the repositories used for applications which are not yet packaged for Debian are on Github, and to provide some degree of resilliance against depending too much upon that copies of them also exist within disk images.
531 530
 </p>
532 531
 </div>
533 532
 </div>
534
-<div id="outline-container-org3cd5f2c" class="outline-2">
535
-<h2 id="org3cd5f2c">Keys and emails should not be stored on servers. Why do you do that?</h2>
536
-<div class="outline-text-2" id="text-org3cd5f2c">
533
+<div id="outline-container-org7057def" class="outline-2">
534
+<h2 id="org7057def">Keys and emails should not be stored on servers. Why do you do that?</h2>
535
+<div class="outline-text-2" id="text-org7057def">
537 536
 <p>
538 537
 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:
539 538
 </p>
@@ -591,9 +590,9 @@ In the home environment a box with a good firewall and no GUI components install
591 590
 </div>
592 591
 </div>
593 592
 
594
-<div id="outline-container-org97f01de" class="outline-2">
595
-<h2 id="org97f01de">Why can't I access my .onion site with a Tor browser?</h2>
596
-<div class="outline-text-2" id="text-org97f01de">
593
+<div id="outline-container-orge669711" class="outline-2">
594
+<h2 id="orge669711">Why can't I access my .onion site with a Tor browser?</h2>
595
+<div class="outline-text-2" id="text-orge669711">
597 596
 <p>
598 597
 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.
599 598
 </p>
@@ -603,9 +602,9 @@ Another factor to be aware of is that it can take a while for the onion address
603 602
 </p>
604 603
 </div>
605 604
 </div>
606
-<div id="outline-container-org49504c7" class="outline-2">
607
-<h2 id="org49504c7">What is the best hardware to run this system on?</h2>
608
-<div class="outline-text-2" id="text-org49504c7">
605
+<div id="outline-container-orgdb3b7a6" class="outline-2">
606
+<h2 id="orgdb3b7a6">What is the best hardware to run this system on?</h2>
607
+<div class="outline-text-2" id="text-orgdb3b7a6">
609 608
 <p>
610 609
 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.
611 610
 </p>
@@ -615,9 +614,9 @@ It was originally designed to run on the Beaglebone Black, but that should be re
615 614
 </p>
616 615
 </div>
617 616
 </div>
618
-<div id="outline-container-orgf3e781c" class="outline-2">
619
-<h2 id="orgf3e781c">Can I add more users to the system?</h2>
620
-<div class="outline-text-2" id="text-orgf3e781c">
617
+<div id="outline-container-orgf1c38a0" class="outline-2">
618
+<h2 id="orgf1c38a0">Can I add more users to the system?</h2>
619
+<div class="outline-text-2" id="text-orgf1c38a0">
621 620
 <p>
622 621
 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).
623 622
 </p>
@@ -640,9 +639,9 @@ Another point is that Freedombone installations are not intended to support many
640 639
 </p>
641 640
 </div>
642 641
 </div>
643
-<div id="outline-container-orgb408729" class="outline-2">
644
-<h2 id="orgb408729">Why not use Signal for mobile chat?</h2>
645
-<div class="outline-text-2" id="text-orgb408729">
642
+<div id="outline-container-orgd32f191" class="outline-2">
643
+<h2 id="orgd32f191">Why not use Signal for mobile chat?</h2>
644
+<div class="outline-text-2" id="text-orgd32f191">
646 645
 <p>
647 646
 Celebrities recommend Signal. It's Free Software so it must be good, right?
648 647
 </p>
@@ -665,9 +664,9 @@ To give credit where it's due Signal is good, but it could be a lot better. The
665 664
 </p>
666 665
 </div>
667 666
 </div>
668
-<div id="outline-container-orgd117b08" class="outline-2">
669
-<h2 id="orgd117b08">What is the most secure chat app to use on mobile?</h2>
670
-<div class="outline-text-2" id="text-orgd117b08">
667
+<div id="outline-container-org16a21bb" class="outline-2">
668
+<h2 id="org16a21bb">What is the most secure chat app to use on mobile?</h2>
669
+<div class="outline-text-2" id="text-org16a21bb">
671 670
 <p>
672 671
 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.
673 672
 </p>
@@ -677,13 +676,13 @@ The current safest way to chat is to use <a href="https://conversations.im">Conv
677 676
 </p>
678 677
 
679 678
 <p>
680
-There are many <a href="#orgb408729">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.
679
+There are many <a href="#orgd32f191">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.
681 680
 </p>
682 681
 </div>
683 682
 </div>
684
-<div id="outline-container-orgb5b2126" class="outline-2">
685
-<h2 id="orgb5b2126">How do I remove a user from the system?</h2>
686
-<div class="outline-text-2" id="text-orgb5b2126">
683
+<div id="outline-container-org279eac7" class="outline-2">
684
+<h2 id="org279eac7">How do I remove a user from the system?</h2>
685
+<div class="outline-text-2" id="text-org279eac7">
687 686
 <p>
688 687
 To remove a user:
689 688
 </p>
@@ -698,9 +697,9 @@ Select <i>Administrator controls</i> then <i>Manage Users</i> and then <i>Delete
698 697
 </p>
699 698
 </div>
700 699
 </div>
701
-<div id="outline-container-org1ab944e" class="outline-2">
702
-<h2 id="org1ab944e">Why is logging for web sites turned off by default?</h2>
703
-<div class="outline-text-2" id="text-org1ab944e">
700
+<div id="outline-container-org12ac09e" class="outline-2">
701
+<h2 id="org12ac09e">Why is logging for web sites turned off by default?</h2>
702
+<div class="outline-text-2" id="text-org12ac09e">
704 703
 <p>
705 704
 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.
706 705
 </p>
@@ -714,9 +713,9 @@ On the Freedombone system web logs containing IP addresses are turned off by def
714 713
 </p>
715 714
 </div>
716 715
 </div>
717
-<div id="outline-container-org576c1da" class="outline-2">
718
-<h2 id="org576c1da">How do I reset the tripwire?</h2>
719
-<div class="outline-text-2" id="text-org576c1da">
716
+<div id="outline-container-org5e9d3c7" class="outline-2">
717
+<h2 id="org5e9d3c7">How do I reset the tripwire?</h2>
718
+<div class="outline-text-2" id="text-org5e9d3c7">
720 719
 <p>
721 720
 The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
722 721
 </p>
@@ -731,9 +730,9 @@ Select <i>Administrator controls</i> then "reset tripwire" using cursors and spa
731 730
 </p>
732 731
 </div>
733 732
 </div>
734
-<div id="outline-container-org575438d" class="outline-2">
735
-<h2 id="org575438d">Is metadata protected?</h2>
736
-<div class="outline-text-2" id="text-org575438d">
733
+<div id="outline-container-org0613054" class="outline-2">
734
+<h2 id="org0613054">Is metadata protected?</h2>
735
+<div class="outline-text-2" id="text-org0613054">
737 736
 <blockquote>
738 737
 <p>
739 738
 "<i>We kill people based on metadata</i>"
@@ -749,9 +748,9 @@ Even when using Freedombone metadata analysis by third parties is still possible
749 748
 </p>
750 749
 </div>
751 750
 </div>
752
-<div id="outline-container-org249cb8e" class="outline-2">
753
-<h2 id="org249cb8e">How do I create email processing rules?</h2>
754
-<div class="outline-text-2" id="text-org249cb8e">
751
+<div id="outline-container-orgdf75721" class="outline-2">
752
+<h2 id="orgdf75721">How do I create email processing rules?</h2>
753
+<div class="outline-text-2" id="text-orgdf75721">
755 754
 <div class="org-src-container">
756 755
 <pre class="src src-bash">ssh username@domainname -p 2222
757 756
 </pre>
@@ -807,9 +806,9 @@ Spamassassin is also available and within Mutt you can use the S (shift+s) key t
807 806
 </p>
808 807
 </div>
809 808
 </div>
810
-<div id="outline-container-org0026d12" class="outline-2">
811
-<h2 id="org0026d12">Why isn't dynamic DNS working?</h2>
812
-<div class="outline-text-2" id="text-org0026d12">
809
+<div id="outline-container-org5b21211" class="outline-2">
810
+<h2 id="org5b21211">Why isn't dynamic DNS working?</h2>
811
+<div class="outline-text-2" id="text-org5b21211">
813 812
 <p>
814 813
 If you run the command:
815 814
 </p>
@@ -832,9 +831,9 @@ https://www.privateinternetaccess.com/pages/whats-my-ip/
832 831
 </div>
833 832
 </div>
834 833
 
835
-<div id="outline-container-orgcf9314c" class="outline-2">
836
-<h2 id="orgcf9314c">How do I change my encryption settings?</h2>
837
-<div class="outline-text-2" id="text-orgcf9314c">
834
+<div id="outline-container-org929e4ae" class="outline-2">
835
+<h2 id="org929e4ae">How do I change my encryption settings?</h2>
836
+<div class="outline-text-2" id="text-org929e4ae">
838 837
 <p>
839 838
 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:
840 839
 </p>
@@ -849,9 +848,9 @@ Select <i>Administrator controls</i> then select <i>Security Settings</i>. You w
849 848
 </p>
850 849
 </div>
851 850
 </div>
852
-<div id="outline-container-org623845a" class="outline-2">
853
-<h2 id="org623845a">How do I get a domain name?</h2>
854
-<div class="outline-text-2" id="text-org623845a">
851
+<div id="outline-container-org087d147" class="outline-2">
852
+<h2 id="org087d147">How do I get a domain name?</h2>
853
+<div class="outline-text-2" id="text-org087d147">
855 854
 <p>
856 855
 Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.
857 856
 </p>
@@ -915,9 +914,9 @@ You should now be able to send an email from <i>postmaster@mynewdomainname</i> a
915 914
 </div>
916 915
 </div>
917 916
 
918
-<div id="outline-container-org80ee241" class="outline-2">
919
-<h2 id="org80ee241">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
920
-<div class="outline-text-2" id="text-org80ee241">
917
+<div id="outline-container-org4bb381a" class="outline-2">
918
+<h2 id="org4bb381a">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
919
+<div class="outline-text-2" id="text-org4bb381a">
921 920
 <p>
922 921
 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:
923 922
 </p>
@@ -936,9 +935,9 @@ One thing to be aware of is that Let's Encrypt doesn't support many dynamic DNS
936 935
 </p>
937 936
 </div>
938 937
 </div>
939
-<div id="outline-container-org8b85e62" class="outline-2">
940
-<h2 id="org8b85e62">How do I renew a Let's Encrypt certificate?</h2>
941
-<div class="outline-text-2" id="text-org8b85e62">
938
+<div id="outline-container-orgfbd420c" class="outline-2">
939
+<h2 id="orgfbd420c">How do I renew a Let's Encrypt certificate?</h2>
940
+<div class="outline-text-2" id="text-orgfbd420c">
942 941
 <p>
943 942
 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.
944 943
 </p>
@@ -957,9 +956,9 @@ Select <i>Administrator controls</i> then <b>Security settings</b> then <b>Renew
957 956
 </p>
958 957
 </div>
959 958
 </div>
960
-<div id="outline-container-org6aba810" class="outline-2">
961
-<h2 id="org6aba810">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
962
-<div class="outline-text-2" id="text-org6aba810">
959
+<div id="outline-container-orgdaf57b7" class="outline-2">
960
+<h2 id="orgdaf57b7">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
961
+<div class="outline-text-2" id="text-orgdaf57b7">
963 962
 <p>
964 963
 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:
965 964
 </p>
@@ -974,17 +973,17 @@ Select <i>Administrator controls</i> then <b>Security settings</b> then <b>Creat
974 973
 </p>
975 974
 </div>
976 975
 </div>
977
-<div id="outline-container-orgc65717c" class="outline-2">
978
-<h2 id="orgc65717c">Why not use the services of $company instead? They took the Seppuku pledge</h2>
979
-<div class="outline-text-2" id="text-orgc65717c">
976
+<div id="outline-container-org9fde76d" class="outline-2">
977
+<h2 id="org9fde76d">Why not use the services of $company instead? They took the Seppuku pledge</h2>
978
+<div class="outline-text-2" id="text-org9fde76d">
980 979
 <p>
981 980
 <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.
982 981
 </p>
983 982
 </div>
984 983
 </div>
985
-<div id="outline-container-org76affcf" class="outline-2">
986
-<h2 id="org76affcf">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
987
-<div class="outline-text-2" id="text-org76affcf">
984
+<div id="outline-container-org71ce92c" class="outline-2">
985
+<h2 id="org71ce92c">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
986
+<div class="outline-text-2" id="text-org71ce92c">
988 987
 <p>
989 988
 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.
990 989
 </p>
@@ -1015,9 +1014,9 @@ So the situation with email presently is pretty bad, and there's a clear selecti
1015 1014
 </p>
1016 1015
 </div>
1017 1016
 </div>
1018
-<div id="outline-container-org93992f5" class="outline-2">
1019
-<h2 id="org93992f5">Tor is censored/blocked in my area. What can I do?</h2>
1020
-<div class="outline-text-2" id="text-org93992f5">
1017
+<div id="outline-container-org1bd542d" class="outline-2">
1018
+<h2 id="org1bd542d">Tor is censored/blocked in my area. What can I do?</h2>
1019
+<div class="outline-text-2" id="text-org1bd542d">
1021 1020
 <p>
1022 1021
 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.
1023 1022
 </p>
@@ -1048,9 +1047,9 @@ Return to the <a href="index.html">home page</a>
1048 1047
 </div>
1049 1048
 </div>
1050 1049
 
1051
-<div id="outline-container-org92ebfd1" class="outline-2">
1052
-<h2 id="org92ebfd1">I want to block a particular domain from getting its content into my social network sites</h2>
1053
-<div class="outline-text-2" id="text-org92ebfd1">
1050
+<div id="outline-container-orgcf6a401" class="outline-2">
1051
+<h2 id="orgcf6a401">I want to block a particular domain from getting its content into my social network sites</h2>
1052
+<div class="outline-text-2" id="text-orgcf6a401">
1054 1053
 <p>
1055 1054
 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.
1056 1055
 </p>
@@ -1065,9 +1064,9 @@ Select <i>Administrator controls</i> then <i>Domain blocking</i>.
1065 1064
 </div>
1066 1065
 </div>
1067 1066
 
1068
-<div id="outline-container-orgd38ad08" class="outline-2">
1069
-<h2 id="orgd38ad08">The mesh system doesn't boot from USB drive</h2>
1070
-<div class="outline-text-2" id="text-orgd38ad08">
1067
+<div id="outline-container-org39004fe" class="outline-2">
1068
+<h2 id="org39004fe">The mesh system doesn't boot from USB drive</h2>
1069
+<div class="outline-text-2" id="text-org39004fe">
1071 1070
 <p>
1072 1071
 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.
1073 1072
 </p>

+ 22
- 22
website/EN/homeserver.html 查看文件

@@ -3,10 +3,10 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-09-15 Fri 22:17 -->
6
+<!-- 2017-12-28 Thu 21:15 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
-<title></title>
9
+<title>&lrm;</title>
10 10
 <meta name="generator" content="Org mode" />
11 11
 <meta name="author" content="Bob Mottram" />
12 12
 <meta name="description" content="Turn the Beaglebone Black into a personal communications server"
@@ -256,14 +256,14 @@ First install freedombone onto your local system (not the target hardware that y
256 256
 </p>
257 257
 
258 258
 <div class="org-src-container">
259
-<pre><code class="src src-bash">sudo apt-get install git
259
+<pre class="src src-bash">sudo apt-get install git
260 260
 git clone https://github.com/bashrc/freedombone
261 261
 <span class="org-builtin">cd</span> freedombone
262 262
 git checkout stretch
263 263
 sudo make install
264 264
 freedombone-image --setup debian
265 265
 freedombone-image -t i386 --onion-addresses-only yes
266
-</code></pre>
266
+</pre>
267 267
 </div>
268 268
 
269 269
 <p>
@@ -271,14 +271,14 @@ Or on Arch/Parabola:
271 271
 </p>
272 272
 
273 273
 <div class="org-src-container">
274
-<pre><code class="src src-bash">sudo pacman -S git
274
+<pre class="src src-bash">sudo pacman -S git
275 275
 git clone https://github.com/bashrc/freedombone
276 276
 <span class="org-builtin">cd</span> freedombone
277 277
 git checkout stretch
278 278
 sudo make install
279 279
 freedombone-image --setup parabola
280 280
 freedombone-image -t i386 --onion-addresses-only yes
281
-</code></pre>
281
+</pre>
282 282
 </div>
283 283
 
284 284
 <p>
@@ -286,8 +286,8 @@ Now prepare your local system to talk to the freedombone by running the followin
286 286
 </p>
287 287
 
288 288
 <div class="org-src-container">
289
-<pre><code class="src src-bash">freedombone-client
290
-</code></pre>
289
+<pre class="src src-bash">freedombone-client
290
+</pre>
291 291
 </div>
292 292
 
293 293
 <div class="org-center">
@@ -327,8 +327,8 @@ List what drives are on your system with:
327 327
 </p>
328 328
 
329 329
 <div class="org-src-container">
330
-<pre><code class="src src-bash">ls /dev/sd*
331
-</code></pre>
330
+<pre class="src src-bash">ls /dev/sd*
331
+</pre>
332 332
 </div>
333 333
 
334 334
 <p>
@@ -340,9 +340,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
340 340
 </p>
341 341
 
342 342
 <div class="org-src-container">
343
-<pre><code 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>=1M <span class="org-variable-name">count</span>=8
343
+<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>=1M <span class="org-variable-name">count</span>=8
344 344
 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
345
-</code></pre>
345
+</pre>
346 346
 </div>
347 347
 
348 348
 <p>
@@ -354,9 +354,9 @@ As the system boots for the first time the login is:
354 354
 </p>
355 355
 
356 356
 <div class="org-src-container">
357
-<pre><code class="src src-bash">username: fbone
357
+<pre class="src src-bash">username: fbone
358 358
 password: freedombone
359
-</code></pre>
359
+</pre>
360 360
 </div>
361 361
 
362 362
 <p>
@@ -364,8 +364,8 @@ If you're installing from a microSD card on a single board computer without a sc
364 364
 </p>
365 365
 
366 366
 <div class="org-src-container">
367
-<pre><code class="src src-bash">ssh fbone@freedombone.local -p 2222
368
-</code></pre>
367
+<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
368
+</pre>
369 369
 </div>
370 370
 
371 371
 <p>
@@ -385,8 +385,8 @@ When it's installed on your local system open a terminal and verify the ssh serv
385 385
 </p>
386 386
 
387 387
 <div class="org-src-container">
388
-<pre><code class="src src-bash">freedombone-client --verify
389
-</code></pre>
388
+<pre class="src src-bash">freedombone-client --verify
389
+</pre>
390 390
 </div>
391 391
 
392 392
 <p>
@@ -406,9 +406,9 @@ Open another terminal window then run:
406 406
 </p>
407 407
 
408 408
 <div class="org-src-container">
409
-<pre><code class="src src-bash">freedombone-client
409
+<pre class="src src-bash">freedombone-client
410 410
 ssh myusername@freedombone.local -p 2222
411
-</code></pre>
411
+</pre>
412 412
 </div>
413 413
 
414 414
 <p>
@@ -472,8 +472,8 @@ Of course, this is just one way in which you can install the Freedombone system.
472 472
 </p>
473 473
 
474 474
 <div class="org-src-container">
475
-<pre><code class="src src-bash">man freedombone-image
476
-</code></pre>
475
+<pre class="src src-bash">man freedombone-image
476
+</pre>
477 477
 </div>
478 478
 
479 479
 <div class="org-center">

+ 2
- 2
website/EN/mesh.html 查看文件

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-11-01 Wed 18:58 -->
6
+<!-- 2017-12-29 Fri 22:58 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -261,7 +261,7 @@ The Freedombone Mesh is a wireless solution for autonomous or internet connected
261 261
 <div class="org-center">
262 262
 
263 263
 <div class="figure">
264
-<p><img src="images/mesh_logo.jpg" alt="mesh_logo.jpg" />
264
+<p><img src="images/mesh_desktop1.png" alt="mesh_desktop1.png" />
265 265
 </p>
266 266
 </div>
267 267
 </div>

+ 23
- 23
website/EN/mesh_images.html 查看文件

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-12-09 Sat 23:07 -->
6
+<!-- 2017-12-29 Fri 23:16 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -246,13 +246,13 @@ for the JavaScript code in this tag.
246 246
 
247 247
 <center><h1>Mesh Network: Images</h1></center>
248 248
 
249
-<div id="outline-container-org59e2a01" class="outline-2">
250
-<h2 id="org59e2a01">Pre-built Disk Images</h2>
251
-<div class="outline-text-2" id="text-org59e2a01">
249
+<div id="outline-container-org92a36a4" class="outline-2">
250
+<h2 id="org92a36a4">Pre-built Disk Images</h2>
251
+<div class="outline-text-2" id="text-org92a36a4">
252 252
 </div>
253
-<div id="outline-container-org58cbb17" class="outline-3">
254
-<h3 id="org58cbb17">Writing many images quickly</h3>
255
-<div class="outline-text-3" id="text-org58cbb17">
253
+<div id="outline-container-orgf74ea4c" class="outline-3">
254
+<h3 id="orgf74ea4c">Writing many images quickly</h3>
255
+<div class="outline-text-3" id="text-orgf74ea4c">
256 256
 <p>
257 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 258
 </p>
@@ -280,9 +280,9 @@ The MultiWriter tool is also available within mesh client images, so that you ca
280 280
 </p>
281 281
 </div>
282 282
 </div>
283
-<div id="outline-container-orgbec0fc8" class="outline-3">
284
-<h3 id="orgbec0fc8">Client images</h3>
285
-<div class="outline-text-3" id="text-orgbec0fc8">
283
+<div id="outline-container-orgdd8f201" class="outline-3">
284
+<h3 id="orgdd8f201">Client images</h3>
285
+<div class="outline-text-3" id="text-orgdd8f201">
286 286
 <div class="org-center">
287 287
 
288 288
 <div class="figure">
@@ -301,7 +301,7 @@ wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.x
301 301
 wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.xz.sig
302 302
 gpg --verify freedombone-meshclient-i386.img.xz.sig
303 303
 sha256sum freedombone-meshclient-i386.img.xz
304
-3e88205461bb2061dc172ff0a1e65e5cae1013f8f7dc26c6d5cbe1c986c98555
304
+49391230de6a4f1966db091813deb8f9d93c947677f5483baa52400d7fcba7d3
305 305
 unxz freedombone-meshclient-i386.img.xz
306 306
 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
307 307
 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
@@ -322,7 +322,7 @@ wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i
322 322
 wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz.sig
323 323
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
324 324
 sha256sum freedombone-meshclient-insecure-i386.img.xz
325
-09c059664daf56d210134735d37e8117bb7b755acc8b9b253cdfa42052249ccb
325
+c11783741e66df5072ffcbef8d9b04260a2298d84e33c72fefa4bb539d094810
326 326
 unxz freedombone-meshclient-insecure-i386.img.xz
327 327
 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
328 328
 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
@@ -331,16 +331,16 @@ sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-n
331 331
 </div>
332 332
 </div>
333 333
 
334
-<div id="outline-container-org6f3a05a" class="outline-3">
335
-<h3 id="org6f3a05a">Router images</h3>
336
-<div class="outline-text-3" id="text-org6f3a05a">
334
+<div id="outline-container-org231f975" class="outline-3">
335
+<h3 id="org231f975">Router images</h3>
336
+<div class="outline-text-3" id="text-org231f975">
337 337
 <p>
338 338
 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.
339 339
 </p>
340 340
 </div>
341
-<div id="outline-container-org0387979" class="outline-4">
342
-<h4 id="org0387979">Beaglebone Black</h4>
343
-<div class="outline-text-4" id="text-org0387979">
341
+<div id="outline-container-orgbe92b46" class="outline-4">
342
+<h4 id="orgbe92b46">Beaglebone Black</h4>
343
+<div class="outline-text-4" id="text-orgbe92b46">
344 344
 <div class="org-center">
345 345
 
346 346
 <div class="figure">
@@ -359,7 +359,7 @@ wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf
359 359
 wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf.img.xz.sig
360 360
 gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig
361 361
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
362
-60017999340a6559d1de76f3d78d9771c11de5eeefb3d3b812747ce306251e67
362
+ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
363 363
 unxz freedombone-mesh_beaglebone-armhf.img.xz
364 364
 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
365 365
 </pre>
@@ -377,9 +377,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
377 377
 </div>
378 378
 </div>
379 379
 
380
-<div id="outline-container-org0db60a2" class="outline-2">
381
-<h2 id="org0db60a2">Building Disk Images</h2>
382
-<div class="outline-text-2" id="text-org0db60a2">
380
+<div id="outline-container-orgd948176" class="outline-2">
381
+<h2 id="orgd948176">Building Disk Images</h2>
382
+<div class="outline-text-2" id="text-orgd948176">
383 383
 <p>
384 384
 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.
385 385
 </p>
@@ -394,7 +394,7 @@ wget https://freedombone.net/downloads/current/freedombone.tar.gz
394 394
 wget https://freedombone.net/downloads/current/freedombone.tar.gz.sig
395 395
 gpg --verify freedombone.tar.gz.sig
396 396
 sha256sum freedombone.tar.gz
397
-3d2a7f2bd7a3475832756b7bb63b96ba5fc4a4f4d7bffe86e685be9a3b41b958
397
+afbb536564140aa28c6491d45b7474ced5a0b018539ffd3e96b13b242a41792e
398 398
 tar -xzvf freedombone.tar.gz
399 399
 <span class="org-builtin">cd</span> freedombone
400 400
 git checkout stretch