Selaa lähdekoodia

Initial attempt at improving the website

Bob Mottram 8 vuotta sitten
vanhempi
commit
09c770c402
6 muutettua tiedostoa jossa 551 lisäystä ja 619 poistoa
  1. 80
    0
      doc/EN/homeserver.org
  2. 9
    60
      doc/EN/index.org
  3. 36
    169
      doc/EN/mesh.org
  4. 385
    0
      website/EN/homeserver.html
  5. 15
    74
      website/EN/index.html
  6. 26
    316
      website/EN/mesh.html

+ 80
- 0
doc/EN/homeserver.org Näytä tiedosto

@@ -0,0 +1,80 @@
1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@robotics.uk.to
4
+#+KEYWORDS: freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber
5
+#+DESCRIPTION: Turn the Beaglebone Black into a personal communications server
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+BEGIN_CENTER
10
+[[file:images/logo.png]]
11
+#+END_CENTER
12
+
13
+#+BEGIN_CENTER
14
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
15
+#+END_CENTER
16
+
17
+The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
18
+
19
+First you will need to create an image.
20
+
21
+#+begin_src bash
22
+sudo su
23
+apt-get -y install build-essential git python-docutils mktorrent \
24
+vmdebootstrap xz-utils dosfstools btrfs-tools extlinux python-distro-info \
25
+mbr qemu-user-static binfmt-support u-boot-tools qemu
26
+git clone https://github.com/bashrc/freedombone
27
+cd freedombone
28
+git checkout stockholm
29
+make install
30
+freedombone-image -t i386 -s 7.8G --onion yes
31
+#+end_src
32
+
33
+This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.
34
+
35
+List what drives are on your system with:
36
+
37
+#+begin_src bash
38
+ls /dev/sd*
39
+#+end_src
40
+
41
+Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.
42
+
43
+You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
44
+
45
+#+begin_src bash
46
+dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
47
+#+end_src
48
+
49
+And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use as a server, power on and set the BIOS to boot from the USB stick.
50
+
51
+As the system boots for the first time the login is:
52
+
53
+#+begin_src bash
54
+username: fbone
55
+password: freedombone
56
+#+end_src
57
+
58
+You will then be shown a large new password. It's *very important* that you write this down somewhere before going further, because you'll need this to log in later.
59
+
60
+You'll be asked to set a username and a "real" name (or nickname), then the rest of the installation will be automatic. Again, it takes a while, so go and do something less boring instead.
61
+
62
+When it's installed on your local system open a terminal and run:
63
+
64
+#+begin_src bash
65
+ssh myusername@freedombone.local -p 2222
66
+#+end_src
67
+
68
+Use the password you wrote down earlier to log in.
69
+
70
+Select the *administrator control panel* with up and down cursor keys, space bar and enter key. You might need to re-enter your password. Then select *About*. You'll see a list of sites and their onion addresses.
71
+
72
+On your local system open a *Tor compatible browser* and enter your blog's onion address. If it's all working then you should see your new blog.
73
+
74
+*Congratulations! You have now become a citizen of the free internet. Use your new powers wisely.*
75
+
76
+Of course, this is just one way in which you can install the Freedombone system. If you have a single board computer (SBC) such as a BeagleBone Black or OLinuxino you can make disk images for those too. You can even create clearnet sites if you have your own domain name. ARM boards with closed proprietary boot blobs are not supported. For more details run:
77
+
78
+#+begin_src bash
79
+man freedombone-image
80
+#+end_src

+ 9
- 60
doc/EN/index.org Näytä tiedosto

@@ -10,71 +10,20 @@
10 10
 [[file:images/logo.png]]
11 11
 #+END_CENTER
12 12
 
13
-#+BEGIN_EXPORT html
14
- <center>
15
- <table style="width:50%; border:0">
16
-  <tr>
17
-    <td><center><a href="variants.html">Variants</a></center></td>
18
-    <td><center><a href="installation.html">Install</a></center></td>
19
-    <td><center><a href="usage.html">Use</a></center></td>
20
-    <td><center><a href="backups.html">Backups</a></center></td>
21
-    <td><center><a href="mirrors.html">Mirrors</a></center></td>
22
-  </tr>
23
-  <tr>
24
-    <td><center><a href="code.html">Code</a></center></td>
25
-    <td><center><a href="controlpanel.html">Control Panel</a></center></td>
26
-    <td><center><a href="related.html">Related</a></center></td>
27
-    <td><center><a href="faq.html">F.A.Q.</a></center></td>
28
-    <td><center><a href="support.html">Contact/Support</a></center></td>
29
-  </tr>
30
-</table>
31
-</center>
32
-#+END_EXPORT
33
-
34
-With the right technology the internet can be a space for free expression, exploration, cooperation, learning and fun. A place to connect with others are share experiences. It doesn't have to be a gloomy surveillance prison owned and run by a diabolical synthesis of money-grabbing megacorporations and prurient government spooks brandishing "bulk/general warrants". Freedombone is designed to help you surmount the contemporary digital privacy conundrums and to increase your online autonomy. It's a self-hosted home server configuration which can be installed onto any computer capable of running [[https://www.debian.org/][Debian]], so if you have an old laptop or netbook which you can leave turned on then you can use Freedombone to provide your own internet services, such as blogging, wiki, email, chat and social networking and have independence from the well known internet companies.
35
-
36
-#+BEGIN_EXPORT html
37
- <center>
38
- <b>Four Scenarios</b>
39
- <table style="width:95%; border:0">
40
-  <tr>
41
-    <td><center><h6>Home server</h6>Plugged into your home wifi router. Add a few friends and family as users</center></td>
42
-    <td><center><h6>Home server + Hotspot</h6>Also provides a wifi hotspot to extend your home network</center></td>
43
-    <td><center><h6>Server in your pocket</h6>Roaming wireless server with services accessible via onion addresses</center></td>
44
-    <td><center><h6>Mesh node</h6>Dynamic networks which don't depend on the conventional internet. Distributed, scalable and fully encrypted</center></td>
45
-  </tr>
46
-  <tr>
47
-  </tr>
48
-</table>
49
-</center>
50
-#+END_EXPORT
51
-
52
-This is personal or family scale computing, which can then federate to global proportions. We need community controlled information systems and to achieve that they must be inexpensive and simple to install and maintain. This is the opposite of the current dominant paradigm of [[https://www.youtube.com/watch?v=XZmGGAbHqa0][titanic server warehouses]] owned by a tiny number of individuals and it's what is sometimes refered to as [[https://mediagoblin.org/news/userops.html]["userops"]] - i.e. a user being able to do what traditionally only a professional systems administrator would be able to.
53
-
54
-With a system installed in your home you also have greater legal protection against unwarranted or "bulk warrant" searches. In general as soon as you put your information onto systems which you don't own then you no longer have the same property rights over it, together with "/no reasonable expectation of privacy/" otherwise known as the third party doctrine. We all know that's a nonsense, and so maybe we should do something about it.
55
-
56
-#+BEGIN_QUOTE
57
-"With the increasing move of our computing to cloud infrastructures, we give up the control of our computing to the managers of those infrastructures. Our terminals (laptops, desktops) might now be running entirely on Free Software, but this is increasingly irrelevant given that most of what actually matters gets executed on a remote closed system that we don’t control. The Free Software community needs to work to help users keep the control of all their computing, by developing suitable alternatives and facilitating their deployment." -- Lucas Nussbaum
58
-#+END_QUOTE
59
-
60
-Today everyone is concerned about privacy on the internet. Wanting privacy doesn't necessarily mean you have "something to hide". It just means having the ability to choose /what information to share, with whom and under what conditions/ and therefore being able to shape your own life story. The loss of ability to choose via the "involuntary sharing" which many people experience when using communications systems built by the well known internet companies, means that you're no longer really running your own affairs and that others may begin to exert an improper amount of influence over you. Mass surveillance is perhaps the ultimate in involuntary sharing and it's only through the use of freedom respecting software together with a solid determination to overcome state and corporate abuses of technology that we can hope to get to the kind of internet in which respect for human dignity is built in as a core feature.
61
-
62 13
 #+BEGIN_CENTER
63
-[[file:images/nocloud.png]]
14
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
64 15
 #+END_CENTER
65 16
 
66
-Another problem is the precariousness of the terms of service. Except in rare cases such terms are not easy to read, so many people end up clicking through terms which if explained more clearly they would never agree to. Over the past decade many internet users have had the unpleasant experience of having their blogs, videos or other web content inexplicably removed, typically due to some ill-defined terms of service violation or a false accusation of copyright infringement. There have been valiant attempts to improve the readability of terms of service documents, using icons or clearer language, and to generate a sort of marketplace in which people would choose what web systems they use based on the terms documents - to make the privacy/autonomy bargaining more explicit. These efforts were well-intentioned, but have conclusively failed. Even in the best case, that approach doesn't take into account the coercive network effects or large web systems.
17
+So you want to run your own internet services? Email, chat, VoIP, web sites, file synchronisation, wikis, blogs, social networks, backups. Freedombone enables you to do all of that in a self-hosted way, where you keep control of your data and it resides in your own home.
67 18
 
68
-You can bypass all of these dilemmas and take back ownership of your internet content with Freedombone.  Originally based upon the Beaglebone Black, Freedombone is a small and cheap home server which enables you to use email, have your own web site and do social networking without any built-in spying and without having to agree to any legal terms of service other than those of your ISP.  It provides independence and security in an era where those things are in short supply.
19
+Want to make a community mesh network which doesn't depend upon the internet? You can do that too.
69 20
 
70
-#+BEGIN_QUOTE
71
-"The deepest problem is that the system architecture that has evolved in recent years holds masses of information on many people with no intelligence value, but with vast potential for political abuse." -- Ross Anderson
72
-#+END_QUOTE
21
+But how?
73 22
 
74
-Freedombone is an example of the internet as it was supposed to be: a network of peers, rather than a small number of gigantic server farms with everyone connecting to them. Even if they're well run, centralised server farms become a conspicuous target for /all kinds of nefariousness/ and in any future wars they're bound to be amongst the first facilities to receive the "/shock and awe/" treatment. Also consider just what is being "farmed". If a robust information society is desirable then excessive centralisation of control over information should be avoided.
23
+ * [[./homeserver.html][To make a home server]]
24
+ * [[./mesh.html][To make a mesh network]]
75 25
 
76
-An emphasis of the Freedombone project is the protection of private communications from indiscriminate mass surveillance, otherwise known as "/bulk intercept/" or "/warrantless wiretapping/". With only a few exceptions data entering and leaving the system is encrypted using settings recommended by [[https://bettercrypto.org][bettercrypto.org]] . Stored emails are encrypted such that only someone knowing your GPG password can read them and a GPG key is created automatically if you don't already have one. The system is firewalled with only the necessary ports being opened. Exclusively [[https://en.wikipedia.org/wiki/Free_software][free software]] is used so that all of it can potentially be security audited and proprietary repositories are disabled by default. There are still numerous security problems with the internet in general and software always contains bugs, but a best attempt has been made to ensure that the Freedombone is at least more secure than average.
26
+After installation it's possible that you might want some advice on how to run your server and set up apps to work nicely with it.
77 27
 
78
-#+BEGIN_CENTER
79
-This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
80
-#+END_CENTER
28
+ * [[./usage.html][General usage]]
29
+ * [[./faq.html][Frequently Asked Questions]]

+ 36
- 169
doc/EN/mesh.org Näytä tiedosto

@@ -10,193 +10,60 @@
10 10
 [[file:images/logo.png]]
11 11
 #+END_CENTER
12 12
 
13
-#+BEGIN_EXPORT html
14
-<center>
15
-<h1>Mesh Network</h1>
16
-</center>
17
-#+END_EXPORT
18
-
19
-| [[What is a mesh network?]] |
20
-| [[The Freedombone Mesh]]    |
21
-| [[Installation]]            |
22
-| [[Wifi adaptors]]           |
23
-| [[Using the mesh]]          |
24
-| [[Further reading]]         |
25
-
26
-* What is a mesh network?
27
-The internet as it currently exists is mostly organised according to a client/server model. Servers run the web services and store the data and clients are the laptops, desktops and other devices accessing the servers. In a mesh network there isn't any clear division between clients and servers. The computers on a mesh network are known as "peers" and they can perform the functions of both clients and servers. Commonly this is also known as a "peer to peer" network.
28
-
29
-The client/server and mesh network models have advantages and disadvantages. If the server in a client/server system fails then you can have catastrophic service outages which affect many users. If a peer in a mesh network fails then the other peers may be mostly unaffected and communications can continue. The disadvantage of mesh networks is that each peer relays data for other peers and so the bandwidth usage by each peer may be higher than for a client in a client/server system. However, with modern hardware that's not much of an issue.
30
-
31
-Mesh networks are useful for building local and highly resillient communications infrastructure which can be put together rapidly, in situations where the ordinary internet is either unavailable or untrustworthy.
32
-
33
-Example use cases would be:
34
-
35
- * Conferences / Exhibitions
36
- * Local community networks, not run by telcos or ISPs
37
- * Emergency services / Disaster relief
38
- * Camp sites
39
- * War zones
40
- * Scientific expeditions to remote areas
41
- * Onboard smaller ships without satellite internet, captain/crew communications
42
- * Underground (mines or caves)
43
- * Protests / Occupations of buildings
44
- * Eventually in space for manned missions to other planets, moons or asteroids
45
-
46
-* The Freedombone Mesh
47
-The Freedombone mesh is offline - in the sense of not being part of the larger internet - and consists of a set of computers with the software installed communicating wirelessly using ordinary wifi. Peers can enter or leave the network and it will adjust automatically. All communications between peers is end-to-end encrypted, so although it's easy to join the network it's not easy to passively evesdrop.
48
-* Installation
49
-** Two types of system
50
-Installation is split into two categories, /routers/ and /user devices/.
51
-
52
-A router is a computer which is dedicated to moving network traffic and building out the mesh infrastructure. It's not primarily intended to have a user interface. Hardware such as the Beaglebone Black is ideal for this, because it's small, inexpensive and doesn't consume much electrical power and so can be fitted in any location where an electricity supply is available.
53
-
54
-Small computers acting as mesh routers can also be battery operated or solar powered so that the network need not be statically sited. They could be included in a backpack for camping, fitted within moving vehicles, strapped to protest placards or attached to [[https://www.youtube.com/watch?v=Wwsy9MThwns][large tethered helium balloons]] (like weather balloons) to help provide a local and transient communications system.
55
-
56
-/User devices/ are the computers with which you would typically access the internet - laptops, desktop machines, netbooks or any other device which can run a Debian-based distro (eg. Ubuntu) with a working wifi connection.
57
-** Installing on routers
58
-Whatever system you're going to use as a mesh router should have a new Debian Jessie install on it. It's advisable that this be a new install so that there is no existing software on the system which could confuse the mesh install process.
59
-
60
-Some recommended hardware:
61
-
62
- * Beaglebone Black
63
- * 5V power supply
64
- * Ethernet cable (for installation of the software)
65
- * 8GB microSD card, or larger
66
- * Wireless N USB Adapter TPE-N150USB
13
+#+BEGIN_CENTER
14
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
15
+#+END_CENTER
67 16
 
68
-If you are using the Beaglebone Black then you'll need to install the Debian image to the microSD card. You can find details of how to do that [[./installation.html][here]].
17
+Mesh networks are useful as a quick way to make a fully decentralised communications system which is not connected to the internet. Think festivals, hacker conferences, onboard ships at sea, disaster/war zones, small business internal office communications, protests, remote areas of the world, scientific expeditions and off-world space colonies. All the cool stuff. The down side is that you can't access any internet content. The upside is that you can securely communicate with anyone on the local mesh. No ISPs. No payments or subscriptions beyond the cost of obtaining the hardware. Systems need to be within wifi range of each other for the mesh to be created. It can be an ultra-convenient way to do purely local communications.
69 18
 
70
-Connect your system to your internet router with an ethernet cable, then ssh into it and type:
19
+First you will need to create an image.
71 20
 
72
-#+BEGIN_SRC bash
73
-su
74
-apt-get update
75
-apt-get install git build-essential dialog
21
+#+begin_src bash
22
+sudo su
23
+apt-get -y install build-essential git python-docutils mktorrent \
24
+vmdebootstrap xz-utils dosfstools btrfs-tools extlinux python-distro-info \
25
+mbr qemu-user-static binfmt-support u-boot-tools qemu
76 26
 git clone https://github.com/bashrc/freedombone
77 27
 cd freedombone
28
+git checkout stockholm
78 29
 make install
79
-#+END_SRC
80
-
81
-At this point if you are using a system or dongle with an Atheros AR9271 wifi chipset then you may want to install some pre-compiled firmware (you can compile it from source, but it takes a long time - especially on the Beaglebone Black). If you need to do that then see the wifi adaptor notes below.
82
-
83
-Then to begin the install:
84
-
85
-#+BEGIN_SRC bash
86
-freedombone menuconfig
87
-#+END_SRC
88
-
89
-Select the "/mesh (router)/" install variant, give an ESSID or just hit enter for the default. If discression is important then use an ESSID similar to those already in the area. The ESSID must be the same on every mesh peer. Assign this mesh peer a name. In order to avoid confusions it's important that the name should be unique on the network and contain no spaces. So maybe a word followed by some numbers, or the name of the place where the router will be installed.
90
-
91
-If you're installing on a Beaglebone Black then after a while the system will reboot and you will need to ssh in again and run:
92
-
93
-#+BEGIN_SRC bash
94
-cd freedombone
95
-freedombone -c freedombone.cfg
96
-#+END_SRC
97
-
98
-The reboot is needed in order to enable zram and the hardware random number generator.
99
-** Installing on user devices
100
-Typically on a laptop with a Debian-based distro installed, open a terminal and type:
101
-
102
-#+BEGIN_SRC bash
103
-sudo apt-get update
104
-sudo apt-get install git build-essential dialog
105
-git clone https://github.com/bashrc/freedombone
106
-cd freedombone
107
-sudo make install
108
-freedombone menuconfig
109
-#+END_SRC
110
-
111
-Select the "/mesh (user device)/" variant and set the same ESSID as you did for the routers, or just hit enter for the default.
112
-
113
-An important point is that on older Debian-based systems, such as Ubuntu 14.04 or Trisquel 7, you may need to install a more recent version of /batctl/. An example is as follows.
114
-
115
-#+BEGIN_SRC bash
116
-sudo apt-get remove --purge batctl
117
-wget http://mirrors.kernel.org/ubuntu/pool/universe/b/batctl/batctl_2014.1.0-2_amd64.deb
118
-sudo dpkg -i batctl_2014.1.0-2_amd64.deb
119
-#+END_SRC
120
-* Wifi adaptors
121
-There are a small number of wifi adaptors which are compatible with a fully free software stack.
122
-** Atheros AR9271
123
-To install the firmware for this:
124
-
125
-#+BEGIN_SRC bash
126
-cd freedombone/drivers
127
-sha256sum ath9k_htc_driver_bbb.tar.gz
128
-7eb9324681f03c7630ed01e490ea447dfbd96c9b5389e45b64e4646d1be16ff1
129
-tar -xvzf ath9k_htc_driver_bbb.tar.gz
130
-mv *.fw /lib/firmware
131
-cd ..
132
-#+END_SRC
133
-* Using the mesh
134
-The following sections only apply to /client devices/. Mesh /routers/ are only for routing network traffic and operating [[https://en.wikipedia.org/wiki/BitTorrent_tracker][trackers]] and [[https://en.wikipedia.org/wiki/Distributed_hash_table][distributed hash tables]] for bootstrapping purposes.
135
-
136
-** Switching from internet to mesh mode
137
-To join the mesh network open a terminal and type:
138
-
139
-#+BEGIN_SRC bash
140
-meshweb
141
-#+END_SRC
142
-
143
-If you want to have your system as a permanent mesh peer then you could add that command to your startup applications so that it activates whenever the computer starts up.
144
-
145
-A web page should appear in your browser, which then allows you to access communication services on the mesh. These pages should update automatically, so that if peers enter or leave the network the lists will change accordingly.
146
-
147
-If for any reason things don't seem to be updating you can force an update by issuing the command:
148
-
149
-#+BEGIN_SRC bash
150
-zeronetavahi
151
-#+END_SRC
152
-** Chat
153
-If you have a Tox client installed on your system then you can use that to communicate with other mesh peers. A limitation is that if peers change you may need to quit the application and restart it in order to receive the updated list of DHTnodes. The [[https://github.com/Tox/toxic][Toxic]] client is installed by default, but you may also want to install [[https://github.com/tux3/qTox][qTox]] for a more conventional-looking user experience.
30
+freedombone-image -t i386 -v meshclient
31
+#+end_src
154 32
 
155
-You can obtain Tox IDs for users on the network via the initial web page.
33
+If you don't have Atheros or free software compatible wifi adapter then you can include proprietary wifi drivers which will work with most laptops. This is *NOT RECOMMENDED* because proprietary drivers are unsupportable and may contain either malware or be exploitable in a way which can't be fixed. However, if you're in an emergency and don't have any Atheros or free software wifi USB dongles then you can use the following command to make the image:
156 34
 
157
-To launch the [[https://github.com/Tox/toxic][Toxic client]] in a terminal type:
35
+#+begin_src bash
36
+freedombone-image -t i386 -v meshclient --insecure yes
37
+#+end_src
158 38
 
159
-#+BEGIN_SRC bash
160
-toxic
161
-#+END_SRC
39
+This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.
162 40
 
163
-The first time you will be asked whether you wish to encrypt the data file used for your settings. Select "no" for this, otherwise the system will not be able to obtain your public key and broadcast it to other peers in the network. Even if you select "yes" the system will still be usable, but it will not be so easy for other peers on the network to find you unless you have previously exchanged your Tox ID via some out-of-band method.
41
+List what drives are on your system with:
164 42
 
165
-Then to add a new friend:
43
+#+begin_src bash
44
+ls /dev/sd*
45
+#+end_src
166 46
 
167
-#+BEGIN_SRC bash
168
-/nick mynickname
169
-/add <friend Tox ID>
170
-#+END_SRC
47
+Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.
171 48
 
172
-Your friend will need to approve the request, and then you can chat via text or voice using /CTRL-o/ and /CTRL-p/ to switch between screens and cursor keys plus Enter to select users.
49
+You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
173 50
 
174
-Another thing worth knowing is that if you were already using a Tox client before running the /meshweb/ command then it's a good idea to close and reopen it, so that the list of bootstrap nodes is updated. The same also applies when exiting the mesh and returning to the internet.
51
+#+begin_src bash
52
+dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
53
+#+end_src
175 54
 
176
-A note for the security-conscious is that broadcasting Tox IDs via the network (using Avahi) is convenient but not highly secure. An adversary could maybe join the network and create decoy peers to try to disrupt the communications and have messages going to the wrong places. For the best security exchange Tox IDs in advance by some method other than looking them up from the initial mesh web page.
177
-** Blogging
178
-The Freedombone mesh uses a fully decentralized blogging system called [[https://github.com/HelloZeroNet/ZeroBlog][ZeroBlog]]. It behaves rather like other peer-to-peer file sharing systems in that if you are reading the blog of another user you are also simultaneously seeding it to other peers (acting as both a client and a server). This allows the system to scale well, while also being robust to any peer failing or leaving the network.
55
+And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use on the mesh, power on and set the BIOS to boot from the USB stick.
179 56
 
180
-All blogs on the mesh are public, so any user joining the mesh can read any other blog. Network traffic is encrypted between peers, so passive snooping will be hard, and also the integrity of data is checked via certificates so that you can be reasonably confident that nefarious content has not been added or removed from the data stream while in transit through the network.
57
+On first boot you'll be asked to set a username, and then you can open the chat client and select the *users* icon to show the Tox IDs for other users on the mesh. When folks join they will be announced.
181 58
 
182
-This type of content creation and delivery provides a good template for what the conventional internet should ultimately be like if it is to be robust, trustworthy and resistant to censorship or damage.
59
+Rinse, repeat, for any number of laptops that you want to get onto the mesh or to build out coverage within an area. There are no servers. Just peer-to-peer communications routed through the network which are end-to-end secure after a friend request is accepted. By default the chat client doesn't log anything.
183 60
 
184
-To add a new blog entry click the /new post/ button, edit the title and content (clicking /save/ at the bottom of the screen after each). Then when you are done click on the /publish/ button at the bottom of the screen. And that's all there is to it.
185
-** Other services
186
-It is hoped that a decentralized forum will be added, but this is not yet complete. In the mean time a substitute is to use the Tox group chat feature.
187
-** Turning off the mesh
188
-If you wish to return to the internet then open a terminal and type:
61
+No logs, no masters.
189 62
 
190
-#+BEGIN_SRC bash
191
-sudo batman stop
192
-#+END_SRC
63
+You can also use single board computers (SBCs) such as the BeagleBone Black to make mesh routers which can be bolted to walls or the sides of buildings and consume minimal electrical power, so could be solar or battery powered for short term events such as festivals. To do that use the following command to make the image:
193 64
 
194
-After a few seconds your usual internet wifi connection should be re-established.
195
-* Further reading
196
-For much more extensive details about deploying wireless networks there is an excellent book called [[https://wndw.net][Wireless Networking in the Developing World]] which is worth reading. It's not necessarily exclusively about mesh networks, but may be useful in terms of advice about antennas, reflections, extending wifi range and so on.
65
+#+begin_src bash
66
+freedombone-image -t beaglebone -v mesh
67
+#+end_src
197 68
 
198
-#+BEGIN_EXPORT html
199
-<center>
200
-Return to the <a href="index.html">home page</a>
201
-</center>
202
-#+END_EXPORT
69
+The resulting image can be copied to a microSD card, inserted into a Beaglebone Black and booted. Don't forget to plug in an Atheros USB wifi dongle.

+ 385
- 0
website/EN/homeserver.html Näytä tiedosto

@@ -0,0 +1,385 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
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">
5
+<head>
6
+<!-- 2016-08-09 Tue 16:19 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title></title>
10
+<meta name="generator" content="Org-mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
13
+ />
14
+<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
15
+<style type="text/css">
16
+ <!--/*--><![CDATA[/*><!--*/
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
23
+  .todo   { font-family: monospace; color: red; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
26
+  .tag    { background-color: #eee; font-family: monospace;
27
+            padding: 2px; font-size: 80%; font-weight: normal; }
28
+  .timestamp { color: #bebebe; }
29
+  .timestamp-kwd { color: #5f9ea0; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
33
+  .underline { text-decoration: underline; }
34
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35
+  p.verse { margin-left: 3%; }
36
+  pre {
37
+    border: 1px solid #ccc;
38
+    box-shadow: 3px 3px 3px #eee;
39
+    padding: 8pt;
40
+    font-family: monospace;
41
+    overflow: auto;
42
+    margin: 1.2em;
43
+  }
44
+  pre.src {
45
+    position: relative;
46
+    overflow: visible;
47
+    padding-top: 1.2em;
48
+  }
49
+  pre.src:before {
50
+    display: none;
51
+    position: absolute;
52
+    background-color: white;
53
+    top: -10px;
54
+    right: 10px;
55
+    padding: 3px;
56
+    border: 1px solid black;
57
+  }
58
+  pre.src:hover:before { display: inline;}
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
70
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-java:before { content: 'Java'; }
75
+  pre.src-js:before { content: 'Javascript'; }
76
+  pre.src-latex:before { content: 'LaTeX'; }
77
+  pre.src-ledger:before { content: 'Ledger'; }
78
+  pre.src-lisp:before { content: 'Lisp'; }
79
+  pre.src-lilypond:before { content: 'Lilypond'; }
80
+  pre.src-matlab:before { content: 'MATLAB'; }
81
+  pre.src-mscgen:before { content: 'Mscgen'; }
82
+  pre.src-ocaml:before { content: 'Objective Caml'; }
83
+  pre.src-octave:before { content: 'Octave'; }
84
+  pre.src-org:before { content: 'Org mode'; }
85
+  pre.src-oz:before { content: 'OZ'; }
86
+  pre.src-plantuml:before { content: 'Plantuml'; }
87
+  pre.src-processing:before { content: 'Processing.js'; }
88
+  pre.src-python:before { content: 'Python'; }
89
+  pre.src-R:before { content: 'R'; }
90
+  pre.src-ruby:before { content: 'Ruby'; }
91
+  pre.src-sass:before { content: 'Sass'; }
92
+  pre.src-scheme:before { content: 'Scheme'; }
93
+  pre.src-screen:before { content: 'Gnu Screen'; }
94
+  pre.src-sed:before { content: 'Sed'; }
95
+  pre.src-sh:before { content: 'shell'; }
96
+  pre.src-sql:before { content: 'SQL'; }
97
+  pre.src-sqlite:before { content: 'SQLite'; }
98
+  /* additional languages in org.el's org-babel-load-languages alist */
99
+  pre.src-forth:before { content: 'Forth'; }
100
+  pre.src-io:before { content: 'IO'; }
101
+  pre.src-J:before { content: 'J'; }
102
+  pre.src-makefile:before { content: 'Makefile'; }
103
+  pre.src-maxima:before { content: 'Maxima'; }
104
+  pre.src-perl:before { content: 'Perl'; }
105
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
106
+  pre.src-scala:before { content: 'Scala'; }
107
+  pre.src-shell:before { content: 'Shell Script'; }
108
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
109
+  /* additional language identifiers per "defun org-babel-execute"
110
+       in ob-*.el */
111
+  pre.src-cpp:before  { content: 'C++'; }
112
+  pre.src-abc:before  { content: 'ABC'; }
113
+  pre.src-coq:before  { content: 'Coq'; }
114
+  pre.src-groovy:before  { content: 'Groovy'; }
115
+  /* additional language identifiers from org-babel-shell-names in
116
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
117
+     the execution function name together. */
118
+  pre.src-bash:before  { content: 'bash'; }
119
+  pre.src-csh:before  { content: 'csh'; }
120
+  pre.src-ash:before  { content: 'ash'; }
121
+  pre.src-dash:before  { content: 'dash'; }
122
+  pre.src-ksh:before  { content: 'ksh'; }
123
+  pre.src-mksh:before  { content: 'mksh'; }
124
+  pre.src-posh:before  { content: 'posh'; }
125
+  /* Additional Emacs modes also supported by the LaTeX listings package */
126
+  pre.src-ada:before { content: 'Ada'; }
127
+  pre.src-asm:before { content: 'Assembler'; }
128
+  pre.src-caml:before { content: 'Caml'; }
129
+  pre.src-delphi:before { content: 'Delphi'; }
130
+  pre.src-html:before { content: 'HTML'; }
131
+  pre.src-idl:before { content: 'IDL'; }
132
+  pre.src-mercury:before { content: 'Mercury'; }
133
+  pre.src-metapost:before { content: 'MetaPost'; }
134
+  pre.src-modula-2:before { content: 'Modula-2'; }
135
+  pre.src-pascal:before { content: 'Pascal'; }
136
+  pre.src-ps:before { content: 'PostScript'; }
137
+  pre.src-prolog:before { content: 'Prolog'; }
138
+  pre.src-simula:before { content: 'Simula'; }
139
+  pre.src-tcl:before { content: 'tcl'; }
140
+  pre.src-tex:before { content: 'TeX'; }
141
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
142
+  pre.src-verilog:before { content: 'Verilog'; }
143
+  pre.src-vhdl:before { content: 'VHDL'; }
144
+  pre.src-xml:before { content: 'XML'; }
145
+  pre.src-nxml:before { content: 'XML'; }
146
+  /* add a generic configuration mode; LaTeX export needs an additional
147
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
148
+  pre.src-conf:before { content: 'Configuration File'; }
149
+
150
+  table { border-collapse:collapse; }
151
+  caption.t-above { caption-side: top; }
152
+  caption.t-bottom { caption-side: bottom; }
153
+  td, th { vertical-align:top;  }
154
+  th.org-right  { text-align: center;  }
155
+  th.org-left   { text-align: center;   }
156
+  th.org-center { text-align: center; }
157
+  td.org-right  { text-align: right;  }
158
+  td.org-left   { text-align: left;   }
159
+  td.org-center { text-align: center; }
160
+  dt { font-weight: bold; }
161
+  .footpara { display: inline; }
162
+  .footdef  { margin-bottom: 1em; }
163
+  .figure { padding: 1em; }
164
+  .figure p { text-align: center; }
165
+  .inlinetask {
166
+    padding: 10px;
167
+    border: 2px solid gray;
168
+    margin: 10px;
169
+    background: #ffffcc;
170
+  }
171
+  #org-div-home-and-up
172
+   { text-align: right; font-size: 70%; white-space: nowrap; }
173
+  textarea { overflow-x: auto; }
174
+  .linenr { font-size: smaller }
175
+  .code-highlighted { background-color: #ffff00; }
176
+  .org-info-js_info-navigation { border-style: none; }
177
+  #org-info-js_console-label
178
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
179
+  .org-info-js_search-highlight
180
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
181
+  .org-svg { width: 90%; }
182
+  /*]]>*/-->
183
+</style>
184
+<link rel="stylesheet" type="text/css" href="freedombone.css" />
185
+<script type="text/javascript">
186
+/*
187
+@licstart  The following is the entire license notice for the
188
+JavaScript code in this tag.
189
+
190
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
191
+
192
+The JavaScript code in this tag is free software: you can
193
+redistribute it and/or modify it under the terms of the GNU
194
+General Public License (GNU GPL) as published by the Free Software
195
+Foundation, either version 3 of the License, or (at your option)
196
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
197
+without even the implied warranty of MERCHANTABILITY or FITNESS
198
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
199
+
200
+As additional permission under GNU GPL version 3 section 7, you
201
+may distribute non-source (e.g., minimized or compacted) forms of
202
+that code without the copy of the GNU GPL normally required by
203
+section 4, provided you include this license notice and a URL
204
+through which recipients can access the Corresponding Source.
205
+
206
+
207
+@licend  The above is the entire license notice
208
+for the JavaScript code in this tag.
209
+*/
210
+<!--/*--><![CDATA[/*><!--*/
211
+ function CodeHighlightOn(elem, id)
212
+ {
213
+   var target = document.getElementById(id);
214
+   if(null != target) {
215
+     elem.cacheClassElem = elem.className;
216
+     elem.cacheClassTarget = target.className;
217
+     target.className = "code-highlighted";
218
+     elem.className   = "code-highlighted";
219
+   }
220
+ }
221
+ function CodeHighlightOff(elem, id)
222
+ {
223
+   var target = document.getElementById(id);
224
+   if(elem.cacheClassElem)
225
+     elem.className = elem.cacheClassElem;
226
+   if(elem.cacheClassTarget)
227
+     target.className = elem.cacheClassTarget;
228
+ }
229
+/*]]>*///-->
230
+</script>
231
+</head>
232
+<body>
233
+<div id="preamble" class="status">
234
+<a name="top" id="top"></a>
235
+</div>
236
+<div id="content">
237
+<div class="org-center">
238
+
239
+<div class="figure">
240
+<p><img src="images/logo.png" alt="logo.png" />
241
+</p>
242
+</div>
243
+</div>
244
+
245
+<div class="org-center">
246
+<p>
247
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
248
+</p>
249
+</div>
250
+
251
+<p>
252
+The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
253
+</p>
254
+
255
+<p>
256
+First you will need to create an image.
257
+</p>
258
+
259
+<div class="org-src-container">
260
+
261
+<pre class="src src-bash">sudo su
262
+apt-get -y install build-essential git python-docutils mktorrent <span class="org-sh-escaped-newline">\</span>
263
+vmdebootstrap xz-utils dosfstools btrfs-tools extlinux python-distro-info <span class="org-sh-escaped-newline">\</span>
264
+mbr qemu-user-static binfmt-support u-boot-tools qemu
265
+git clone https://github.com/bashrc/freedombone
266
+<span class="org-builtin">cd</span> freedombone
267
+git checkout stockholm
268
+make install
269
+freedombone-image -t i386 -s 7.8G --onion yes
270
+</pre>
271
+</div>
272
+
273
+<p>
274
+This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.
275
+</p>
276
+
277
+<p>
278
+List what drives are on your system with:
279
+</p>
280
+
281
+<div class="org-src-container">
282
+
283
+<pre class="src src-bash">ls /dev/sd*
284
+</pre>
285
+</div>
286
+
287
+<p>
288
+Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.
289
+</p>
290
+
291
+<p>
292
+You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the identifier of the USB thumb drive. Don't include any numbers (so for example use <b>sdc</b> instead of <b>sdc1</b>).
293
+</p>
294
+
295
+<div class="org-src-container">
296
+
297
+<pre class="src src-bash">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
298
+</pre>
299
+</div>
300
+
301
+<p>
302
+And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use as a server, power on and set the BIOS to boot from the USB stick.
303
+</p>
304
+
305
+<p>
306
+As the system boots for the first time the login is:
307
+</p>
308
+
309
+<div class="org-src-container">
310
+
311
+<pre class="src src-bash">username: fbone
312
+password: freedombone
313
+</pre>
314
+</div>
315
+
316
+<p>
317
+You will then be shown a large new password. It's <b>very important</b> that you write this down somewhere before going further, because you'll need this to log in later.
318
+</p>
319
+
320
+<p>
321
+You'll be asked to set a username and a "real" name (or nickname), then the rest of the installation will be automatic. Again, it takes a while, so go and do something less boring instead.
322
+</p>
323
+
324
+<p>
325
+When it's installed on your local system open a terminal and run:
326
+</p>
327
+
328
+<div class="org-src-container">
329
+
330
+<pre class="src src-bash">ssh myusername@freedombone.local -p 2222
331
+</pre>
332
+</div>
333
+
334
+<p>
335
+Use the password you wrote down earlier to log in.
336
+</p>
337
+
338
+<p>
339
+Select the <b>administrator control panel</b> with up and down cursor keys, space bar and enter key. You might need to re-enter your password. Then select <b>About</b>. You'll see a list of sites and their onion addresses.
340
+</p>
341
+
342
+<p>
343
+On your local system open a <b>Tor compatible browser</b> and enter your blog's onion address. If it's all working then you should see your new blog.
344
+</p>
345
+
346
+<p>
347
+<b>Congratulations! You have now become a citizen of the free internet. Use your new powers wisely.</b>
348
+</p>
349
+
350
+<p>
351
+Of course, this is just one way in which you can install the Freedombone system. If you have a single board computer (SBC) such as a BeagleBone Black or OLinuxino you can make disk images for those too. You can even create clearnet sites if you have your own domain name. ARM boards with closed proprietary boot blobs are not supported. For more details run:
352
+</p>
353
+
354
+<div class="org-src-container">
355
+
356
+<pre class="src src-bash">man freedombone-image
357
+</pre>
358
+</div>
359
+</div>
360
+<div id="postamble" class="status">
361
+
362
+<style type="text/css">
363
+.back-to-top {
364
+    position: fixed;
365
+    bottom: 2em;
366
+    right: 0px;
367
+    text-decoration: none;
368
+    color: #000000;
369
+    background-color: rgba(235, 235, 235, 0.80);
370
+    font-size: 12px;
371
+    padding: 1em;
372
+    display: none;
373
+}
374
+
375
+.back-to-top:hover {
376
+    background-color: rgba(135, 135, 135, 0.50);
377
+}
378
+</style>
379
+
380
+<div class="back-to-top">
381
+<a href="#top">Back to top</a> | <a href="mailto:bob@robotics.uk.to">E-mail me</a>
382
+</div>
383
+</div>
384
+</body>
385
+</html>

+ 15
- 74
website/EN/index.html Näytä tiedosto

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2016-08-08 Mon 17:50 -->
6
+<!-- 2016-08-09 Tue 16:18 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title></title>
@@ -242,96 +242,37 @@ for the JavaScript code in this tag.
242 242
 </div>
243 243
 </div>
244 244
 
245
- <center>
246
- <table style="width:50%; border:0">
247
-  <tr>
248
-    <td><center><a href="variants.html">Variants</a></center></td>
249
-    <td><center><a href="installation.html">Install</a></center></td>
250
-    <td><center><a href="usage.html">Use</a></center></td>
251
-    <td><center><a href="backups.html">Backups</a></center></td>
252
-    <td><center><a href="mirrors.html">Mirrors</a></center></td>
253
-  </tr>
254
-  <tr>
255
-    <td><center><a href="code.html">Code</a></center></td>
256
-    <td><center><a href="controlpanel.html">Control Panel</a></center></td>
257
-    <td><center><a href="related.html">Related</a></center></td>
258
-    <td><center><a href="faq.html">F.A.Q.</a></center></td>
259
-    <td><center><a href="support.html">Contact/Support</a></center></td>
260
-  </tr>
261
-</table>
262
-</center>
263
-
264
-<p>
265
-With the right technology the internet can be a space for free expression, exploration, cooperation, learning and fun. A place to connect with others are share experiences. It doesn't have to be a gloomy surveillance prison owned and run by a diabolical synthesis of money-grabbing megacorporations and prurient government spooks brandishing "bulk/general warrants". Freedombone is designed to help you surmount the contemporary digital privacy conundrums and to increase your online autonomy. It's a self-hosted home server configuration which can be installed onto any computer capable of running <a href="https://www.debian.org/">Debian</a>, so if you have an old laptop or netbook which you can leave turned on then you can use Freedombone to provide your own internet services, such as blogging, wiki, email, chat and social networking and have independence from the well known internet companies.
266
-</p>
267
-
268
- <center>
269
- <b>Four Scenarios</b>
270
- <table style="width:95%; border:0">
271
-  <tr>
272
-    <td><center><h6>Home server</h6>Plugged into your home wifi router. Add a few friends and family as users</center></td>
273
-    <td><center><h6>Home server + Hotspot</h6>Also provides a wifi hotspot to extend your home network</center></td>
274
-    <td><center><h6>Server in your pocket</h6>Roaming wireless server with services accessible via onion addresses</center></td>
275
-    <td><center><h6>Mesh node</h6>Dynamic networks which don't depend on the conventional internet. Distributed, scalable and fully encrypted</center></td>
276
-  </tr>
277
-  <tr>
278
-  </tr>
279
-</table>
280
-</center>
281
-
282
-<p>
283
-This is personal or family scale computing, which can then federate to global proportions. We need community controlled information systems and to achieve that they must be inexpensive and simple to install and maintain. This is the opposite of the current dominant paradigm of <a href="https://www.youtube.com/watch?v=XZmGGAbHqa0">titanic server warehouses</a> owned by a tiny number of individuals and it's what is sometimes refered to as <a href="https://mediagoblin.org/news/userops.html">"userops"</a> - i.e. a user being able to do what traditionally only a professional systems administrator would be able to.
284
-</p>
285
-
286
-<p>
287
-With a system installed in your home you also have greater legal protection against unwarranted or "bulk warrant" searches. In general as soon as you put your information onto systems which you don't own then you no longer have the same property rights over it, together with "<i>no reasonable expectation of privacy</i>" otherwise known as the third party doctrine. We all know that's a nonsense, and so maybe we should do something about it.
288
-</p>
289
-
290
-<blockquote>
291
-<p>
292
-"With the increasing move of our computing to cloud infrastructures, we give up the control of our computing to the managers of those infrastructures. Our terminals (laptops, desktops) might now be running entirely on Free Software, but this is increasingly irrelevant given that most of what actually matters gets executed on a remote closed system that we don’t control. The Free Software community needs to work to help users keep the control of all their computing, by developing suitable alternatives and facilitating their deployment." &#x2013; Lucas Nussbaum
293
-</p>
294
-</blockquote>
295
-
296
-<p>
297
-Today everyone is concerned about privacy on the internet. Wanting privacy doesn't necessarily mean you have "something to hide". It just means having the ability to choose <i>what information to share, with whom and under what conditions</i> and therefore being able to shape your own life story. The loss of ability to choose via the "involuntary sharing" which many people experience when using communications systems built by the well known internet companies, means that you're no longer really running your own affairs and that others may begin to exert an improper amount of influence over you. Mass surveillance is perhaps the ultimate in involuntary sharing and it's only through the use of freedom respecting software together with a solid determination to overcome state and corporate abuses of technology that we can hope to get to the kind of internet in which respect for human dignity is built in as a core feature.
298
-</p>
299
-
300 245
 <div class="org-center">
301
-
302
-<div class="figure">
303
-<p><img src="images/nocloud.png" alt="nocloud.png" />
246
+<p>
247
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
304 248
 </p>
305 249
 </div>
306
-</div>
307 250
 
308 251
 <p>
309
-Another problem is the precariousness of the terms of service. Except in rare cases such terms are not easy to read, so many people end up clicking through terms which if explained more clearly they would never agree to. Over the past decade many internet users have had the unpleasant experience of having their blogs, videos or other web content inexplicably removed, typically due to some ill-defined terms of service violation or a false accusation of copyright infringement. There have been valiant attempts to improve the readability of terms of service documents, using icons or clearer language, and to generate a sort of marketplace in which people would choose what web systems they use based on the terms documents - to make the privacy/autonomy bargaining more explicit. These efforts were well-intentioned, but have conclusively failed. Even in the best case, that approach doesn't take into account the coercive network effects or large web systems.
252
+So you want to run your own internet services? Email, chat, VoIP, web sites, file synchronisation, wikis, blogs, social networks, backups. Freedombone enables you to do all of that in a self-hosted way, where you keep control of your data and it resides in your own home.
310 253
 </p>
311 254
 
312 255
 <p>
313
-You can bypass all of these dilemmas and take back ownership of your internet content with Freedombone.  Originally based upon the Beaglebone Black, Freedombone is a small and cheap home server which enables you to use email, have your own web site and do social networking without any built-in spying and without having to agree to any legal terms of service other than those of your ISP.  It provides independence and security in an era where those things are in short supply.
256
+Want to make a community mesh network which doesn't depend upon the internet? You can do that too.
314 257
 </p>
315 258
 
316
-<blockquote>
317 259
 <p>
318
-"The deepest problem is that the system architecture that has evolved in recent years holds masses of information on many people with no intelligence value, but with vast potential for political abuse." &#x2013; Ross Anderson
260
+But how?
319 261
 </p>
320
-</blockquote>
321 262
 
322
-<p>
323
-Freedombone is an example of the internet as it was supposed to be: a network of peers, rather than a small number of gigantic server farms with everyone connecting to them. Even if they're well run, centralised server farms become a conspicuous target for <i>all kinds of nefariousness</i> and in any future wars they're bound to be amongst the first facilities to receive the "<i>shock and awe</i>" treatment. Also consider just what is being "farmed". If a robust information society is desirable then excessive centralisation of control over information should be avoided.
324
-</p>
263
+<ul class="org-ul">
264
+<li><a href="./homeserver.html">To make a home server</a></li>
265
+<li><a href="./mesh.html">To make a mesh network</a></li>
266
+</ul>
325 267
 
326 268
 <p>
327
-An emphasis of the Freedombone project is the protection of private communications from indiscriminate mass surveillance, otherwise known as "<i>bulk intercept</i>" or "<i>warrantless wiretapping</i>". With only a few exceptions data entering and leaving the system is encrypted using settings recommended by <a href="https://bettercrypto.org/">bettercrypto.org</a> . Stored emails are encrypted such that only someone knowing your GPG password can read them and a GPG key is created automatically if you don't already have one. The system is firewalled with only the necessary ports being opened. Exclusively <a href="https://en.wikipedia.org/wiki/Free_software">free software</a> is used so that all of it can potentially be security audited and proprietary repositories are disabled by default. There are still numerous security problems with the internet in general and software always contains bugs, but a best attempt has been made to ensure that the Freedombone is at least more secure than average.
269
+After installation it's possible that you might want some advice on how to run your server and set up apps to work nicely with it.
328 270
 </p>
329 271
 
330
-<div class="org-center">
331
-<p>
332
-This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
333
-</p>
334
-</div>
272
+<ul class="org-ul">
273
+<li><a href="./usage.html">General usage</a></li>
274
+<li><a href="./faq.html">Frequently Asked Questions</a></li>
275
+</ul>
335 276
 </div>
336 277
 <div id="postamble" class="status">
337 278
 

+ 26
- 316
website/EN/mesh.html Näytä tiedosto

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2016-08-08 Mon 17:50 -->
6
+<!-- 2016-08-09 Tue 16:19 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title></title>
@@ -242,392 +242,102 @@ for the JavaScript code in this tag.
242 242
 </div>
243 243
 </div>
244 244
 
245
-<center>
246
-<h1>Mesh Network</h1>
247
-</center>
248
-
249
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
250
-
251
-
252
-<colgroup>
253
-<col  class="org-left" />
254
-</colgroup>
255
-<tbody>
256
-<tr>
257
-<td class="org-left"><a href="#orgb58230b">What is a mesh network?</a></td>
258
-</tr>
259
-
260
-<tr>
261
-<td class="org-left"><a href="#org63d1e2d">The Freedombone Mesh</a></td>
262
-</tr>
263
-
264
-<tr>
265
-<td class="org-left"><a href="#orgeed93d2">Installation</a></td>
266
-</tr>
267
-
268
-<tr>
269
-<td class="org-left"><a href="#org6cf0cea">Wifi adaptors</a></td>
270
-</tr>
271
-
272
-<tr>
273
-<td class="org-left"><a href="#orga905ad2">Using the mesh</a></td>
274
-</tr>
275
-
276
-<tr>
277
-<td class="org-left"><a href="#org1e64c42">Further reading</a></td>
278
-</tr>
279
-</tbody>
280
-</table>
281
-
282
-<div id="outline-container-orgb58230b" class="outline-2">
283
-<h2 id="orgb58230b">What is a mesh network?</h2>
284
-<div class="outline-text-2" id="text-orgb58230b">
285
-<p>
286
-The internet as it currently exists is mostly organised according to a client/server model. Servers run the web services and store the data and clients are the laptops, desktops and other devices accessing the servers. In a mesh network there isn't any clear division between clients and servers. The computers on a mesh network are known as "peers" and they can perform the functions of both clients and servers. Commonly this is also known as a "peer to peer" network.
287
-</p>
288
-
289
-<p>
290
-The client/server and mesh network models have advantages and disadvantages. If the server in a client/server system fails then you can have catastrophic service outages which affect many users. If a peer in a mesh network fails then the other peers may be mostly unaffected and communications can continue. The disadvantage of mesh networks is that each peer relays data for other peers and so the bandwidth usage by each peer may be higher than for a client in a client/server system. However, with modern hardware that's not much of an issue.
291
-</p>
292
-
293
-<p>
294
-Mesh networks are useful for building local and highly resillient communications infrastructure which can be put together rapidly, in situations where the ordinary internet is either unavailable or untrustworthy.
295
-</p>
296
-
297
-<p>
298
-Example use cases would be:
299
-</p>
300
-
301
-<ul class="org-ul">
302
-<li>Conferences / Exhibitions</li>
303
-<li>Local community networks, not run by telcos or ISPs</li>
304
-<li>Emergency services / Disaster relief</li>
305
-<li>Camp sites</li>
306
-<li>War zones</li>
307
-<li>Scientific expeditions to remote areas</li>
308
-<li>Onboard smaller ships without satellite internet, captain/crew communications</li>
309
-<li>Underground (mines or caves)</li>
310
-<li>Protests / Occupations of buildings</li>
311
-<li>Eventually in space for manned missions to other planets, moons or asteroids</li>
312
-</ul>
313
-</div>
314
-</div>
315
-
316
-<div id="outline-container-org63d1e2d" class="outline-2">
317
-<h2 id="org63d1e2d">The Freedombone Mesh</h2>
318
-<div class="outline-text-2" id="text-org63d1e2d">
319
-<p>
320
-The Freedombone mesh is offline - in the sense of not being part of the larger internet - and consists of a set of computers with the software installed communicating wirelessly using ordinary wifi. Peers can enter or leave the network and it will adjust automatically. All communications between peers is end-to-end encrypted, so although it's easy to join the network it's not easy to passively evesdrop.
321
-</p>
322
-</div>
323
-</div>
324
-<div id="outline-container-orgeed93d2" class="outline-2">
325
-<h2 id="orgeed93d2">Installation</h2>
326
-<div class="outline-text-2" id="text-orgeed93d2">
327
-</div><div id="outline-container-org17d2702" class="outline-3">
328
-<h3 id="org17d2702">Two types of system</h3>
329
-<div class="outline-text-3" id="text-org17d2702">
330
-<p>
331
-Installation is split into two categories, <i>routers</i> and <i>user devices</i>.
332
-</p>
333
-
334
-<p>
335
-A router is a computer which is dedicated to moving network traffic and building out the mesh infrastructure. It's not primarily intended to have a user interface. Hardware such as the Beaglebone Black is ideal for this, because it's small, inexpensive and doesn't consume much electrical power and so can be fitted in any location where an electricity supply is available.
336
-</p>
337
-
338
-<p>
339
-Small computers acting as mesh routers can also be battery operated or solar powered so that the network need not be statically sited. They could be included in a backpack for camping, fitted within moving vehicles, strapped to protest placards or attached to <a href="https://www.youtube.com/watch?v=Wwsy9MThwns">large tethered helium balloons</a> (like weather balloons) to help provide a local and transient communications system.
340
-</p>
341
-
245
+<div class="org-center">
342 246
 <p>
343
-<i>User devices</i> are the computers with which you would typically access the internet - laptops, desktop machines, netbooks or any other device which can run a Debian-based distro (eg. Ubuntu) with a working wifi connection.
247
+This site can also be accessed via a Tor browser at 4fvfozz6g3zmvf76.onion
344 248
 </p>
345 249
 </div>
346
-</div>
347
-<div id="outline-container-org437bcfa" class="outline-3">
348
-<h3 id="org437bcfa">Installing on routers</h3>
349
-<div class="outline-text-3" id="text-org437bcfa">
350
-<p>
351
-Whatever system you're going to use as a mesh router should have a new Debian Jessie install on it. It's advisable that this be a new install so that there is no existing software on the system which could confuse the mesh install process.
352
-</p>
353
-
354
-<p>
355
-Some recommended hardware:
356
-</p>
357
-
358
-<ul class="org-ul">
359
-<li>Beaglebone Black</li>
360
-<li>5V power supply</li>
361
-<li>Ethernet cable (for installation of the software)</li>
362
-<li>8GB microSD card, or larger</li>
363
-<li>Wireless N USB Adapter TPE-N150USB</li>
364
-</ul>
365 250
 
366 251
 <p>
367
-If you are using the Beaglebone Black then you'll need to install the Debian image to the microSD card. You can find details of how to do that <a href="./installation.html">here</a>.
252
+Mesh networks are useful as a quick way to make a fully decentralised communications system which is not connected to the internet. Think festivals, hacker conferences, onboard ships at sea, disaster/war zones, small business internal office communications, protests, remote areas of the world, scientific expeditions and off-world space colonies. All the cool stuff. The down side is that you can't access any internet content. The upside is that you can securely communicate with anyone on the local mesh. No ISPs. No payments or subscriptions beyond the cost of obtaining the hardware. Systems need to be within wifi range of each other for the mesh to be created. It can be an ultra-convenient way to do purely local communications.
368 253
 </p>
369 254
 
370 255
 <p>
371
-Connect your system to your internet router with an ethernet cable, then ssh into it and type:
256
+First you will need to create an image.
372 257
 </p>
373 258
 
374 259
 <div class="org-src-container">
375 260
 
376
-<pre class="src src-bash">su
377
-apt-get update
378
-apt-get install git build-essential dialog
261
+<pre class="src src-bash">sudo su
262
+apt-get -y install build-essential git python-docutils mktorrent <span class="org-sh-escaped-newline">\</span>
263
+vmdebootstrap xz-utils dosfstools btrfs-tools extlinux python-distro-info <span class="org-sh-escaped-newline">\</span>
264
+mbr qemu-user-static binfmt-support u-boot-tools qemu
379 265
 git clone https://github.com/bashrc/freedombone
380 266
 <span class="org-builtin">cd</span> freedombone
267
+git checkout stockholm
381 268
 make install
269
+freedombone-image -t i386 -v meshclient
382 270
 </pre>
383 271
 </div>
384 272
 
385 273
 <p>
386
-At this point if you are using a system or dongle with an Atheros AR9271 wifi chipset then you may want to install some pre-compiled firmware (you can compile it from source, but it takes a long time - especially on the Beaglebone Black). If you need to do that then see the wifi adaptor notes below.
387
-</p>
388
-
389
-<p>
390
-Then to begin the install:
391
-</p>
392
-
393
-<div class="org-src-container">
394
-
395
-<pre class="src src-bash">freedombone menuconfig
396
-</pre>
397
-</div>
398
-
399
-<p>
400
-Select the "<i>mesh (router)</i>" install variant, give an ESSID or just hit enter for the default. If discression is important then use an ESSID similar to those already in the area. The ESSID must be the same on every mesh peer. Assign this mesh peer a name. In order to avoid confusions it's important that the name should be unique on the network and contain no spaces. So maybe a word followed by some numbers, or the name of the place where the router will be installed.
401
-</p>
402
-
403
-<p>
404
-If you're installing on a Beaglebone Black then after a while the system will reboot and you will need to ssh in again and run:
405
-</p>
406
-
407
-<div class="org-src-container">
408
-
409
-<pre class="src src-bash"><span class="org-builtin">cd</span> freedombone
410
-freedombone -c freedombone.cfg
411
-</pre>
412
-</div>
413
-
414
-<p>
415
-The reboot is needed in order to enable zram and the hardware random number generator.
416
-</p>
417
-</div>
418
-</div>
419
-<div id="outline-container-orgf341f46" class="outline-3">
420
-<h3 id="orgf341f46">Installing on user devices</h3>
421
-<div class="outline-text-3" id="text-orgf341f46">
422
-<p>
423
-Typically on a laptop with a Debian-based distro installed, open a terminal and type:
424
-</p>
425
-
426
-<div class="org-src-container">
427
-
428
-<pre class="src src-bash">sudo apt-get update
429
-sudo apt-get install git build-essential dialog
430
-git clone https://github.com/bashrc/freedombone
431
-<span class="org-builtin">cd</span> freedombone
432
-sudo make install
433
-freedombone menuconfig
434
-</pre>
435
-</div>
436
-
437
-<p>
438
-Select the "<i>mesh (user device)</i>" variant and set the same ESSID as you did for the routers, or just hit enter for the default.
439
-</p>
440
-
441
-<p>
442
-An important point is that on older Debian-based systems, such as Ubuntu 14.04 or Trisquel 7, you may need to install a more recent version of <i>batctl</i>. An example is as follows.
443
-</p>
444
-
445
-<div class="org-src-container">
446
-
447
-<pre class="src src-bash">sudo apt-get remove --purge batctl
448
-wget http://mirrors.kernel.org/ubuntu/pool/universe/b/batctl/batctl_2014.1.0-2_amd64.deb
449
-sudo dpkg -i batctl_2014.1.0-2_amd64.deb
450
-</pre>
451
-</div>
452
-</div>
453
-</div>
454
-</div>
455
-<div id="outline-container-org6cf0cea" class="outline-2">
456
-<h2 id="org6cf0cea">Wifi adaptors</h2>
457
-<div class="outline-text-2" id="text-org6cf0cea">
458
-<p>
459
-There are a small number of wifi adaptors which are compatible with a fully free software stack.
460
-</p>
461
-</div>
462
-<div id="outline-container-org9b951f8" class="outline-3">
463
-<h3 id="org9b951f8">Atheros AR9271</h3>
464
-<div class="outline-text-3" id="text-org9b951f8">
465
-<p>
466
-To install the firmware for this:
467
-</p>
468
-
469
-<div class="org-src-container">
470
-
471
-<pre class="src src-bash"><span class="org-builtin">cd</span> freedombone/drivers
472
-sha256sum ath9k_htc_driver_bbb.tar.gz
473
-7eb9324681f03c7630ed01e490ea447dfbd96c9b5389e45b64e4646d1be16ff1
474
-tar -xvzf ath9k_htc_driver_bbb.tar.gz
475
-mv *.fw /lib/firmware
476
-<span class="org-builtin">cd</span> ..
477
-</pre>
478
-</div>
479
-</div>
480
-</div>
481
-</div>
482
-<div id="outline-container-orga905ad2" class="outline-2">
483
-<h2 id="orga905ad2">Using the mesh</h2>
484
-<div class="outline-text-2" id="text-orga905ad2">
485
-<p>
486
-The following sections only apply to <i>client devices</i>. Mesh <i>routers</i> are only for routing network traffic and operating <a href="https://en.wikipedia.org/wiki/BitTorrent_tracker">trackers</a> and <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">distributed hash tables</a> for bootstrapping purposes.
487
-</p>
488
-</div>
489
-
490
-<div id="outline-container-org06320ae" class="outline-3">
491
-<h3 id="org06320ae">Switching from internet to mesh mode</h3>
492
-<div class="outline-text-3" id="text-org06320ae">
493
-<p>
494
-To join the mesh network open a terminal and type:
495
-</p>
496
-
497
-<div class="org-src-container">
498
-
499
-<pre class="src src-bash">meshweb
500
-</pre>
501
-</div>
502
-
503
-<p>
504
-If you want to have your system as a permanent mesh peer then you could add that command to your startup applications so that it activates whenever the computer starts up.
505
-</p>
506
-
507
-<p>
508
-A web page should appear in your browser, which then allows you to access communication services on the mesh. These pages should update automatically, so that if peers enter or leave the network the lists will change accordingly.
509
-</p>
510
-
511
-<p>
512
-If for any reason things don't seem to be updating you can force an update by issuing the command:
274
+If you don't have Atheros or free software compatible wifi adapter then you can include proprietary wifi drivers which will work with most laptops. This is <b>NOT RECOMMENDED</b> because proprietary drivers are unsupportable and may contain either malware or be exploitable in a way which can't be fixed. However, if you're in an emergency and don't have any Atheros or free software wifi USB dongles then you can use the following command to make the image:
513 275
 </p>
514 276
 
515 277
 <div class="org-src-container">
516 278
 
517
-<pre class="src src-bash">zeronetavahi
279
+<pre class="src src-bash">freedombone-image -t i386 -v meshclient --insecure yes
518 280
 </pre>
519 281
 </div>
520
-</div>
521
-</div>
522
-<div id="outline-container-org0086623" class="outline-3">
523
-<h3 id="org0086623">Chat</h3>
524
-<div class="outline-text-3" id="text-org0086623">
525
-<p>
526
-If you have a Tox client installed on your system then you can use that to communicate with other mesh peers. A limitation is that if peers change you may need to quit the application and restart it in order to receive the updated list of DHTnodes. The <a href="https://github.com/Tox/toxic">Toxic</a> client is installed by default, but you may also want to install <a href="https://github.com/tux3/qTox">qTox</a> for a more conventional-looking user experience.
527
-</p>
528 282
 
529 283
 <p>
530
-You can obtain Tox IDs for users on the network via the initial web page.
284
+This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.
531 285
 </p>
532 286
 
533 287
 <p>
534
-To launch the <a href="https://github.com/Tox/toxic">Toxic client</a> in a terminal type:
288
+List what drives are on your system with:
535 289
 </p>
536 290
 
537 291
 <div class="org-src-container">
538 292
 
539
-<pre class="src src-bash">toxic
293
+<pre class="src src-bash">ls /dev/sd*
540 294
 </pre>
541 295
 </div>
542 296
 
543 297
 <p>
544
-The first time you will be asked whether you wish to encrypt the data file used for your settings. Select "no" for this, otherwise the system will not be able to obtain your public key and broadcast it to other peers in the network. Even if you select "yes" the system will still be usable, but it will not be so easy for other peers on the network to find you unless you have previously exchanged your Tox ID via some out-of-band method.
298
+Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.
545 299
 </p>
546 300
 
547 301
 <p>
548
-Then to add a new friend:
302
+You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the identifier of the USB thumb drive. Don't include any numbers (so for example use <b>sdc</b> instead of <b>sdc1</b>).
549 303
 </p>
550 304
 
551 305
 <div class="org-src-container">
552 306
 
553
-<pre class="src src-bash">/nick mynickname
554
-/add &lt;friend Tox ID&gt;
307
+<pre class="src src-bash">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
555 308
 </pre>
556 309
 </div>
557 310
 
558 311
 <p>
559
-Your friend will need to approve the request, and then you can chat via text or voice using <i>CTRL-o</i> and <i>CTRL-p</i> to switch between screens and cursor keys plus Enter to select users.
312
+And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use on the mesh, power on and set the BIOS to boot from the USB stick.
560 313
 </p>
561 314
 
562 315
 <p>
563
-Another thing worth knowing is that if you were already using a Tox client before running the <i>meshweb</i> command then it's a good idea to close and reopen it, so that the list of bootstrap nodes is updated. The same also applies when exiting the mesh and returning to the internet.
564
-</p>
565
-
566
-<p>
567
-A note for the security-conscious is that broadcasting Tox IDs via the network (using Avahi) is convenient but not highly secure. An adversary could maybe join the network and create decoy peers to try to disrupt the communications and have messages going to the wrong places. For the best security exchange Tox IDs in advance by some method other than looking them up from the initial mesh web page.
568
-</p>
569
-</div>
570
-</div>
571
-<div id="outline-container-orgebb5514" class="outline-3">
572
-<h3 id="orgebb5514">Blogging</h3>
573
-<div class="outline-text-3" id="text-orgebb5514">
574
-<p>
575
-The Freedombone mesh uses a fully decentralized blogging system called <a href="https://github.com/HelloZeroNet/ZeroBlog">ZeroBlog</a>. It behaves rather like other peer-to-peer file sharing systems in that if you are reading the blog of another user you are also simultaneously seeding it to other peers (acting as both a client and a server). This allows the system to scale well, while also being robust to any peer failing or leaving the network.
316
+On first boot you'll be asked to set a username, and then you can open the chat client and select the <b>users</b> icon to show the Tox IDs for other users on the mesh. When folks join they will be announced.
576 317
 </p>
577 318
 
578 319
 <p>
579
-All blogs on the mesh are public, so any user joining the mesh can read any other blog. Network traffic is encrypted between peers, so passive snooping will be hard, and also the integrity of data is checked via certificates so that you can be reasonably confident that nefarious content has not been added or removed from the data stream while in transit through the network.
320
+Rinse, repeat, for any number of laptops that you want to get onto the mesh or to build out coverage within an area. There are no servers. Just peer-to-peer communications routed through the network which are end-to-end secure after a friend request is accepted. By default the chat client doesn't log anything.
580 321
 </p>
581 322
 
582 323
 <p>
583
-This type of content creation and delivery provides a good template for what the conventional internet should ultimately be like if it is to be robust, trustworthy and resistant to censorship or damage.
324
+No logs, no masters.
584 325
 </p>
585 326
 
586 327
 <p>
587
-To add a new blog entry click the <i>new post</i> button, edit the title and content (clicking <i>save</i> at the bottom of the screen after each). Then when you are done click on the <i>publish</i> button at the bottom of the screen. And that's all there is to it.
588
-</p>
589
-</div>
590
-</div>
591
-<div id="outline-container-org7256cbd" class="outline-3">
592
-<h3 id="org7256cbd">Other services</h3>
593
-<div class="outline-text-3" id="text-org7256cbd">
594
-<p>
595
-It is hoped that a decentralized forum will be added, but this is not yet complete. In the mean time a substitute is to use the Tox group chat feature.
596
-</p>
597
-</div>
598
-</div>
599
-<div id="outline-container-orgc4e266c" class="outline-3">
600
-<h3 id="orgc4e266c">Turning off the mesh</h3>
601
-<div class="outline-text-3" id="text-orgc4e266c">
602
-<p>
603
-If you wish to return to the internet then open a terminal and type:
328
+You can also use single board computers (SBCs) such as the BeagleBone Black to make mesh routers which can be bolted to walls or the sides of buildings and consume minimal electrical power, so could be solar or battery powered for short term events such as festivals. To do that use the following command to make the image:
604 329
 </p>
605 330
 
606 331
 <div class="org-src-container">
607 332
 
608
-<pre class="src src-bash">sudo batman stop
333
+<pre class="src src-bash">freedombone-image -t beaglebone -v mesh
609 334
 </pre>
610 335
 </div>
611 336
 
612 337
 <p>
613
-After a few seconds your usual internet wifi connection should be re-established.
338
+The resulting image can be copied to a microSD card, inserted into a Beaglebone Black and booted. Don't forget to plug in an Atheros USB wifi dongle.
614 339
 </p>
615 340
 </div>
616
-</div>
617
-</div>
618
-<div id="outline-container-org1e64c42" class="outline-2">
619
-<h2 id="org1e64c42">Further reading</h2>
620
-<div class="outline-text-2" id="text-org1e64c42">
621
-<p>
622
-For much more extensive details about deploying wireless networks there is an excellent book called <a href="https://wndw.net/">Wireless Networking in the Developing World</a> which is worth reading. It's not necessarily exclusively about mesh networks, but may be useful in terms of advice about antennas, reflections, extending wifi range and so on.
623
-</p>
624
-
625
-<center>
626
-Return to the <a href="index.html">home page</a>
627
-</center>
628
-</div>
629
-</div>
630
-</div>
631 341
 <div id="postamble" class="status">
632 342
 
633 343
 <style type="text/css">