Update document formatting

This commit is contained in:
Bob Mottram 2018-04-12 13:34:44 +01:00
parent 65c6de6e4b
commit a1e13ec3c0
19 changed files with 1004 additions and 2030 deletions

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 13:03 -->
<!-- 2018-04-12 Thu 13:04 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -991,13 +991,11 @@ If you can find some details for an obfs4 Tor bridge (its IP address, port numbe
ssh into your Freedombone system, go to the <b>administrator control panel</b>, select <b>security settings</b> then <b>Tor Bridges</b> and <b>Add a bridge</b>. You can then enter the details.
</p>
<div class="center">
<div class="figure">
<p><img src="images/controlpanel/control_panel_bridges.jpg" alt="control_panel_bridges.jpg" />
<p><img src="images/controlpanel/control_panel_bridges.jpg" alt="control_panel_bridges.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
Any bridges that you add will also show up on the About screen of the administrator control panel.

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-10 Sat 20:00 -->
<!-- 2018-04-12 Thu 13:05 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -145,71 +145,68 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
</p>
</div>
</div>
<div class="center">
<p>
<b>Homesteading the Fediverse</b>
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Homesteading the Fediverse</h2>
<div class="outline-text-2" id="text-1">
<p>
Some things you might want to know about the Fediverse:
</p>
</div>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Federation as a concept</h2>
<div class="outline-text-2" id="text-1">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Federation as a concept</h2>
<div class="outline-text-2" id="text-2">
<p>
The political definition of a federation is "<i>a union of partially self-governing states or regions under a central (federal) government</i>". The fediverse isn't exactly like that, in that there is no federal government. However there are protocols which govern the communication between instances and that might be analogized to being a sort of elementary constitution or mutual agreement binding all participants together. The protocols are merely ways of moving data around though, and don't impose any sort of moral code.
</p>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Keep the number of users on each server small</h2>
<div class="outline-text-2" id="text-2">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Keep the number of users on each server small</h2>
<div class="outline-text-2" id="text-3">
<p>
The importance of this can't be overstated. Servers with lots of users always eventually have problems where the interests of the users are not the same as the interests of the server administrator. If you are the server administrator, or if there are only a small squad-size group of people on the server, then it's a lot easier to resolve differences and everyone's interests are likely to be similar.
</p>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Drama will happen</h2>
<div class="outline-text-2" id="text-3">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Drama will happen</h2>
<div class="outline-text-2" id="text-4">
<p>
It's inevitable in any social network, but fortunately your options for dealing with it are better than they are in the giant proprietary monoliths. In the proprietary world Google or Facebook don't give a damn about the fate of individual users. On a server with a small number of users if you're getting griefed then the administrator is likely to care and be able to do something about it.
</p>
</div>
</div>
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Don't be afraid to block</h2>
<div class="outline-text-2" id="text-4">
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Don't be afraid to block</h2>
<div class="outline-text-2" id="text-5">
<p>
Especially if other servers are publishing content which may not be legal in your jurisdiction then don't be afraid to use domain or user blocking from the <b>Administrator control panel</b>. The same applies if users on other servers are trying to harass you. Blocking creates politics and drama but <span class="underline">this is a feature not a bug</span>. It allows you to craft your own distinct community and user experience while also existing in the wider federation. It's hard to do this on sites like Twitter or Facebook. Try to keep blocking to a minimum though and avoid doing it for insubstantial reasons. If you have other users on your server then publish the blocked domains list somewhere they can see. That avoids disappointment and enables you to have a discussion about the validity of blocking decisions.
</p>
</div>
</div>
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Network structure maps on to social structure</h2>
<div class="outline-text-2" id="text-5">
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Network structure maps on to social structure</h2>
<div class="outline-text-2" id="text-6">
<p>
Over time follows and blocking rules come to match the underlying social geography of affinity groups. Blocking will happen and users will move around or start new servers. Drama related to blocking will dissipate.
</p>
</div>
</div>
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Keep your follows under the Dunbar number</h2>
<div class="outline-text-2" id="text-6">
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Keep your follows under the Dunbar number</h2>
<div class="outline-text-2" id="text-7">
<p>
Keep the number of other frequently active users you're following to under a couple of hundred. Your actual number of follows might be larger than this but could include users who rarely post anything.
</p>
@ -220,9 +217,9 @@ Once there are more than a couple of hundred highly active users in your timelin
</div>
</div>
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Avoid big public servers</h2>
<div class="outline-text-2" id="text-7">
<div id="outline-container-sec-8" class="outline-2">
<h2 id="sec-8">Avoid big public servers</h2>
<div class="outline-text-2" id="text-8">
<p>
It may seem like a good idea and it may seem like you're doing a service to the community by allowing random strangers to register, but servers with thousands of users only cause problems - social, administrative, financial and possibly also legal. The financial strain of running a powerful server with high reliability may be enough to encourage the administrator to begin pushing advertising onto the system, or sell user content, and then before you know it you have identical problems to Twitter. Instead try to encourage people to set up their own servers. Follow this principle and a lot of arguments and stress will be more easily avoided.
</p>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-02-12 Mon 20:11 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone home server setup"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, home server" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,17 +144,17 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center><h1>Home Server</h1></center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Home Server</h2>
<div class="outline-text-2" id="text-1">
<p>
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.
</p>
@ -256,9 +164,10 @@ First install freedombone onto your local system (not the target hardware that y
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git dialog build-essential
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
sudo make install
freedombone-image --setup debian
@ -271,9 +180,10 @@ Or on Arch/Parabola:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo pacman -S git dialog
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
sudo make install
freedombone-image --setup parabola
@ -286,17 +196,16 @@ Now prepare your local system to talk to the freedombone by running the followin
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
</pre>
</div>
<div class="org-center">
<div class="figure">
<p><img src="images/tor_onion.jpg" alt="tor_onion.jpg" />
<p><img src="images/tor_onion.jpg" alt="tor_onion.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
The version in which sites are available only via onion addresses is the easiest to get started with, since you can evaluate the system without committing to buying an ICANN domain name or needing to get involved with SSL/TLS certificates at all. However, if you do want your sites to be available typically as subdomains of a domain name which you own then remove the <b>&#x2013;onion-addresses-only yes</b> option from the last command shown above. Also see the <a href="./domains.html">guide on setting up an ICANN domain name</a>.
@ -310,13 +219,11 @@ The <b>onion-addresses-only</b> option <b>does not</b> mean that everything gets
If you want to create images for microSD cards used within various single board computers then replace the <b>i386</b> with <b>beaglebone</b> / <b>cubieboard2</b> / <b>cubietruck</b> / <b>a20-olinuxino-lime</b> / <b>a20-olinuxino-lime2</b> / <b>a20-olinuxino-micro</b> or <b>apu</b>.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/beaglebone_black9.jpg" alt="beaglebone_black9.jpg" />
<p><img src="images/beaglebone_black9.jpg" alt="beaglebone_black9.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
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.
@ -327,6 +234,7 @@ List what drives are on your system with:
</p>
<div class="org-src-container">
<pre class="src src-bash">ls /dev/sd*
</pre>
</div>
@ -340,8 +248,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p>
<div class="org-src-container">
<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
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
<pre class="src src-bash">dd if=/dev/zero of=/dev/sdX bs=1M count=8
dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
</pre>
</div>
@ -354,6 +263,7 @@ As the system boots for the first time the login is:
</p>
<div class="org-src-container">
<pre class="src src-bash">username: fbone
password: freedombone
</pre>
@ -364,6 +274,7 @@ If you're installing from a microSD card on a single board computer without a sc
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre>
</div>
@ -385,6 +296,7 @@ When it's installed on your local system open a terminal and verify the ssh serv
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client --verify
</pre>
</div>
@ -393,19 +305,18 @@ When it's installed on your local system open a terminal and verify the ssh serv
This will show the hash code for the public ssh key of the Freedombone system.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/ssh_key_verify.jpg" alt="ssh_key_verify.jpg" />
<p><img src="images/ssh_key_verify.jpg" alt="ssh_key_verify.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
Open another terminal window then run:
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
ssh myusername@freedombone.local -p 2222
</pre>
@ -415,25 +326,21 @@ ssh myusername@freedombone.local -p 2222
Use the password you wrote down earlier to log in. Select the <b>administrator control panel</b> with up and down cursor keys, space bar and enter key. You should see something like this, and you might need to re-enter your password.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/controlpanel/control_panel.jpg" alt="control_panel.jpg" />
<p><img src="images/controlpanel/control_panel.jpg" alt="control_panel.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
Then select <b>About</b>. You'll see a list of sites and their onion addresses.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/controlpanel/control_panel_about.jpg" alt="control_panel_about.jpg" />
<p><img src="images/controlpanel/control_panel_about.jpg" alt="control_panel_about.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
The About screen contains the ssh server public key hashes and you can compare the relevant one with the previous terminal window to verify that they're the same. If they're not then you might have a <i>machine-in-the-middle</i> snooping on you.
@ -447,13 +354,11 @@ You have now confirmed a secure connection. Probably. If you're still sceptical
Press any key to exit from the About screen. You can then select <b>Add/Remove apps</b> and add whatever applications you wish to run. Note that some apps will only run on x86 systems, but most will install and run on ARM single board computers. More details on particular apps can be <a href="./apps.html">found here</a>.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/controlpanel/control_panel_apps.jpg" alt="control_panel_apps.jpg" />
<p><img src="images/controlpanel/control_panel_apps.jpg" alt="control_panel_apps.jpg" width="80%" align="center" />
</p>
</div>
</div>
<p>
Once your apps have installed you can go back to the About screen, pick an onion address and try it within a Tor compatible browser. You'll need to know the login passwords and those can be found within the <i>Passwords</i> section of the administrator control panel. An axiom of the Freedombone system is that <i>if given the choice users will usually use insecure passwords</i>, so on this system passwords are generated randomly. If you need to then you can transfer the passwords into your favourite password manager and remove them from the server by going to the <b>Security Settings</b> section of the administrator control panel and choosing <b>Export passwords</b> and <b>Password storage</b>.
@ -472,16 +377,19 @@ Of course, this is just one way in which you can install the Freedombone system.
</p>
<div class="org-src-container">
<pre class="src src-bash">man freedombone-image
</pre>
</div>
<div class="org-center">
<div class="center">
<p>
This site can also be accessed via a Tor browser at <a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a>
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<style type="text/css">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-08-27 Sun 19:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<!-- 2018-04-12 Thu 13:09 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone installation"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, hubzilla, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, installation" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,66 +144,66 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center>
<h1>Installation</h1>
</center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Installation</h2>
<div class="outline-text-2" id="text-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="left" />
</colgroup>
<tbody>
<tr>
<td class="org-left"><a href="#orgf33fa48">Building an image for a Single Board Computer or Virtual Machine</a></td>
<td class="left"><a href="#sec-2">Building an image for a Single Board Computer or Virtual Machine</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org5e8535e">Checklist</a></td>
<td class="left"><a href="#sec-3">Checklist</a></td>
</tr>
<tr>
<td class="org-left"><a href="./mesh.html">Mesh network</a></td>
<td class="left"><a href="./mesh.html">Mesh network</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org66f5148">Installation</a></td>
<td class="left"><a href="#sec-1">Installation</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org60cbf3c">Social Key Management - the 'Unforgettable Key'</a></td>
<td class="left"><a href="#sec-5">Social Key Management - the 'Unforgettable Key'</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org07d21e3">Final Setup</a></td>
<td class="left"><a href="#sec-6">Final Setup</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org214cad8">Keydrives</a></td>
<td class="left"><a href="#sec-7">Keydrives</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org91e37f6">On Client Machines</a></td>
<td class="left"><a href="#sec-8">On Client Machines</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org9748f8d">Administering the system</a></td>
<td class="left"><a href="#sec-9">Administering the system</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgf33fa48" class="outline-2">
<h2 id="orgf33fa48">Building an image for a Single Board Computer or Virtual Machine</h2>
<div class="outline-text-2" id="text-orgf33fa48">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Building an image for a Single Board Computer or Virtual Machine</h2>
<div class="outline-text-2" id="text-2">
<p>
You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the <b>freedombone-image</b> command.
</p>
@ -305,12 +213,13 @@ Install the freedombone commands onto your laptop/desktop:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">sudo apt-get install git build-essential dialog
<pre class="src src-bash">sudo apt-get install git build-essential dialog
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
sudo make install
</code></pre>
</pre>
</div>
<p>
@ -318,8 +227,9 @@ Then install packages needed for building images:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image --setup debian
</code></pre>
<pre class="src src-bash">freedombone-image --setup debian
</pre>
</div>
<p>
@ -327,8 +237,9 @@ or on an Arch/Parabola system:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image --setup parabola
</code></pre>
<pre class="src src-bash">freedombone-image --setup parabola
</pre>
</div>
<p>
@ -336,8 +247,9 @@ A typical use case to build an 8GB image for a Beaglebone Black is as follows. Y
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image -t beaglebone -s 8G
</code></pre>
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G
</pre>
</div>
<p>
@ -345,8 +257,9 @@ If you prefer an advanced installation with all of the options available then us
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
</code></pre>
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
</pre>
</div>
<p>
@ -354,8 +267,9 @@ To build a 64bit Qemu image:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
</code></pre>
<pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
</pre>
</div>
<p>
@ -367,72 +281,86 @@ If the image build fails with an error such as "<i>Error reading from server. Re
</p>
<div class="org-src-container">
<pre><code class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
</code></pre>
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
</pre>
</div>
</div>
</div>
<div id="outline-container-org5e8535e" class="outline-2">
<h2 id="org5e8535e">Checklist</h2>
<div class="outline-text-2" id="text-org5e8535e">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Checklist</h2>
<div class="outline-text-2" id="text-3">
<p>
Before installing Freedombone you will need a few things.
</p>
<ul class="org-ul">
<li>Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt.</li>
<li>System with a new installation of Debian Stretch or a downloaded/prepared disk image</li>
<li>Ethernet connection between the system and your internet router</li>
<li>That it is possible to forward ports from the internet router to the system, typically via firewall settings</li>
<li>Have ssh access to the system, typically via fbone@freedombone.local on port 2222</li>
<li>Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt.
</li>
<li>System with a new installation of Debian Stretch or a downloaded/prepared disk image
</li>
<li>Ethernet connection between the system and your internet router
</li>
<li>That it is possible to forward ports from the internet router to the system, typically via firewall settings
</li>
<li>Have ssh access to the system, typically via fbone@freedombone.local on port 2222
</li>
</ul>
</div>
</div>
<div id="outline-container-org66f5148" class="outline-2">
<h2 id="org66f5148">Installation</h2>
<div class="outline-text-2" id="text-org66f5148">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Installation</h2>
<div class="outline-text-2" id="text-4">
<p>
There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
</p>
</div>
<div id="outline-container-org38af249" class="outline-3">
<h3 id="org38af249">On a Laptop, Netbook or Desktop machine</h3>
<div class="outline-text-3" id="text-org38af249">
<div id="outline-container-sec-4-1" class="outline-3">
<h3 id="sec-4-1">On a Laptop, Netbook or Desktop machine</h3>
<div class="outline-text-3" id="text-4-1">
<p>
If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">su
<pre class="src src-bash">su
apt-get update
apt-get -y install git dialog build-essential
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
make install
freedombone menuconfig
</code></pre>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgcb99559" class="outline-3">
<h3 id="orgcb99559">On a single board computer (SBC)</h3>
<div class="outline-text-3" id="text-orgcb99559">
<div id="outline-container-sec-4-2" class="outline-3">
<h3 id="sec-4-2">On a single board computer (SBC)</h3>
<div class="outline-text-3" id="text-4-2">
<p>
Currently the following boards are supported:
</p>
<ul class="org-ul">
<li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a></li>
<li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a></li>
<li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a></li>
<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a></li>
<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a></li>
<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a></li>
<li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a></li>
<li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a>
</li>
<li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a>
</li>
<li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a>
</li>
<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a>
</li>
<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a>
</li>
<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a>
</li>
<li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a>
</li>
</ul>
<p>
@ -440,8 +368,9 @@ If there is no existing image available then you can build one from scratch. See
</p>
<div class="org-src-container">
<pre><code class="src src-bash">gpg --verify filename.img.asc
</code></pre>
<pre class="src src-bash">gpg --verify filename.img.asc
</pre>
</div>
<p>
@ -449,8 +378,9 @@ And the hash with:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">sha256sum filename.img
</code></pre>
<pre class="src src-bash">sha256sum filename.img
</pre>
</div>
<p>
@ -458,8 +388,9 @@ If the image is compressed then decompress it with:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">unxz filename.img.xz
</code></pre>
<pre class="src src-bash">unxz filename.img.xz
</pre>
</div>
<p>
@ -467,8 +398,9 @@ Then copy it to a microSD card. Depending on your system you may need an adaptor
</p>
<div class="org-src-container">
<pre><code class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=filename.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
</code></pre>
<pre class="src src-bash">sudo dd bs=1M if=filename.img of=/dev/sdX conv=fdatasync
</pre>
</div>
<p>
@ -476,8 +408,9 @@ Where <b>sdX</b> is the microSD drive. You can check which drive is the microSD
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ls /dev/sd*
</code></pre>
<pre class="src src-bash">ls /dev/sd*
</pre>
</div>
<p>
@ -489,8 +422,9 @@ With the board connected and running you can ssh into the system with:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ssh fbone@freedombone.local -p 2222
</code></pre>
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre>
</div>
<p>
@ -499,16 +433,17 @@ Using the password 'freedombone'. Take a note of the new login password and then
</div>
</div>
<div id="outline-container-org513a1c0" class="outline-3">
<h3 id="org513a1c0">As a Virtual Machine</h3>
<div class="outline-text-3" id="text-org513a1c0">
<div id="outline-container-sec-4-3" class="outline-3">
<h3 id="sec-4-3">As a Virtual Machine</h3>
<div class="outline-text-3" id="text-4-3">
<p>
Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">qemu-system-x86_64 -m 1G filename.img
</code></pre>
<pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
</pre>
</div>
<p>
@ -518,42 +453,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a no
</div>
</div>
<div id="outline-container-org60cbf3c" class="outline-2">
<h2 id="org60cbf3c">Social Key Management - the 'Unforgettable Key'</h2>
<div class="outline-text-2" id="text-org60cbf3c">
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Social Key Management - the 'Unforgettable Key'</h2>
<div class="outline-text-2" id="text-5">
<p>
During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
</p>
</div>
<div id="outline-container-org89d4331" class="outline-3">
<h3 id="org89d4331">You have the gnupg keyring on an encrypted USB drive</h3>
<div class="outline-text-3" id="text-org89d4331">
<div id="outline-container-sec-5-1" class="outline-3">
<h3 id="sec-5-1">You have the gnupg keyring on an encrypted USB drive</h3>
<div class="outline-text-3" id="text-5-1">
<p>
If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
</p>
</div>
</div>
<div id="outline-container-org573fd89" class="outline-3">
<h3 id="org573fd89">You have a number of key fragments on USB drives retrieved from friends</h3>
<div class="outline-text-3" id="text-org573fd89">
<div id="outline-container-sec-5-2" class="outline-3">
<h3 id="sec-5-2">You have a number of key fragments on USB drives retrieved from friends</h3>
<div class="outline-text-3" id="text-5-2">
<p>
If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#org214cad8">Keydrives</a>.
If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#sec-7">Keydrives</a>.
</p>
</div>
</div>
<div id="outline-container-org7815393" class="outline-3">
<h3 id="org7815393">You can specify some ssh login details for friends servers containing key fragments</h3>
<div class="outline-text-3" id="text-org7815393">
<div id="outline-container-sec-5-3" class="outline-3">
<h3 id="sec-5-3">You can specify some ssh login details for friends servers containing key fragments</h3>
<div class="outline-text-3" id="text-5-3">
<p>
Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
</p>
</div>
</div>
</div>
<div id="outline-container-org07d21e3" class="outline-2">
<h2 id="org07d21e3">Final Setup</h2>
<div class="outline-text-2" id="text-org07d21e3">
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Final Setup</h2>
<div class="outline-text-2" id="text-6">
<p>
Any manual post-installation setup instructions or passwords can be found in /home/username/README.
</p>
@ -566,128 +501,129 @@ On your internet router, typically under firewall settings, open the following p
<colgroup>
<col class="org-left" />
<col class="left" />
<col class="org-right" />
<col class="right" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Service</th>
<th scope="col" class="org-right">Ports</th>
<th scope="col" class="left">Service</th>
<th scope="col" class="right">Ports</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">HTTP</td>
<td class="org-right">80</td>
<td class="left">HTTP</td>
<td class="right">80</td>
</tr>
<tr>
<td class="org-left">HTTPS</td>
<td class="org-right">443</td>
<td class="left">HTTPS</td>
<td class="right">443</td>
</tr>
<tr>
<td class="org-left">SSH</td>
<td class="org-right">2222</td>
<td class="left">SSH</td>
<td class="right">2222</td>
</tr>
<tr>
<td class="org-left">DLNA</td>
<td class="org-right">1900</td>
<td class="left">DLNA</td>
<td class="right">1900</td>
</tr>
<tr>
<td class="org-left">DLNA</td>
<td class="org-right">8200</td>
<td class="left">DLNA</td>
<td class="right">8200</td>
</tr>
<tr>
<td class="org-left">XMPP</td>
<td class="org-right">5222..5223</td>
<td class="left">XMPP</td>
<td class="right">5222..5223</td>
</tr>
<tr>
<td class="org-left">XMPP</td>
<td class="org-right">5269</td>
<td class="left">XMPP</td>
<td class="right">5269</td>
</tr>
<tr>
<td class="org-left">XMPP</td>
<td class="org-right">5280..5281</td>
<td class="left">XMPP</td>
<td class="right">5280..5281</td>
</tr>
<tr>
<td class="org-left">IRC</td>
<td class="org-right">6697</td>
<td class="left">IRC</td>
<td class="right">6697</td>
</tr>
<tr>
<td class="org-left">Git</td>
<td class="org-right">9418</td>
<td class="left">Git</td>
<td class="right">9418</td>
</tr>
<tr>
<td class="org-left">Email</td>
<td class="org-right">25</td>
<td class="left">Email</td>
<td class="right">25</td>
</tr>
<tr>
<td class="org-left">Email</td>
<td class="org-right">587</td>
<td class="left">Email</td>
<td class="right">587</td>
</tr>
<tr>
<td class="org-left">Email</td>
<td class="org-right">465</td>
<td class="left">Email</td>
<td class="right">465</td>
</tr>
<tr>
<td class="org-left">Email</td>
<td class="org-right">993</td>
<td class="left">Email</td>
<td class="right">993</td>
</tr>
<tr>
<td class="org-left">VoIP</td>
<td class="org-right">64738</td>
<td class="left">VoIP</td>
<td class="right">64738</td>
</tr>
<tr>
<td class="org-left">VoIP</td>
<td class="org-right">5060</td>
<td class="left">VoIP</td>
<td class="right">5060</td>
</tr>
<tr>
<td class="org-left">Tox</td>
<td class="org-right">33445</td>
<td class="left">Tox</td>
<td class="right">33445</td>
</tr>
<tr>
<td class="org-left">Syncthing</td>
<td class="org-right">22000</td>
<td class="left">Syncthing</td>
<td class="right">22000</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org214cad8" class="outline-2">
<h2 id="org214cad8">Keydrives</h2>
<div class="outline-text-2" id="text-org214cad8">
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Keydrives</h2>
<div class="outline-text-2" id="text-7">
<p>
After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
</p>
</div>
<div id="outline-container-orge92aaa8" class="outline-3">
<h3 id="orge92aaa8">Master Keydrive</h3>
<div class="outline-text-3" id="text-orge92aaa8">
<div id="outline-container-sec-7-1" class="outline-3">
<h3 id="sec-7-1">Master Keydrive</h3>
<div class="outline-text-3" id="text-7-1">
<p>
This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">done from the <i>Disk Utility</i> application</a>. Then plug it into the Freedombone system, then from your local machine run:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ssh myusername@mydomainname -p 2222
</code></pre>
<pre class="src src-bash">ssh myusername@mydomainname -p 2222
</pre>
</div>
<p>
@ -695,16 +631,17 @@ Select <i>Administrator controls</i> then <i>Backup and Restore</i> then <i>Back
</p>
</div>
</div>
<div id="outline-container-org0e3ed8a" class="outline-3">
<h3 id="org0e3ed8a">Fragment keydrives</h3>
<div class="outline-text-3" id="text-org0e3ed8a">
<div id="outline-container-sec-7-2" class="outline-3">
<h3 id="sec-7-2">Fragment keydrives</h3>
<div class="outline-text-3" id="text-7-2">
<p>
This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">can be done from the <i>Disk Utility</i> application</a>. Plug it into the Freedombone system then from your local machine run the following commands:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ssh myusername@mydomainname -p 2222
</code></pre>
<pre class="src src-bash">ssh myusername@mydomainname -p 2222
</pre>
</div>
<p>
@ -717,45 +654,52 @@ Fragments are randomly assigned and so you will need at least three or four keyd
</div>
</div>
</div>
<div id="outline-container-org91e37f6" class="outline-2">
<h2 id="org91e37f6">On Client Machines</h2>
<div class="outline-text-2" id="text-org91e37f6">
<div id="outline-container-sec-8" class="outline-2">
<h2 id="sec-8">On Client Machines</h2>
<div class="outline-text-2" id="text-8">
<p>
You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
</p>
<div class="org-src-container">
<pre><code class="src src-bash">sudo apt-get update
<pre class="src src-bash">sudo apt-get update
sudo apt-get install git dialog haveged build-essential
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
sudo make install
freedombone-client
</code></pre>
</pre>
</div>
</div>
</div>
<div id="outline-container-org9748f8d" class="outline-2">
<h2 id="org9748f8d">Administering the system</h2>
<div class="outline-text-2" id="text-org9748f8d">
<div id="outline-container-sec-9" class="outline-2">
<h2 id="sec-9">Administering the system</h2>
<div class="outline-text-2" id="text-9">
<p>
To administer the system after installation log in via ssh, become the root user and then launch the control panel.
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ssh myusername@freedombone.local -p 2222
</code></pre>
<pre class="src src-bash">ssh myusername@freedombone.local -p 2222
</pre>
</div>
<p>
Select <i>Administrator controls</i> then from there you will be able to perform various tasks, such as backups, adding and removing users and so on. You can also do this via commands, which are typically installed as /usr/local/bin/freedombone* and the corresponding manpages.
</p>
<center>
Return to the <a href="index.html">home page</a>
</center>
<div class="export">
<p>
&lt;center&gt;
Return to the &lt;a href="index.html"&gt;home page&lt;/a&gt;
&lt;/center&gt;
</p>
</div>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-11 Wed 20:37 -->
<!-- 2018-04-12 Thu 13:10 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -145,13 +145,11 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<p>
Most people don't have a static external IP address, so you will need to have an account on a dymanic DNS service. <a href="https://freedns.afraid.org">FreeDNS</a> is the one recommended, but others are available.

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-01-29 Mon 10:18 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:16 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone mesh network"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, mesh" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,35 +144,38 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center><h1>Mesh Network</h1></center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mesh Network</h2>
<div class="outline-text-2" id="text-1">
<p>
The Freedombone Mesh is a wireless solution for autonomous or internet connected communication that can be rapidly deployed in temporary, emergency or post-disaster situations where internet access is unavailable or compromised.
</p>
<ul class="org-ul">
<li><a href="./mesh_philosophic.html">Philosophic</a></li>
<li><a href="./mesh_capabilities.html">Capabilities</a></li>
<li><a href="./mesh_images.html">Disk images and how to build them</a></li>
<li><a href="./mesh_custom.html">Customisation</a></li>
<li><a href="./mesh_usage.html">How to use it</a></li>
<li><a href="./mesh_philosophic.html">Philosophic</a>
</li>
<li><a href="./mesh_capabilities.html">Capabilities</a>
</li>
<li><a href="./mesh_images.html">Disk images and how to build them</a>
</li>
<li><a href="./mesh_custom.html">Customisation</a>
</li>
<li><a href="./mesh_usage.html">How to use it</a>
</li>
</ul>
<div class="org-center">
<div class="figure">
<p><img src="images/mesh_desktop1.png" alt="mesh_desktop1.png" />
<p><img src="images/mesh_desktop1.png" alt="mesh_desktop1.png" width="100%" align="center" />
</p>
</div>
</div>
<p>
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.
@ -282,12 +193,14 @@ Systems only need to be within wifi range of each other for the mesh to be creat
Like <a href="https://libremesh.org">LibreMesh</a>, this system uses a combination of <a href="https://en.wikipedia.org/wiki/B.A.T.M.A.N.">batman-adv</a> on network layer 2 and <a href="http://bmx6.net">BMX</a> on layer 3. Routing protocols <a href="http://www.olsr.org">OLSR2</a> and <a href="https://www.irif.fr/~jch/software/babel">Babel</a> are also selectable.
</p>
<div class="org-center">
<div class="center">
<p>
This site can also be accessed via a Tor browser at <a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a>
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<style type="text/css">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-10-27 Fri 11:40 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:11 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone mesh network capabilities"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, mesh" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,42 +144,59 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center><h1>Mesh Network: Capabilities</h1></center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mesh Network: Capabilities</h2>
<div class="outline-text-2" id="text-1">
<p>
The mesh system has the following capabilities:
</p>
<ul class="org-ul">
<li>Discovery of other users on the network</li>
<li>Text based chat, one-to-one and in groups</li>
<li>Voice chat (VoIP) and video calls</li>
<li>Private and public sharing of files</li>
<li>Blogging</li>
<li>Collaborative editing of documents and presentations</li>
<li>Creating and broadcasting audio media/podcasts</li>
<li>Social network stream. Follow/unfollow other peers</li>
<li>No network administration required</li>
<li>No servers</li>
<li>Internet connection is optional</li>
<li>Works from bootable USB drives or microSD drives</li>
<li>Data is mesh routed between systems</li>
<li>Private communications is end-to-end secured and forward secret</li>
<li>Publicly shared data is <i>content addressable</i></li>
<li>Discovery of other users on the network
</li>
<li>Text based chat, one-to-one and in groups
</li>
<li>Voice chat (VoIP) and video calls
</li>
<li>Private and public sharing of files
</li>
<li>Blogging
</li>
<li>Collaborative editing of documents and presentations
</li>
<li>Creating and broadcasting audio media/podcasts
</li>
<li>Social network stream. Follow/unfollow other peers
</li>
<li>No network administration required
</li>
<li>No servers
</li>
<li>Internet connection is optional
</li>
<li>Works from bootable USB drives or microSD drives
</li>
<li>Data is mesh routed between systems
</li>
<li>Private communications is end-to-end secured and forward secret
</li>
<li>Publicly shared data is <i>content addressable</i>
</li>
</ul>
<p>
This system should be quite scalable. Both qTox and IPFS are based upon distributed hash tables (DHT) so that each peer does not need to store the full index of data for the entire network. Gossiping between SSB peers may be slower, but the <a href="https://en.wikipedia.org/wiki/Small-world_network">small world effect</a> will presumably still make for quite efficient delivery in a large network. Caching or pinning of IPFS data and its content addressability means that if a file or blog becomes popular then performance should improve as the number of downloads increases, which is the opposite of the client/server paradigm.
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
<style type="text/css">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-10-27 Fri 11:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:12 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone mesh network customisation"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, mesh" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,16 +144,16 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center><h1>Mesh Network: Customisation</h1></center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mesh Network: Customisation</h2>
<div class="outline-text-2" id="text-1">
<p>
If you want to make your own specially branded version, such as for a particular event, then to change the default desktop backgrounds edit the images within <b>img/backgrounds</b> and to change the available avatars and desktop icons edit the images within <b>img/avatars</b>. Re-create disk images using the instructions shown previously.
</p>
@ -254,6 +162,8 @@ If you want to make your own specially branded version, such as for a particular
If you need particular <i>dconf</i> commands to alter desktop appearance or behavior then see the function <i>mesh_client_startup_applications</i> within <b>src/freedombone-image-customise</b>.
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
<style type="text/css">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-01-18 Thu 18:15 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:14 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone mesh network images"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, mesh" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,23 +144,23 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mesh Network: Images</h2>
</div>
<center><h1>Mesh Network: Images</h1></center>
<div id="outline-container-orgff89f51" class="outline-2">
<h2 id="orgff89f51">Pre-built Disk Images</h2>
<div class="outline-text-2" id="text-orgff89f51">
</div>
<div id="outline-container-orgd2bd6dc" class="outline-3">
<h3 id="orgd2bd6dc">Writing many images quickly</h3>
<div class="outline-text-3" id="text-orgd2bd6dc">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Pre-built Disk Images</h2>
<div class="outline-text-2" id="text-2">
</div><div id="outline-container-sec-2-1" class="outline-3">
<h3 id="sec-2-1">Writing many images quickly</h3>
<div class="outline-text-3" id="text-2-1">
<p>
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>.
</p>
@ -262,6 +170,7 @@ For example on Arch/Parabola:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo pacman -S gnome-multi-writer
</pre>
</div>
@ -271,6 +180,7 @@ Or on Debian based systems:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install gnome-multi-writer
</pre>
</div>
@ -280,22 +190,21 @@ The MultiWriter tool is also available within mesh client images, so that you ca
</p>
</div>
</div>
<div id="outline-container-orgaa45ffa" class="outline-3">
<h3 id="orgaa45ffa">Client images</h3>
<div class="outline-text-3" id="text-orgaa45ffa">
<div class="org-center">
<div id="outline-container-sec-2-2" class="outline-3">
<h3 id="sec-2-2">Client images</h3>
<div class="outline-text-3" id="text-2-2">
<div class="figure">
<p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" />
<p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" />
</p>
</div>
</div>
<p>
"Client" isn't exactly the right term, but it's a mesh peer with a user interface. These images can be copied to a USB drive, then you can plug it into a laptop/netbook/desktop machine and boot from it. You will probably also need an Atheros USB wifi dongle (the black protruding object on the left side of the netbook in the picture above), because most built-in wifi usually requires proprietary firmware. In the commands below substitute /dev/sdX with the USB drive device, excluding any trailing numbers (eg. /dev/sdb). The USB drive you're copying to will need to be at least 16GB in size.
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.xz
wget https://freedombone.net/downloads/current/freedombone-meshclient-i386.img.xz.sig
@ -303,8 +212,8 @@ gpg --verify freedombone-meshclient-i386.img.xz.sig
sha256sum freedombone-meshclient-i386.img.xz
49391230de6a4f1966db091813deb8f9d93c947677f5483baa52400d7fcba7d3
unxz freedombone-meshclient-i386.img.xz
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
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
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=freedombone-meshclient-i386.img of=/dev/sdX conv=fdatasync
</pre>
</div>
@ -317,6 +226,7 @@ If you're in an emergency and don't have Atheros wifi dongles then there is also
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz
wget https://freedombone.net/downloads/current/freedombone-meshclient-insecure-i386.img.xz.sig
@ -324,36 +234,35 @@ gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
sha256sum freedombone-meshclient-insecure-i386.img.xz
c11783741e66df5072ffcbef8d9b04260a2298d84e33c72fefa4bb539d094810
unxz freedombone-meshclient-insecure-i386.img.xz
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
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
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=freedombone-meshclient-insecure-i386.img of=/dev/sdX conv=fdatasync
</pre>
</div>
</div>
</div>
<div id="outline-container-org6ca93ec" class="outline-3">
<h3 id="org6ca93ec">Router images</h3>
<div class="outline-text-3" id="text-org6ca93ec">
<div id="outline-container-sec-2-3" class="outline-3">
<h3 id="sec-2-3">Router images</h3>
<div class="outline-text-3" id="text-2-3">
<p>
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.
</p>
</div>
<div id="outline-container-org69b5cfa" class="outline-4">
<h4 id="org69b5cfa">Beaglebone Black</h4>
<div class="outline-text-4" id="text-org69b5cfa">
<div class="org-center">
<div id="outline-container-sec-2-3-1" class="outline-4">
<h4 id="sec-2-3-1">Beaglebone Black</h4>
<div class="outline-text-4" id="text-2-3-1">
<div class="figure">
<p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" />
<p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" />
</p>
</div>
</div>
<p>
The above picture shows a Beaglebone Black with the image copied onto a microSD card (there's no need to do anything with the internal EMMC). A USB Atheros wifi adaptor with a large antenna is attached and in this case power is from the mains, although it could be from a battery or solar power system capable of supplying 5 volts and maybe 1A (depending upon how active the router is).
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf.img.xz
wget https://freedombone.net/downloads/current/freedombone-mesh_beaglebone-armhf.img.xz.sig
@ -361,7 +270,7 @@ gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig
sha256sum freedombone-mesh_beaglebone-armhf.img.xz
ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
unxz freedombone-mesh_beaglebone-armhf.img.xz
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
sudo dd bs=1M if=freedombone-mesh_beaglebone-armhf.img of=/dev/sdX conv=fdatasync
</pre>
</div>
@ -377,9 +286,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
</div>
</div>
<div id="outline-container-org6b309a0" class="outline-2">
<h2 id="org6b309a0">Building Disk Images</h2>
<div class="outline-text-2" id="text-org6b309a0">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Building Disk Images</h2>
<div class="outline-text-2" id="text-3">
<p>
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.
</p>
@ -389,6 +298,7 @@ First you will need to create an image. On a Debian based system (tested on Debi
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get -y install git wget build-essential
wget https://freedombone.net/downloads/current/freedombone.tar.gz
wget https://freedombone.net/downloads/current/freedombone.tar.gz.sig
@ -396,7 +306,7 @@ gpg --verify freedombone.tar.gz.sig
sha256sum freedombone.tar.gz
afbb536564140aa28c6491d45b7474ced5a0b018539ffd3e96b13b242a41792e
tar -xzvf freedombone.tar.gz
<span class="org-builtin">cd</span> freedombone
cd freedombone
git checkout stretch
sudo make install
freedombone-image --setup debian
@ -409,6 +319,7 @@ If you don't have Atheros or free software compatible wifi adapter then you can
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-image -t i386 -v meshclient --insecure yes
</pre>
</div>
@ -422,6 +333,7 @@ List what drives are on your system with:
</p>
<div class="org-src-container">
<pre class="src src-bash">ls /dev/sd*
</pre>
</div>
@ -435,8 +347,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
</pre>
</div>
@ -457,6 +370,7 @@ You can also use single board computers (SBCs) such as the BeagleBone Black to m
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-image -t beaglebone -v mesh
</pre>
</div>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-10-27 Fri 11:48 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn any laptop or a Beaglebone Black into an off-the-grid mesh peer"
<title></title>
<!-- 2018-04-12 Thu 13:17 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn any laptop or a Beaglebone Black into an off-the-grid mesh peer"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, mesh" />
<meta name="keywords" content="freedombox, debian, beaglebone, mesh" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,16 +144,16 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center><h1>Mesh Network: Philosophic</h1></center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mesh Network: Philosophic</h2>
<div class="outline-text-2" id="text-1">
<blockquote>
<p>
"<i>I see mesh networks naturally evolving to become the dominant form of network over the next few decades, because its the most practical solution to a number of problems that will have to be solved in order to build the VR web as well as to connect the entire world to the internet. Centralized networks are only possible in highly developed countries with existing infrastructures like power and telephone grids, as well as roads. You cant build a tower where you dont have either power or access. For vast areas of the world, mesh networks will be the only feasible solution.</i>" &#x2013; Valkyrie Ice
@ -255,91 +163,93 @@ for the JavaScript code in this tag.
<p>
The Freedombone mesh roughly follows MondoNet's ten social specifications:
</p>
</div>
</div>
<div id="outline-container-orgd854595" class="outline-2">
<h2 id="orgd854595">Decentralized</h2>
<div class="outline-text-2" id="text-orgd854595">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Decentralized</h2>
<div class="outline-text-2" id="text-2">
<p>
The network should not be operated, maintained, or in any way reliant upon a single or minimally differentiated set of entities or technologies. No individual, entity or group should be central to the network to the extent that their absence would measurably impact its functionality or scope. Network participation should not require access to fixed, physical infrastructure of any sort.
</p>
</div>
</div>
<div id="outline-container-org5c46858" class="outline-2">
<h2 id="org5c46858">Universally Accessible</h2>
<div class="outline-text-2" id="text-org5c46858">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Universally Accessible</h2>
<div class="outline-text-2" id="text-3">
<p>
The requisite technology and expertise required to participate in the network should be available at minimal cost and effort to every human being on the planet. Furthermore, all users should be able to extend the networks content and functionality to suit their own needs, or those of others. No aspect of the networks functioning should be reliant upon proprietary technologies, information or capital.
</p>
</div>
</div>
<div id="outline-container-org6776743" class="outline-2">
<h2 id="org6776743">Censor-proof</h2>
<div class="outline-text-2" id="text-org6776743">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Censor-proof</h2>
<div class="outline-text-2" id="text-4">
<p>
The network should be resistant to both regulatory and technical attempts to limit the nature of the information shared, restrict usage by given individuals or communities, or render the network, or any portion of it, inoperable or inaccessible.
</p>
</div>
</div>
<div id="outline-container-org0bcdf27" class="outline-2">
<h2 id="org0bcdf27">Surveillance-proof</h2>
<div class="outline-text-2" id="text-org0bcdf27">
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Surveillance-proof</h2>
<div class="outline-text-2" id="text-5">
<p>
The network should enable users to choose exactly what information they share with whom, and to participate anonymously if they so desire. Users should only have access to information if they are the designated recipients, or if it has been published openly.
</p>
</div>
</div>
<div id="outline-container-org0ed66ba" class="outline-2">
<h2 id="org0ed66ba">Secure</h2>
<div class="outline-text-2" id="text-org0ed66ba">
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Secure</h2>
<div class="outline-text-2" id="text-6">
<p>
The network should be organized in a way that minimizes the risk of malicious attacks or engineering failure. Information exchanged on the network should meet or exceed the delivery rate and reliability of information exchanged via the Internet.
</p>
</div>
</div>
<div id="outline-container-org8db594f" class="outline-2">
<h2 id="org8db594f">Scalable</h2>
<div class="outline-text-2" id="text-org8db594f">
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Scalable</h2>
<div class="outline-text-2" id="text-7">
<p>
The network should be organized with the expectation that its scale could reach or even exceed that of todays Internet. Special care should be taken to address to the challenge of maintaining efficiency without the presence of a centralized backbone.
</p>
</div>
</div>
<div id="outline-container-org0c195ed" class="outline-2">
<h2 id="org0c195ed">Permanent</h2>
<div class="outline-text-2" id="text-org0c195ed">
<div id="outline-container-sec-8" class="outline-2">
<h2 id="sec-8">Permanent</h2>
<div class="outline-text-2" id="text-8">
<p>
The networks density and redundancy should be great enough that, despite its ad hoc nature, it will persistently operate on a broad scale, and be available in full to any user within range of another peer.
</p>
</div>
</div>
<div id="outline-container-org92fc811" class="outline-2">
<h2 id="org92fc811">Fast (enough)</h2>
<div class="outline-text-2" id="text-org92fc811">
<div id="outline-container-sec-9" class="outline-2">
<h2 id="sec-9">Fast (enough)</h2>
<div class="outline-text-2" id="text-9">
<p>
The network should always achieve whatever speed is required for a “bottom line” level of social and cultural participation. At present, we assert that the networks data transfer rate should, at a minimum, be enough for voice-over-IP (VoIP) communications, and low-bitrate streaming video.
</p>
</div>
</div>
<div id="outline-container-orgf2a1737" class="outline-2">
<h2 id="orgf2a1737">Independent</h2>
<div class="outline-text-2" id="text-orgf2a1737">
<div id="outline-container-sec-10" class="outline-2">
<h2 id="sec-10">Independent</h2>
<div class="outline-text-2" id="text-10">
<p>
While the network will have the capacity to exchange information with Internet users and nodes, it should be able to operate independently, as well. A large-scale failure or closure of Internet infrastructure and content should have minimal effect on the networks operations.
</p>
</div>
</div>
<div id="outline-container-org00e52cf" class="outline-2">
<h2 id="org00e52cf">Evolvable</h2>
<div class="outline-text-2" id="text-org00e52cf">
<div id="outline-container-sec-11" class="outline-2">
<h2 id="sec-11">Evolvable</h2>
<div class="outline-text-2" id="text-11">
<p>
The network should be built with future development in mind. The platform should be flexible enough to support technologies, protocols and modes of usage that have not yet been developed.
</p>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-11-24 Fri 18:14 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Download apps for use on the mesh"
<title></title>
<!-- 2018-04-12 Thu 13:15 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Download apps for use on the mesh"
/>
<meta name="keywords" content="mesh, freedombone, apps" />
<meta name="keywords" content="mesh, freedombone, apps" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,27 +144,35 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center>
<h3>Welcome to the Freedombone Mesh</h3>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Welcome to the Freedombone Mesh</h2>
<div class="outline-text-2" id="text-1">
<p>
The following apps are available:
</center>
</p>
<center>
<table style="width:80%; border:0">
<tr>
<td><center><b><a href="ssb.apk"><img src="images/ssb.png"/></a></b><br><a href="ssb.apk">Secure Scuttlebutt</a></center></td>
<td><center><b><a href="trifa.apk"><img src="images/trifa.png"/></a></b><br><a href="trifa.apk">Tox</a></center></td>
</tr>
</table>
</center>
<div class="export">
<p>
&lt;center&gt;
&lt;table style="width:80%; border:0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;a href="ssb.apk"&gt;&lt;img src="images/ssb.png"/&gt;&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;a href="ssb.apk"&gt;Secure Scuttlebutt&lt;/a&gt;&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;a href="trifa.apk"&gt;&lt;img src="images/trifa.png"/&gt;&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;a href="trifa.apk"&gt;Tox&lt;/a&gt;&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/center&gt;
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-03-09 Fri 12:09 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:24 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone mobile setup"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, mobile" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,50 +144,55 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center>
<h1>Mobile</h1>
</center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Mobile</h2>
<div class="outline-text-2" id="text-1">
<p>
Mobile phones are insecure devices, but they're regarded as being so essential to modern life that telling people not to use them isn't a viable option. Here are some recommendations on setting up a mobile phone (aka "smartphone") to work with Freedombone.
</p>
<center>
<table style="width:80%; border:0">
<tr>
<td><center><b><h3>Open</h3></b><br>Use a free and open source operating system. Open means more trustworthy</center></td>
<td><center><b><h3>Remove</h3></b><br>If there are any proprietary apps then remove or deactivate them</center></td>
</tr>
<tr>
<td><center><b><h3>Encrypt</h3></b><br>Make sure your phone is encrypted with a password which isn't easy to guess</center></td>
<td><center><b><h3>Apps</h3></b><br>Use F-droid to install new apps</center></td>
</tr>
<tr>
<td><center><b><h3>Lock</h3></b><br>Enable a lock screen with a maximum number of password guesses</center></td>
<td><center><b><h3>Onion</h3></b><br>Onion route your connections to avoid bulk metadata collection</center></td>
</tr>
<tr>
<td><center><b><h3>Email</h3></b><br>Access webmail in a browser</center></td>
<td><center><b><h3>Services</h3></b><br>Connect to the Freedombone services</center></td>
</tr>
<tr>
<td><center><b><h3>Battery</h3></b><br>Avoid battery-eating apps and disable some optimisations</center></td>
<td><center><b><h3>Block</h3></b><br>Prevent access to know bad domains</center></td>
</tr>
</table>
</center>
<div class="export">
<p>
&lt;center&gt;
&lt;table style="width:80%; border:0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Open&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Use a free and open source operating system. Open means more trustworthy&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Remove&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;If there are any proprietary apps then remove or deactivate them&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Encrypt&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Make sure your phone is encrypted with a password which isn't easy to guess&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Apps&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Use F-droid to install new apps&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Lock&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Enable a lock screen with a maximum number of password guesses&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Onion&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Onion route your connections to avoid bulk metadata collection&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Email&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Access webmail in a browser&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Services&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Connect to the Freedombone services&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Battery&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Avoid battery-eating apps and disable some optimisations&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;&lt;b&gt;&lt;h3&gt;Block&lt;/h3&gt;&lt;/b&gt;&lt;br&gt;Prevent access to know bad domains&lt;/center&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/center&gt;
</p>
<div id="outline-container-orgbf3dadb" class="outline-2">
<h2 id="orgbf3dadb">Open</h2>
<div class="outline-text-2" id="text-orgbf3dadb">
</div>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Open</h2>
<div class="outline-text-2" id="text-2">
<p>
Use a Linux based phone operating system. Typically this will mean Android, but could also mean LineageOS or Replicant. LineageOS is the most preferable, because you can usually get an up to date image with a recent kernel which will give you better security against exploits. If you're buying a phone then look for a model which is supported by LineageOS. Replicant is the most free (as in freedom) but only runs on a small number of phone models. If you have a phone which runs a full GNU/Linux system then that's fantastic, and you can probably use it in much the same way as a desktop system and the rest of the advice on this page won't apply. If you don't have a phone capable of running a Linux based operating system then consider selling, giving away or bartering your existing one.
</p>
@ -294,27 +207,27 @@ In the end it comes down to the fact that <i>if the source code for the device c
</div>
</div>
<div id="outline-container-org2cd56a1" class="outline-2">
<h2 id="org2cd56a1">Remove</h2>
<div class="outline-text-2" id="text-org2cd56a1">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Remove</h2>
<div class="outline-text-2" id="text-3">
<p>
So maybe you're running Android and the phone came with some apps already installed. Almost certainly they'll be proprietary. Go to Settings/Apps and then uninstall or deactivate any apps which you really don't need. Mostly preinstalled apps are intended to send your data to companies who will then sell it to advertisers or governments under the business model of <i>surveillance capital</i>. It's not a good idea to get caught up in that, and to avoid becoming addicted to apps which are surveilling you without consent or installing spyware in the background without your knowledge.
</p>
</div>
</div>
<div id="outline-container-org7a5b1ec" class="outline-2">
<h2 id="org7a5b1ec">Encrypt</h2>
<div class="outline-text-2" id="text-org7a5b1ec">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Encrypt</h2>
<div class="outline-text-2" id="text-4">
<p>
Encrypt your phone. This can usually be done via <b>Settings/Security</b> and you may need to fully charge the phone first. Encryption means that if you lose your phone or it gets stolen then there is less chance that anyone who picks it up will get access to your data, photos and so on.
</p>
</div>
</div>
<div id="outline-container-orge82be24" class="outline-2">
<h2 id="orge82be24">Apps</h2>
<div class="outline-text-2" id="text-orge82be24">
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Apps</h2>
<div class="outline-text-2" id="text-5">
<p>
Installing <b>F-droid</b> and only adding any new apps via F-droid will ensure that you are always using free and open source software. Open source is not a panacea, since bugs can and do still occur, but it will help you to avoid the worst security and privacy pitfalls.
</p>
@ -325,18 +238,18 @@ Avoid using the Open Whisper Systems Signal app if you can, no matter what "expe
</div>
</div>
<div id="outline-container-orgd5b57aa" class="outline-2">
<h2 id="orgd5b57aa">Lock</h2>
<div class="outline-text-2" id="text-orgd5b57aa">
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Lock</h2>
<div class="outline-text-2" id="text-6">
<p>
Add a lock screen, preferably with a password which is not easy for other people to guess or for quicker access with a PIN number. Install an app called <b>Locker</b>, activate it and set the maximum number of password guesses to ten (or whatever you feel comfortable with). If bad people get hold of your phone then they may try to brute force your lock screen password or PIN (i.e. automatically trying millions of common word and number combinations) and the locker app will prevent them from succeeding by resetting the phone back to its factory default condition and wiping the data.
</p>
</div>
</div>
<div id="outline-container-org53d7a19" class="outline-2">
<h2 id="org53d7a19">Onion</h2>
<div class="outline-text-2" id="text-org53d7a19">
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Onion</h2>
<div class="outline-text-2" id="text-7">
<p>
Both governments and corporations want to compile matadata dossiers about you. Who you communicated with, when and how often. They want this so that they can data mine, simulate, predict and then ultimately influence (sometimes also called "nudge") your actions and preferences in the directions they prefer. By routing your connections through a number of proxy servers (Tor routers) you can make it perhaps not <i>theoretically</i> impossible but at least <i>very hard</i> for them to have a complete and accurate list of who your friends are, your religion, politics, likely health issues, sexual orientation and what news sites or books you read.
</p>
@ -347,26 +260,26 @@ In F-droid under the <b>repositories</b> menu you can enable the <b>guardian pro
</div>
</div>
<div id="outline-container-orge727228" class="outline-2">
<h2 id="orge727228">Email</h2>
<div class="outline-text-2" id="text-orge727228">
<div id="outline-container-sec-8" class="outline-2">
<h2 id="sec-8">Email</h2>
<div class="outline-text-2" id="text-8">
<p>
The easiest way to access email is by installing the <a href="./app_mailpile.html">Mailpile</a> app. This keeps your GPG keys off of possibly insecure mobile devices but still enables encrypted email communications in an easy way. You can use K9 mail if you prefer, but that will require installing OpenKeychain and having your GPG keys on the device, which is a lot more risky.
</p>
</div>
</div>
<div id="outline-container-orgaaed473" class="outline-2">
<h2 id="orgaaed473">Services</h2>
<div class="outline-text-2" id="text-orgaaed473">
<div id="outline-container-sec-9" class="outline-2">
<h2 id="sec-9">Services</h2>
<div class="outline-text-2" id="text-9">
<p>
For information on configuring various apps to work with Freedombone see the <a href="./usage.html">usage section</a>. Also see advice on chat apps in the <a href="./faq.html">FAQ</a>.
</p>
</div>
</div>
<div id="outline-container-org3937a6e" class="outline-2">
<h2 id="org3937a6e">Battery</h2>
<div class="outline-text-2" id="text-org3937a6e">
<div id="outline-container-sec-10" class="outline-2">
<h2 id="sec-10">Battery</h2>
<div class="outline-text-2" id="text-10">
<p>
Even with free software apps it's not difficult to get into a situation where your battery doesn't last for long. To maximize battery life access RSS feeds via the onion-based mobile reader within a Tor-compatible browser and not from a locally installed RSS app.
</p>
@ -385,9 +298,9 @@ It's also recommended to disable battery optimisations for Conversations and Orb
</div>
</div>
<div id="outline-container-orgfe1c6d3" class="outline-2">
<h2 id="orgfe1c6d3">Blocking bad domains</h2>
<div class="outline-text-2" id="text-orgfe1c6d3">
<div id="outline-container-sec-11" class="outline-2">
<h2 id="sec-11">Blocking bad domains</h2>
<div class="outline-text-2" id="text-11">
<p>
You can block known bad domains by editing the <b>/system/etc/hosts</b> file on your device. It is possible to use extensive ad-blocking hosts files used by other ad-blocking systems such as pi-hole, but merely blocking Facebook and Google Analytics will protect you against much of the corporate surveillance which goes on. Even if you don't have a Facebook account this may still be useful since they will still try to create a "ghost profile" of you, so the less data they have the better.
</p>
@ -405,6 +318,7 @@ On your system (not the device) install the <b>android-tools</b> package. For ex
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo pacman -S android-tools
</pre>
</div>
@ -414,6 +328,7 @@ Connect the device to your system via a USB cable, then:
</p>
<div class="org-src-container">
<pre class="src src-bash">adb root
adb remount
adb pull /system/etc/hosts
@ -425,6 +340,7 @@ Now edit the hosts file which was pulled and append:
</p>
<div class="org-src-container">
<pre class="src src-bash">127.0.0.1 www.facebook.com
127.0.0.1 facebook.com
127.0.0.1 static.ak.fbcdn.net
@ -449,6 +365,7 @@ Then upload the hosts file back again with:
</p>
<div class="org-src-container">
<pre class="src src-bash">adb push hosts /system/etc/hosts
</pre>
</div>
@ -457,9 +374,14 @@ Then upload the hosts file back again with:
Once that's done you may want to set <b>Root access</b> on the device back to <b>Disabled</b> and turn <b>Android debugging</b> off.
</p>
<center>
Return to the <a href="index.html">home page</a>
</center>
<div class="export">
<p>
&lt;center&gt;
Return to the &lt;a href="index.html"&gt;home page&lt;/a&gt;
&lt;/center&gt;
</p>
</div>
</div>
</div>
</div>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2017-07-01 Sat 11:18 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Version 3"
<!-- 2018-04-12 Thu 13:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Version 3"
/>
<meta name="keywords" content="freedombone" />
<meta name="keywords" content="freedombone" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,18 +144,16 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/release3.jpg" alt="release3.jpg" />
<p><img src="images/release3.jpg" alt="release3.jpg" width="100%" align="center" />
</p>
</div>
</div>
<center>
<h2>Building an internet run by the users, for the users</h2>
</center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Building an internet run by the users, for the users</h2>
<div class="outline-text-2" id="text-1">
<p>
The internet may still be mostly in the clutches of a few giant megacorporations and dubious governments with sketchy agendas, but it doesn't have to remain that way. With the third version of the Freedombone system there is now more scope than before to take back your privacy, have ownership of personal data and run your own online communities without undesirable intermediaries.
</p>
@ -257,18 +163,27 @@ Freedombone version 3 is based on Debian 9 (Stretch). It was released in July 20
</p>
<ul class="org-ul">
<li>Faster initial setup</li>
<li>More <a href="./apps.html">installable apps</a>, including CryptPad, Koel, NextCloud, PostActiv, Friendica and Matrix/RiotWeb</li>
<li>Automated <a href="https://github.com/hardenedlinux/STIG-4-Debian">security tests</a></li>
<li>Improved XMPP configuration for support of the <a href="https://conversations.im">Conversations</a> app features</li>
<li>Improved blocking controls for a better federated network experience</li>
<li>Uses <a href="https://en.wikipedia.org/wiki/EdDSA">elliptic curve</a> based GPG keys for better performance on low power single board computers</li>
<li>Pre-downloaded repos distributed within images for faster and more autonomous app installs</li>
<li>Faster initial setup
</li>
<li>More <a href="./apps.html">installable apps</a>, including CryptPad, Koel, NextCloud, PostActiv, Friendica and Matrix/RiotWeb
</li>
<li>Automated <a href="https://github.com/hardenedlinux/STIG-4-Debian">security tests</a>
</li>
<li>Improved XMPP configuration for support of the <a href="https://conversations.im">Conversations</a> app features
</li>
<li>Improved blocking controls for a better federated network experience
</li>
<li>Uses <a href="https://en.wikipedia.org/wiki/EdDSA">elliptic curve</a> based GPG keys for better performance on low power single board computers
</li>
<li>Pre-downloaded repos distributed within images for faster and more autonomous app installs
</li>
</ul>
</div>
</div>
<div id="outline-container-orge254bfd" class="outline-2">
<h2 id="orge254bfd">Installation</h2>
<div class="outline-text-2" id="text-orge254bfd">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Installation</h2>
<div class="outline-text-2" id="text-2">
<p>
The simplest way to install is from a pre-made disk image. Images can be <a href="https://freedombone.net/downloads/v3">downloaded here</a>. You will need to have previously obtained a domain name and have a dynamic DNS account somewhere.
</p>
@ -278,9 +193,10 @@ Copy the image to a microSD card or USB thumb drive, replacing sdX with the iden
</p>
<div class="org-src-container">
<pre><code class="src src-bash">unxz downloadedimagefile.img.xz
dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=downloadedimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
</code></pre>
<pre class="src src-bash">unxz downloadedimagefile.img.xz
dd bs=1M if=downloadedimagefile.img of=/dev/sdX conv=fdatasync
</pre>
</div>
<p>
@ -296,9 +212,10 @@ As the system boots for the first time the login is:
</p>
<div class="org-src-container">
<pre><code class="src src-bash">username: fbone
<pre class="src src-bash">username: fbone
password: freedombone
</code></pre>
</pre>
</div>
<p>
@ -306,8 +223,9 @@ If you're installing from a microSD card on a single board computer without a sc
</p>
<div class="org-src-container">
<pre><code class="src src-bash">ssh fbone@freedombone.local -p 2222
</code></pre>
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre>
</div>
<p>
@ -324,9 +242,9 @@ More detailed installation instructions are linked from <a href="./index.html">t
</div>
</div>
<div id="outline-container-org61a3b7b" class="outline-2">
<h2 id="org61a3b7b">Upgrading from a previous install</h2>
<div class="outline-text-2" id="text-org61a3b7b">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Upgrading from a previous install</h2>
<div class="outline-text-2" id="text-3">
<p>
To upgrade from the Debian Jessie version first create a master keydrive. Go to the <b>Administrator control panel</b> and select <b>Backup and restore</b> then <b>Backup GPG key to USB (master keydrive)</b>. Insert a LUKS encrypted USB drive. When that is done Create a full backup by selecting <b>Backup data to USB drive</b> and using another LUKS encrypted USB drive.
</p>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-10 Sat 20:54 -->
<!-- 2018-04-12 Thu 13:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -145,13 +145,11 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Authentication with keys</h2>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-13 Tue 14:01 -->
<!-- 2018-04-12 Thu 13:27 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -145,23 +145,15 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<div class="export">
<p>
<center>
<h1>Social Instance</h1>
</center>
</p>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Social Instance</h2>
<div class="outline-text-2" id="text-1">
<p>
A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
</p>
@ -182,10 +174,12 @@ A social instance image allows you to easily set up a fediverse server, which fe
<p>
The installation process is the same as usual, with the only difference being that on initial setup it will go straight to the domain setup details for your instance. In summary:
</p>
</div>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Copy the image to the USB drive</h2>
<div class="outline-text-2" id="text-1">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Copy the image to the USB drive</h2>
<div class="outline-text-2" id="text-2">
<p>
Substitute <b>sdX</b> with the device name for your USB drive.
</p>
@ -208,60 +202,54 @@ Also note that if the laptop has a removable SSD drive it's possible to copy the
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Connect the laptop to your internet router</h2>
<div class="outline-text-2" id="text-2">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Connect the laptop to your internet router</h2>
<div class="outline-text-2" id="text-3">
<p>
Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
</p>
<div class="center">
<div class="figure">
<p><img src="images/laptop_router.jpg" alt="laptop_router.jpg" />
<p><img src="images/laptop_router.jpg" alt="laptop_router.jpg" width="100%" align="center" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Boot the laptop from the USB drive</h2>
<div class="outline-text-2" id="text-3">
<p>
You may need to alter the BIOS settings to get this to work reliably.
</p>
<div class="center">
<div class="figure">
<p><img src="images/bios_boot_usb.jpg" alt="bios_boot_usb.jpg" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
<h2 id="sec-4">Boot the laptop from the USB drive</h2>
<div class="outline-text-2" id="text-4">
<p>
Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
You may need to alter the BIOS settings to get this to work reliably.
</p>
<div class="center">
<div class="figure">
<p><img src="images/port_forwarding.png" alt="port_forwarding.png" />
<p><img src="images/bios_boot_usb.jpg" alt="bios_boot_usb.jpg" width="100%" align="center" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">From another machine ssh into the laptop</h2>
<h2 id="sec-5">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
<div class="outline-text-2" id="text-5">
<p>
Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
</p>
<div class="figure">
<p><img src="images/port_forwarding.png" alt="port_forwarding.png" width="100%" align="center" />
</p>
</div>
</div>
</div>
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">From another machine ssh into the laptop</h2>
<div class="outline-text-2" id="text-6">
<div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
@ -274,44 +262,40 @@ Or alternatively you can log in directly on the laptop. The initial username is
</div>
</div>
<div id="outline-container-sec-6" class="outline-2">
<h2 id="sec-6">Follow the setup procedure</h2>
<div class="outline-text-2" id="text-6">
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">Follow the setup procedure</h2>
<div class="outline-text-2" id="text-7">
<p>
Enter your user details, domain name and dynamic DNS settings.
</p>
</div>
</div>
<div id="outline-container-sec-7" class="outline-2">
<h2 id="sec-7">When installation is complete</h2>
<div class="outline-text-2" id="text-7">
<div id="outline-container-sec-8" class="outline-2">
<h2 id="sec-8">When installation is complete</h2>
<div class="outline-text-2" id="text-8">
<p>
Navigate to your domain and register a new user.
</p>
<div class="center">
<div class="figure">
<p><img src="images/pleroma_register.jpg" alt="pleroma_register.jpg" />
<p><img src="images/pleroma_register.jpg" alt="pleroma_register.jpg" width="100%" align="center" />
</p>
</div>
</div>
<p>
More details about setting up and using Pleroma <a href="./app_pleroma.html">can be found here</a>.
</p>
<div class="center">
<div class="figure">
<p><img src="images/tusky.jpg" alt="tusky.jpg" />
<p><img src="images/tusky.jpg" alt="tusky.jpg" width="50%" align="center" />
</p>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<style type="text/css">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-02-20 Tue 11:19 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<title></title>
<!-- 2018-04-12 Thu 13:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="How to support the Freedombone project"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, support" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,21 +144,20 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Support</h2>
</div>
<center>
<h1>Support</h1>
</center>
<div id="outline-container-org96625f0" class="outline-2">
<h2 id="org96625f0">Contact details</h2>
<div class="outline-text-2" id="text-org96625f0">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Contact details</h2>
<div class="outline-text-2" id="text-2">
<p>
This site can also be accessed via a Tor browser at <b><a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a></b>
</p>
@ -277,22 +184,21 @@ This site can also be accessed via a Tor browser at <b><a href="http://yjxlc3imv
</div>
</div>
<div id="outline-container-orgf7837ec" class="outline-2">
<h2 id="orgf7837ec">Things which would be nice to have</h2>
<div class="outline-text-2" id="text-orgf7837ec">
</div>
<div id="outline-container-orgff56304" class="outline-3">
<h3 id="orgff56304">Ideas</h3>
<div class="outline-text-3" id="text-orgff56304">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Things which would be nice to have</h2>
<div class="outline-text-2" id="text-3">
</div><div id="outline-container-sec-3-1" class="outline-3">
<h3 id="sec-3-1">Ideas</h3>
<div class="outline-text-3" id="text-3-1">
<p>
Know of some fabulous web system which could run on Freedombone, but currently doesn't? Contact the above, and be prepared to make a compelling argument for why it should be included.
</p>
</div>
</div>
<div id="outline-container-org2a3b4c0" class="outline-3">
<h3 id="org2a3b4c0">Money</h3>
<div class="outline-text-3" id="text-org2a3b4c0">
<div id="outline-container-sec-3-2" class="outline-3">
<h3 id="sec-3-2">Money</h3>
<div class="outline-text-3" id="text-3-2">
<p>
At the present time this project is not seeking any funding. There is no crowdfunding campaign and no slick marketing video. Those aren't ruled out as future possibilities, but for now they're just not needed.
</p>
@ -303,42 +209,41 @@ If you find this project useful then you may wish to consider donating to <a hre
</div>
</div>
<div id="outline-container-org0aab630" class="outline-3">
<h3 id="org0aab630">Testing and reporting bugs</h3>
<div class="outline-text-3" id="text-org0aab630">
<div id="outline-container-sec-3-3" class="outline-3">
<h3 id="sec-3-3">Testing and reporting bugs</h3>
<div class="outline-text-3" id="text-3-3">
<p>
Testing of the install on different hardware. Also pentesting on test installations to find vulnerabilities.
</p>
</div>
</div>
<div id="outline-container-org9f29739" class="outline-3">
<h3 id="org9f29739">Web design and artwork</h3>
<div class="outline-text-3" id="text-org9f29739">
<div id="outline-container-sec-3-4" class="outline-3">
<h3 id="sec-3-4">Web design and artwork</h3>
<div class="outline-text-3" id="text-3-4">
<p>
A better design for this website would be nice to have. Photos, icons or other artwork are all welcome. I've always liked the cartoon artwork of the <a href="https://www.mediagoblin.org/">Mediagoblin</a> project, and attractive graphics can help to get people initially interested.
</p>
</div>
</div>
<div id="outline-container-org73db84c" class="outline-3">
<h3 id="org73db84c">Howto videos</h3>
<div class="outline-text-3" id="text-org73db84c">
<div id="outline-container-sec-3-5" class="outline-3">
<h3 id="sec-3-5">Howto videos</h3>
<div class="outline-text-3" id="text-3-5">
<p>
If you're good at making videos then a howto for installing Freedombone onto various types of hardware, or testing the mesh system in realistic/exotic scenarios would be good. You could even host videos on PeerTube or Mediagoblin.
</p>
</div>
</div>
<div id="outline-container-org34d84b9" class="outline-3">
<h3 id="org34d84b9">More education and promotion</h3>
<div class="outline-text-3" id="text-org34d84b9">
<div class="org-center">
<div id="outline-container-sec-3-6" class="outline-3">
<h3 id="sec-3-6">More education and promotion</h3>
<div class="outline-text-3" id="text-3-6">
<div class="figure">
<p><img src="./images/educate.png" alt="educate.png" />
<p><img src="./images/educate.png" alt="educate.png" width="50%" align="center" />
</p>
</div>
</div>
<p>
Many people are unaware that running their own internet services <i>is even a possibility</i>. Many also believe that internet services can be provided only if they're supported by advertising or donations, and that only gigantic data centres have enough computing capacity to serve web pages on a worldwide scale. Others may be fearful of encryption due to misrepresentations or misunderstandings of it in the mainstream media. Some may be intimidated by the apparent complexity and think that you need to be some sort of silicon valley genius in order to run a web service on your own. Even many technically-minded folks often believe that they can't run a home server unless they have a static IP address, which isn't true, and others are put off by thinking that any such server will be immediately <a href="https://en.wikipedia.org/wiki/Pwn">pwned</a> by blackhat hackers.
</p>
@ -349,25 +254,30 @@ Raising awareness beyond the near zero current level, overcoming fear and parano
</div>
</div>
<div id="outline-container-orgb28d5fb" class="outline-3">
<h3 id="orgb28d5fb">Translations</h3>
<div class="outline-text-3" id="text-orgb28d5fb">
<div id="outline-container-sec-3-7" class="outline-3">
<h3 id="sec-3-7">Translations</h3>
<div class="outline-text-3" id="text-3-7">
<p>
To add translations modify the json files within the <b>locale</b> subdirectory. Then make a pull request on the <a href="https://github.com/bashrc/freedombone">Github site</a>.
</p>
</div>
</div>
<div id="outline-container-org6dfbb85" class="outline-3">
<h3 id="org6dfbb85">Packaging</h3>
<div class="outline-text-3" id="text-org6dfbb85">
<div id="outline-container-sec-3-8" class="outline-3">
<h3 id="sec-3-8">Packaging</h3>
<div class="outline-text-3" id="text-3-8">
<p>
Helping to package GNU Social and Hubzilla for Debian would be beneficial.
</p>
<center>
Return to the <a href="index.html">home page</a>
</center>
<div class="export">
<p>
&lt;center&gt;
Return to the &lt;a href="index.html"&gt;home page&lt;/a&gt;
&lt;/center&gt;
</p>
</div>
</div>
</div>
</div>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2016-12-25 Sun 11:58 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<!-- 2018-04-12 Thu 13:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="How to use the Freedombone system"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, hubzilla, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,110 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -179,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -235,139 +144,140 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<div class="org-center">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<center>
<h1>Usage</h1>
</center>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Usage</h2>
<div class="outline-text-2" id="text-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="left" />
</colgroup>
<tbody>
<tr>
<td class="org-left"><a href="#orgc3c6c7f">Improving security</a></td>
<td class="left"><a href="#sec-2">Improving security</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org6449633">Administrating the system via an onion address (Tor)</a></td>
<td class="left"><a href="#sec-3">Administrating the system via an onion address (Tor)</a></td>
</tr>
<tr>
<td class="org-left"><a href="./mobile.html">Mobile advice</a></td>
<td class="left"><a href="./mobile.html">Mobile advice</a></td>
</tr>
<tr>
<td class="org-left"><a href="./usage_email.html">Using Email</a></td>
<td class="left"><a href="./usage_email.html">Using Email</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_syncthing.html">Syncing to the Cloud</a></td>
<td class="left"><a href="./app_syncthing.html">Syncing to the Cloud</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_dlna.html">Play Music</a></td>
<td class="left"><a href="./app_dlna.html">Play Music</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_gnusocial.html">Microblogging (GNU Social)</a></td>
<td class="left"><a href="./app_gnusocial.html">Microblogging (GNU Social)</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_postactiv.html">Microblogging (PostActiv)</a></td>
<td class="left"><a href="./app_postactiv.html">Microblogging (PostActiv)</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_ghost.html">Blogging with Ghost</a></td>
<td class="left"><a href="./app_ghost.html">Blogging with Ghost</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_htmly.html">Blogging with HTMLy</a></td>
<td class="left"><a href="./app_htmly.html">Blogging with HTMLy</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_hubzilla.html">Social Network</a></td>
<td class="left"><a href="./app_hubzilla.html">Social Network</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_lychee.html">Photo albums</a></td>
<td class="left"><a href="./app_lychee.html">Photo albums</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_mediagoblin.html">Hosting video and audio content</a></td>
<td class="left"><a href="./app_mediagoblin.html">Hosting video and audio content</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_dokuwiki.html">Wiki</a></td>
<td class="left"><a href="./app_dokuwiki.html">Wiki</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_etherpad.html">Collaborative document editing</a></td>
<td class="left"><a href="./app_etherpad.html">Collaborative document editing</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_irc.html">Multi-user chat with IRC</a></td>
<td class="left"><a href="./app_irc.html">Multi-user chat with IRC</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_xmpp.html">XMPP/Jabber</a></td>
<td class="left"><a href="./app_xmpp.html">XMPP/Jabber</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_tox.html">Tox</a></td>
<td class="left"><a href="./app_tox.html">Tox</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_mumble.html">Mumble</a></td>
<td class="left"><a href="./app_mumble.html">Mumble</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_mailpile.jtml">Mailpile</a></td>
<td class="left"><a href="./app_mailpile.jtml">Mailpile</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_rss.html">RSS Reader</a></td>
<td class="left"><a href="./app_rss.html">RSS Reader</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_radicale.html">CalDAV calendar server</a></td>
<td class="left"><a href="./app_radicale.html">CalDAV calendar server</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_gogs.html">Git Projects</a></td>
<td class="left"><a href="./app_gogs.html">Git Projects</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org12697d1">Adding or removing users</a></td>
<td class="left"><a href="#sec-4">Adding or removing users</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_pihole.html">Blocking Ads</a></td>
<td class="left"><a href="./app_pihole.html">Blocking Ads</a></td>
</tr>
<tr>
<td class="org-left"><a href="./app_turtl.html">Making and sharing notes and images</a></td>
<td class="left"><a href="./app_turtl.html">Making and sharing notes and images</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgc3c6c7f" class="outline-2">
<h2 id="orgc3c6c7f">Improving security</h2>
<div class="outline-text-2" id="text-orgc3c6c7f">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Improving security</h2>
<div class="outline-text-2" id="text-2">
<p>
It's a lot more secure to log in to the Freedombone system using ssh keys rather than with a password. You can set that up by first running:
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
</pre>
</div>
@ -389,14 +299,15 @@ You'll need to make sure that you have a copy of the ~/.ssh directory on your lo
</p>
</div>
</div>
<div id="outline-container-org6449633" class="outline-2">
<h2 id="org6449633">Administrating the system via an onion address (Tor)</h2>
<div class="outline-text-2" id="text-org6449633">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Administrating the system via an onion address (Tor)</h2>
<div class="outline-text-2" id="text-3">
<p>
You can also access your system via the Tor system using an onion address. To find out what the onion address for ssh access is you can do the following:
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh username@freedombone.local -p 2222
</pre>
</div>
@ -406,6 +317,7 @@ Select <i>Administrator controls</i> then select "About this system" and look fo
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
</pre>
</div>
@ -415,6 +327,7 @@ This will set up your ssh environment to be able to handle onion addresses. Then
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh username@address.onion -p 2222
</pre>
</div>
@ -424,14 +337,15 @@ Subsequently even if dynamic DNS isn't working you may still be able to administ
</p>
</div>
</div>
<div id="outline-container-org12697d1" class="outline-2">
<h2 id="org12697d1">Adding or removing users</h2>
<div class="outline-text-2" id="text-org12697d1">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Adding or removing users</h2>
<div class="outline-text-2" id="text-4">
<p>
Log into the system with:
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh username@domainname -p 2222
</pre>
</div>
@ -441,6 +355,7 @@ Select <b>Administrator controls</b> then <b>User Management</b>. Depending upon
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo su
control
</pre>
@ -448,7 +363,7 @@ control
<div class="figure">
<p><img src="images/controlpanel/control_panel_manage_users.jpg" alt="control_panel_manage_users.jpg" />
<p><img src="images/controlpanel/control_panel_manage_users.jpg" alt="control_panel_manage_users.jpg" width="80%" align="center" />
</p>
</div>
</div>

View File

@ -4,13 +4,13 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-10 Sat 21:40 -->
<!-- 2018-04-12 Thu 13:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<meta name="description" content="How to use email on Freedombone"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, hubzilla, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, email" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center; }
@ -145,13 +145,11 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -283,13 +281,11 @@ exit
<div id="outline-container-sec-5" class="outline-2">
<h2 id="sec-5">Mutt email client</h2>
<div class="outline-text-2" id="text-5">
<div class="center">
<div class="figure">
<p><img src="./images/mutt.jpeg" alt="mutt.jpeg" />
<p><img src="./images/mutt.jpeg" alt="mutt.jpeg" width="80%" align="center" />
</p>
</div>
</div>
<p>
Mutt is a terminal based email client which comes already installed onto the Freedombone. To access it you'll need to access it via ssh with:

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-10 Sat 20:58 -->
<!-- 2018-04-12 Thu 13:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -145,13 +145,11 @@ for the JavaScript code in this tag.
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" />
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
</div>
<p>
Log into the system with:
@ -169,7 +167,7 @@ Select <b>Administrator controls</b> then <b>User Management</b>.
<div class="figure">
<p><img src="images/controlpanel/control_panel_manage_users.jpg" alt="control_panel_manage_users.jpg" />
<p><img src="images/controlpanel/control_panel_manage_users.jpg" alt="control_panel_manage_users.jpg" width="80%" align="center" />
</p>
</div>
</div>