Browse Source

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

Bob Mottram 7 years ago
parent
commit
6b0397e414

+ 2
- 2
code-of-conduct.md View File

30
 
30
 
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.
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 View File

44
 
44
 
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.
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 View File

32
 | [[Can I add a clearnet domain to an onion build?]]                                            |
32
 | [[Can I add a clearnet domain to an onion build?]]                                            |
33
 | [[Why use Github?]]                                                                           |
33
 | [[Why use Github?]]                                                                           |
34
 | [[Keys and emails should not be stored on servers. Why do you do that?]]                      |
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
 | [[Why can't I access my .onion site with a Tor browser?]]                                     |
35
 | [[Why can't I access my .onion site with a Tor browser?]]                                     |
37
 | [[What is the best hardware to run this system on?]]                                          |
36
 | [[What is the best hardware to run this system on?]]                                          |
38
 | [[Can I add more users to the system?]]                                                       |
37
 | [[Can I add more users to the system?]]                                                       |
91
 
90
 
92
 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.
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
 * Why use Tor? I've heard it's used by bad people
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
 * How is Tor integrated with Freedombone?
103
 * How is Tor integrated with Freedombone?
102
 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.
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
 
117
 
116
 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.
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
 * Keys and emails should not be stored on servers. Why do you do that?
121
 * Keys and emails should not be stored on servers. Why do you do that?
120
 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:
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 View File

23
  * [[./mesh_usage.html][How to use it]]
23
  * [[./mesh_usage.html][How to use it]]
24
 
24
 
25
 #+BEGIN_CENTER
25
 #+BEGIN_CENTER
26
-[[file:images/mesh_logo.jpg]]
26
+[[file:images/mesh_desktop1.png]]
27
 #+END_CENTER
27
 #+END_CENTER
28
 
28
 
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.
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 View File

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

+ 55
- 0
image_build/mod_omemo_all_access.lua View File

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);

BIN
img/backgrounds/freedombone_mesh_background.png View File


BIN
img/mesh_desktop1.png View File


BIN
img/mesh_logo.jpg View File


+ 6
- 2
src/freedombone-app-ipfs View File

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

+ 14
- 15
src/freedombone-app-pelican View File

49
                    PELICAN_DOMAIN_NAME
49
                    PELICAN_DOMAIN_NAME
50
                    PELICAN_BLOG_CODE)
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
 function logging_on_pelican {
61
 function logging_on_pelican {
53
     echo -n ''
62
     echo -n ''
54
 }
63
 }
275
     esac
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
 function pelican_change_theme {
287
 function pelican_change_theme {
286
     THEMES=()
288
     THEMES=()
287
     for d in $PELICAN_BLOG_INSTALL_DIR/themes/*/ ; do
289
     for d in $PELICAN_BLOG_INSTALL_DIR/themes/*/ ; do
330
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
332
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
331
 
333
 
332
     CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
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
     if grep -q "THEME=" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py; then
339
     if grep -q "THEME=" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py; then
335
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py
340
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $PELICAN_BLOG_INSTALL_DIR/pelicanconf.py
336
     else
341
     else
742
     git clone https://github.com/jarv/water-iris
747
     git clone https://github.com/jarv/water-iris
743
     git clone https://github.com/kplaube/yapeme
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
 function mesh_install_pelican {
753
 function mesh_install_pelican {

+ 2
- 0
src/freedombone-app-riot View File

330
 
330
 
331
     sed '/Content-Security-Policy/d' $riot_nginx_site
331
     sed '/Content-Security-Policy/d' $riot_nginx_site
332
     sed -i 's| DENY;| SAMEORIGIN;|g' $riot_nginx_site
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
     function_check create_site_certificate
336
     function_check create_site_certificate
335
     if [ ! -f /etc/ssl/certs/${RIOT_DOMAIN_NAME}.pem ]; then
337
     if [ ! -f /etc/ssl/certs/${RIOT_DOMAIN_NAME}.pem ]; then

+ 41
- 0
src/freedombone-app-xmpp View File

326
         return
326
         return
327
     fi
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
     if [ ! -f $INSTALL_DIR/$prosody_modules_filename ]; then
369
     if [ ! -f $INSTALL_DIR/$prosody_modules_filename ]; then
330
         # Obtain the modules
370
         # Obtain the modules
331
         if [ -f ~/freedombone/image_build/$prosody_modules_filename ]; then
371
         if [ -f ~/freedombone/image_build/$prosody_modules_filename ]; then
624
     echo '  "smacks"; -- Stream management' >> $filename
664
     echo '  "smacks"; -- Stream management' >> $filename
625
     echo '  "smacks_offline"; -- Stream management' >> $filename
665
     echo '  "smacks_offline"; -- Stream management' >> $filename
626
     echo '  "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
666
     echo '  "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
667
+    echo '  "omemo_all_access"; -- Fix for PEP with OMEMO' >> $filename
627
     echo '  "vcard"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
668
     echo '  "vcard"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
628
     echo '  "e2e_policy"; -- To support OMEMO' >> $filename
669
     echo '  "e2e_policy"; -- To support OMEMO' >> $filename
629
     echo '  "pep_vcard_avatar"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename
670
     echo '  "pep_vcard_avatar"; -- Personal Eventing Protocol (to support OMEMO)' >> $filename

+ 2
- 0
src/freedombone-image-mesh View File

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

+ 12
- 5
src/freedombone-mesh-blog View File

42
 DEFAULT_BLOG_TITLE=$"Freedombone Blog"
42
 DEFAULT_BLOG_TITLE=$"Freedombone Blog"
43
 
43
 
44
 function remove_bad_blog_links {
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
 function ipfs_publish {
53
 function ipfs_publish {
80
         sed -i "s|SITENAME=.*|SITENAME=u\"${BLOG_TITLE}\"|g" $BLOG_PATH/pelicanconf.py
82
         sed -i "s|SITENAME=.*|SITENAME=u\"${BLOG_TITLE}\"|g" $BLOG_PATH/pelicanconf.py
81
     fi
83
     fi
82
     make html
84
     make html
85
+
86
+    cd $BLOG_PATH
87
+    remove_bad_blog_links
88
+
83
     ipfs_publish
89
     ipfs_publish
84
 }
90
 }
85
 
91
 
206
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
212
     CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
207
 
213
 
208
     CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
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
     if grep -q "THEME=" $BLOG_PATH/pelicanconf.py; then
217
     if grep -q "THEME=" $BLOG_PATH/pelicanconf.py; then
211
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $BLOG_PATH/pelicanconf.py
218
         sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $BLOG_PATH/pelicanconf.py
212
     else
219
     else

+ 21
- 21
website/EN/codeofconduct.html View File

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
-<!-- 2017-12-20 Wed 12:45 -->
6
+<!-- 2017-12-29 Fri 10:25 -->
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>
246
 
246
 
247
 <center><h1>Code of Conduct</h1></center>
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
 <p>
252
 <p>
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.
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
 </p>
254
 </p>
255
 </div>
255
 </div>
256
 </div>
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
 <p>
261
 <p>
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.
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
 </p>
263
 </p>
264
 </div>
264
 </div>
265
 </div>
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
 <p>
270
 <p>
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.
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
 </p>
272
 </p>
277
 </div>
277
 </div>
278
 </div>
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
 <p>
283
 <p>
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.
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
 </p>
285
 </p>
290
 </div>
290
 </div>
291
 </div>
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
 <p>
296
 <p>
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.
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
 </p>
298
 </p>
303
 </div>
303
 </div>
304
 </div>
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
 <p>
309
 <p>
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.
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
 </p>
311
 </p>
312
 
312
 
313
 <p>
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
 </p>
315
 </p>
316
 
316
 
317
 <p>
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
 </p>
319
 </p>
320
 </div>
320
 </div>
321
 </div>
321
 </div>

+ 138
- 139
website/EN/faq.html View File

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
-<!-- 2017-11-11 Sat 18:24 -->
6
+<!-- 2017-12-30 Sat 15:48 -->
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>
264
 </colgroup>
264
 </colgroup>
265
 <tbody>
265
 <tbody>
266
 <tr>
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
 </tr>
268
 </tr>
269
 
269
 
270
 <tr>
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
 </tr>
272
 </tr>
273
 
273
 
274
 <tr>
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
 </tr>
276
 </tr>
277
 
277
 
278
 <tr>
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
 </tr>
280
 </tr>
281
 
281
 
282
 <tr>
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
 </tr>
284
 </tr>
285
 
285
 
286
 <tr>
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
 </tr>
288
 </tr>
289
 
289
 
290
 <tr>
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
 </tr>
292
 </tr>
293
 
293
 
294
 <tr>
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
 </tr>
296
 </tr>
297
 
297
 
298
 <tr>
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
 </tr>
300
 </tr>
301
 
301
 
302
 <tr>
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
 </tr>
304
 </tr>
305
 
305
 
306
 <tr>
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
 </tr>
308
 </tr>
309
 
309
 
310
 <tr>
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
 </tr>
312
 </tr>
313
 
313
 
314
 <tr>
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
 </tr>
316
 </tr>
317
 
317
 
318
 <tr>
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
 </tr>
320
 </tr>
321
 
321
 
322
 <tr>
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
 </tr>
324
 </tr>
325
 
325
 
326
 <tr>
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
 </tr>
328
 </tr>
329
 
329
 
330
 <tr>
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
 </tr>
332
 </tr>
333
 
333
 
334
 <tr>
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
 </tr>
336
 </tr>
337
 
337
 
338
 <tr>
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
 </tr>
340
 </tr>
341
 
341
 
342
 <tr>
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
 </tr>
344
 </tr>
345
 
345
 
346
 <tr>
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
 </tr>
348
 </tr>
349
 
349
 
350
 <tr>
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
 </tr>
352
 </tr>
353
 
353
 
354
 <tr>
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
 </tr>
356
 </tr>
357
 
357
 
358
 <tr>
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
 </tr>
360
 </tr>
361
 
361
 
362
 <tr>
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
 </tr>
364
 </tr>
365
 
365
 
366
 <tr>
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
 </tr>
368
 </tr>
369
 
369
 
370
 <tr>
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
 </tr>
372
 </tr>
373
 
373
 
374
 <tr>
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
 </tr>
376
 </tr>
377
 
377
 
378
 <tr>
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
 </tr>
380
 </tr>
381
 
381
 
382
 <tr>
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
 </tr>
384
 </tr>
389
 </tbody>
385
 </tbody>
390
 </table>
386
 </table>
391
 </div>
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
 <p>
392
 <p>
397
 <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.
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
 </p>
394
 </p>
399
 </div>
395
 </div>
400
 </div>
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
 <p>
400
 <p>
405
 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.
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
 </p>
402
 </p>
410
 </p>
406
 </p>
411
 </div>
407
 </div>
412
 </div>
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
 <p>
412
 <p>
417
 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:
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
 </p>
414
 </p>
419
 </div>
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
 <ul class="org-ul">
420
 <ul class="org-ul">
425
 <li>Uses freedom-maker and vmdebootstrap to build debian images</li>
421
 <li>Uses freedom-maker and vmdebootstrap to build debian images</li>
426
 <li>Supports the use of Tor onion addresses to access websites</li>
422
 <li>Supports the use of Tor onion addresses to access websites</li>
434
 </ul>
430
 </ul>
435
 </div>
431
 </div>
436
 </div>
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
 <ul class="org-ul">
436
 <ul class="org-ul">
441
 <li>FreedomBox is a Debian pure blend. Freedombone is not</li>
437
 <li>FreedomBox is a Debian pure blend. Freedombone is not</li>
442
 <li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
438
 <li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
451
 </div>
447
 </div>
452
 </div>
448
 </div>
453
 </div>
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
 <p>
453
 <p>
458
 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.
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
 </p>
455
 </p>
463
 </p>
459
 </p>
464
 </div>
460
 </div>
465
 </div>
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
 <p>
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
 </p>
467
 </p>
472
 
468
 
473
 <p>
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
 </p>
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
 <p>
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
 </p>
482
 </p>
484
 </div>
483
 </div>
485
 </div>
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
 <p>
488
 <p>
490
 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.
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
 </p>
490
 </p>
503
 </p>
502
 </p>
504
 </div>
503
 </div>
505
 </div>
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
 <p>
508
 <p>
510
 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.
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
 </p>
510
 </p>
512
 </div>
511
 </div>
513
 </div>
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
 <p>
516
 <p>
518
 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.
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
 </p>
518
 </p>
527
 </p>
526
 </p>
528
 
527
 
529
 <p>
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
 </p>
530
 </p>
532
 </div>
531
 </div>
533
 </div>
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
 <p>
536
 <p>
538
 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:
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
 </p>
538
 </p>
591
 </div>
590
 </div>
592
 </div>
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
 <p>
596
 <p>
598
 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.
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
 </p>
598
 </p>
603
 </p>
602
 </p>
604
 </div>
603
 </div>
605
 </div>
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
 <p>
608
 <p>
610
 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.
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
 </p>
610
 </p>
615
 </p>
614
 </p>
616
 </div>
615
 </div>
617
 </div>
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
 <p>
620
 <p>
622
 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).
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
 </p>
622
 </p>
640
 </p>
639
 </p>
641
 </div>
640
 </div>
642
 </div>
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
 <p>
645
 <p>
647
 Celebrities recommend Signal. It's Free Software so it must be good, right?
646
 Celebrities recommend Signal. It's Free Software so it must be good, right?
648
 </p>
647
 </p>
665
 </p>
664
 </p>
666
 </div>
665
 </div>
667
 </div>
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
 <p>
670
 <p>
672
 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.
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
 </p>
672
 </p>
677
 </p>
676
 </p>
678
 
677
 
679
 <p>
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
 </p>
680
 </p>
682
 </div>
681
 </div>
683
 </div>
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
 <p>
686
 <p>
688
 To remove a user:
687
 To remove a user:
689
 </p>
688
 </p>
698
 </p>
697
 </p>
699
 </div>
698
 </div>
700
 </div>
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
 <p>
703
 <p>
705
 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.
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
 </p>
705
 </p>
714
 </p>
713
 </p>
715
 </div>
714
 </div>
716
 </div>
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
 <p>
719
 <p>
721
 The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
720
 The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
722
 </p>
721
 </p>
731
 </p>
730
 </p>
732
 </div>
731
 </div>
733
 </div>
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
 <blockquote>
736
 <blockquote>
738
 <p>
737
 <p>
739
 "<i>We kill people based on metadata</i>"
738
 "<i>We kill people based on metadata</i>"
749
 </p>
748
 </p>
750
 </div>
749
 </div>
751
 </div>
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
 <div class="org-src-container">
754
 <div class="org-src-container">
756
 <pre class="src src-bash">ssh username@domainname -p 2222
755
 <pre class="src src-bash">ssh username@domainname -p 2222
757
 </pre>
756
 </pre>
807
 </p>
806
 </p>
808
 </div>
807
 </div>
809
 </div>
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
 <p>
812
 <p>
814
 If you run the command:
813
 If you run the command:
815
 </p>
814
 </p>
832
 </div>
831
 </div>
833
 </div>
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
 <p>
837
 <p>
839
 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:
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
 </p>
839
 </p>
849
 </p>
848
 </p>
850
 </div>
849
 </div>
851
 </div>
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
 <p>
854
 <p>
856
 Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.
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
 </p>
856
 </p>
915
 </div>
914
 </div>
916
 </div>
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
 <p>
920
 <p>
922
 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:
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
 </p>
922
 </p>
936
 </p>
935
 </p>
937
 </div>
936
 </div>
938
 </div>
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
 <p>
941
 <p>
943
 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.
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
 </p>
943
 </p>
957
 </p>
956
 </p>
958
 </div>
957
 </div>
959
 </div>
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
 <p>
962
 <p>
964
 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:
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
 </p>
964
 </p>
974
 </p>
973
 </p>
975
 </div>
974
 </div>
976
 </div>
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
 <p>
979
 <p>
981
 <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.
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
 </p>
981
 </p>
983
 </div>
982
 </div>
984
 </div>
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
 <p>
987
 <p>
989
 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.
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
 </p>
989
 </p>
1015
 </p>
1014
 </p>
1016
 </div>
1015
 </div>
1017
 </div>
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
 <p>
1020
 <p>
1022
 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.
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
 </p>
1022
 </p>
1048
 </div>
1047
 </div>
1049
 </div>
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
 <p>
1053
 <p>
1055
 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.
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
 </p>
1055
 </p>
1065
 </div>
1064
 </div>
1066
 </div>
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
 <p>
1070
 <p>
1072
 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.
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
 </p>
1072
 </p>

+ 22
- 22
website/EN/homeserver.html View File

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
-<!-- 2017-09-15 Fri 22:17 -->
6
+<!-- 2017-12-28 Thu 21:15 -->
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></title>
9
+<title>&lrm;</title>
10
 <meta name="generator" content="Org mode" />
10
 <meta name="generator" content="Org mode" />
11
 <meta name="author" content="Bob Mottram" />
11
 <meta name="author" content="Bob Mottram" />
12
 <meta name="description" content="Turn the Beaglebone Black into a personal communications server"
12
 <meta name="description" content="Turn the Beaglebone Black into a personal communications server"
256
 </p>
256
 </p>
257
 
257
 
258
 <div class="org-src-container">
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
 git clone https://github.com/bashrc/freedombone
260
 git clone https://github.com/bashrc/freedombone
261
 <span class="org-builtin">cd</span> freedombone
261
 <span class="org-builtin">cd</span> freedombone
262
 git checkout stretch
262
 git checkout stretch
263
 sudo make install
263
 sudo make install
264
 freedombone-image --setup debian
264
 freedombone-image --setup debian
265
 freedombone-image -t i386 --onion-addresses-only yes
265
 freedombone-image -t i386 --onion-addresses-only yes
266
-</code></pre>
266
+</pre>
267
 </div>
267
 </div>
268
 
268
 
269
 <p>
269
 <p>
271
 </p>
271
 </p>
272
 
272
 
273
 <div class="org-src-container">
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
 git clone https://github.com/bashrc/freedombone
275
 git clone https://github.com/bashrc/freedombone
276
 <span class="org-builtin">cd</span> freedombone
276
 <span class="org-builtin">cd</span> freedombone
277
 git checkout stretch
277
 git checkout stretch
278
 sudo make install
278
 sudo make install
279
 freedombone-image --setup parabola
279
 freedombone-image --setup parabola
280
 freedombone-image -t i386 --onion-addresses-only yes
280
 freedombone-image -t i386 --onion-addresses-only yes
281
-</code></pre>
281
+</pre>
282
 </div>
282
 </div>
283
 
283
 
284
 <p>
284
 <p>
286
 </p>
286
 </p>
287
 
287
 
288
 <div class="org-src-container">
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
 </div>
291
 </div>
292
 
292
 
293
 <div class="org-center">
293
 <div class="org-center">
327
 </p>
327
 </p>
328
 
328
 
329
 <div class="org-src-container">
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
 </div>
332
 </div>
333
 
333
 
334
 <p>
334
 <p>
340
 </p>
340
 </p>
341
 
341
 
342
 <div class="org-src-container">
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
 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
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
 </div>
346
 </div>
347
 
347
 
348
 <p>
348
 <p>
354
 </p>
354
 </p>
355
 
355
 
356
 <div class="org-src-container">
356
 <div class="org-src-container">
357
-<pre><code class="src src-bash">username: fbone
357
+<pre class="src src-bash">username: fbone
358
 password: freedombone
358
 password: freedombone
359
-</code></pre>
359
+</pre>
360
 </div>
360
 </div>
361
 
361
 
362
 <p>
362
 <p>
364
 </p>
364
 </p>
365
 
365
 
366
 <div class="org-src-container">
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
 </div>
369
 </div>
370
 
370
 
371
 <p>
371
 <p>
385
 </p>
385
 </p>
386
 
386
 
387
 <div class="org-src-container">
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
 </div>
390
 </div>
391
 
391
 
392
 <p>
392
 <p>
406
 </p>
406
 </p>
407
 
407
 
408
 <div class="org-src-container">
408
 <div class="org-src-container">
409
-<pre><code class="src src-bash">freedombone-client
409
+<pre class="src src-bash">freedombone-client
410
 ssh myusername@freedombone.local -p 2222
410
 ssh myusername@freedombone.local -p 2222
411
-</code></pre>
411
+</pre>
412
 </div>
412
 </div>
413
 
413
 
414
 <p>
414
 <p>
472
 </p>
472
 </p>
473
 
473
 
474
 <div class="org-src-container">
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
 </div>
477
 </div>
478
 
478
 
479
 <div class="org-center">
479
 <div class="org-center">

+ 2
- 2
website/EN/mesh.html View File

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
-<!-- 2017-11-01 Wed 18:58 -->
6
+<!-- 2017-12-29 Fri 22:58 -->
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>
261
 <div class="org-center">
261
 <div class="org-center">
262
 
262
 
263
 <div class="figure">
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
 </p>
265
 </p>
266
 </div>
266
 </div>
267
 </div>
267
 </div>

+ 23
- 23
website/EN/mesh_images.html View File

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
-<!-- 2017-12-09 Sat 23:07 -->
6
+<!-- 2017-12-29 Fri 23:16 -->
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>
246
 
246
 
247
 <center><h1>Mesh Network: Images</h1></center>
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
 </div>
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
 <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-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
 <div class="org-center">
286
 <div class="org-center">
287
 
287
 
288
 <div class="figure">
288
 <div class="figure">
301
 wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.xz.sig
301
 wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.xz.sig
302
 gpg --verify freedombone-meshclient-i386.img.xz.sig
302
 gpg --verify freedombone-meshclient-i386.img.xz.sig
303
 sha256sum freedombone-meshclient-i386.img.xz
303
 sha256sum freedombone-meshclient-i386.img.xz
304
-3e88205461bb2061dc172ff0a1e65e5cae1013f8f7dc26c6d5cbe1c986c98555
304
+49391230de6a4f1966db091813deb8f9d93c947677f5483baa52400d7fcba7d3
305
 unxz freedombone-meshclient-i386.img.xz
305
 unxz freedombone-meshclient-i386.img.xz
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
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
 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
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
 wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz.sig
322
 wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz.sig
323
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
323
 gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
324
 sha256sum freedombone-meshclient-insecure-i386.img.xz
324
 sha256sum freedombone-meshclient-insecure-i386.img.xz
325
-09c059664daf56d210134735d37e8117bb7b755acc8b9b253cdfa42052249ccb
325
+c11783741e66df5072ffcbef8d9b04260a2298d84e33c72fefa4bb539d094810
326
 unxz freedombone-meshclient-insecure-i386.img.xz
326
 unxz freedombone-meshclient-insecure-i386.img.xz
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
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
 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
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
 </div>
331
 </div>
332
 </div>
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
 <p>
337
 <p>
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.
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
 </p>
339
 </p>
340
 </div>
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
 <div class="org-center">
344
 <div class="org-center">
345
 
345
 
346
 <div class="figure">
346
 <div class="figure">
359
 wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf.img.xz.sig
359
 wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf.img.xz.sig
360
 gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig
360
 gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig
361
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
361
 sha256sum freedombone-mesh_beaglebone-armhf.img.xz
362
-60017999340a6559d1de76f3d78d9771c11de5eeefb3d3b812747ce306251e67
362
+ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
363
 unxz freedombone-mesh_beaglebone-armhf.img.xz
363
 unxz freedombone-mesh_beaglebone-armhf.img.xz
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
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
 </pre>
365
 </pre>
377
 </div>
377
 </div>
378
 </div>
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
 <p>
383
 <p>
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.
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
 </p>
385
 </p>
394
 wget https://freedombone.net/downloads/current/freedombone.tar.gz.sig
394
 wget https://freedombone.net/downloads/current/freedombone.tar.gz.sig
395
 gpg --verify freedombone.tar.gz.sig
395
 gpg --verify freedombone.tar.gz.sig
396
 sha256sum freedombone.tar.gz
396
 sha256sum freedombone.tar.gz
397
-3d2a7f2bd7a3475832756b7bb63b96ba5fc4a4f4d7bffe86e685be9a3b41b958
397
+afbb536564140aa28c6491d45b7474ced5a0b018539ffd3e96b13b242a41792e
398
 tar -xzvf freedombone.tar.gz
398
 tar -xzvf freedombone.tar.gz
399
 <span class="org-builtin">cd</span> freedombone
399
 <span class="org-builtin">cd</span> freedombone
400
 git checkout stretch
400
 git checkout stretch