This commit is contained in:
Bob Mottram 2017-09-17 13:28:35 +01:00
commit 4b5dd72c22
11 changed files with 285 additions and 208 deletions

View File

@ -24,6 +24,7 @@
| [[Why not support building images for Raspberry Pi?]] |
| [[Why use Tor? I've heard it's used by bad people]] |
| [[How is Tor integrated with Freedombone?]] |
| [[Can I add a clearnet domain to an onion build?]] |
| [[Why use Github?]] |
| [[Keys and emails should not be stored on servers. Why do you do that?]] |
| [[./mirrors.html][I have a question about mirrors or upstream repositories]] |
@ -100,6 +101,8 @@ Tor is installed by default, but it's not configured as a relay or exit node. Fr
When you install an app you will be able to access it from its onion address.
Even if you're running the "onion only" build, this only means that sites are accessible via onion addresses. It doesn't mean that everything gets routed through Tor. If full anonymity is your aim then it's probably a good idea to just stick strictly to using TAILS.
* Can I add a clearnet domain to an onion build?
You could if you manually edited the relevant nginx configuration files and installed some dynamic DNS system yourself. If you already have sysadmin knowledge then that's probably not too hard. But the builds created with the *onion-addresses-only* option aren't really intended to support access via clearnet domains.
* Why use Github?
Github is paradoxically a centralized, closed and proprietary system which happens to mostly host free and open source projects. Up until now it has been relatively benign, but at some point in the name of "growth" it will likely start becoming more evil, or just become like SourceForge - which was also once much loved by FOSS developers, but turned into a den of malvertizing.

View File

@ -74,6 +74,7 @@ Now plug in the USB thumb drive, and do the same again. Notice which drive lette
You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
#+begin_src bash
dd if=/dev/zero of=/dev/sdX bs=1M count=8
dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
#+end_src

View File

@ -73,6 +73,7 @@ gpg --verify freedombone-meshclient-3_all-i386.img.xz.sig
sha256sum freedombone-meshclient-3_all-i386.img.xz
74f9eaad479f84d3bf9cb002067074d35a97028145e781c5746c74577f777ee5
unxz freedombone-meshclient-3_all-i386.img.xz
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=freedombone-meshclient-3_all-i386.img of=/dev/sdX conv=fdatasync
#+end_src
@ -88,6 +89,7 @@ gpg --verify freedombone-meshclient-insecure-3_all-i386.img.xz.sig
sha256sum freedombone-meshclient-insecure-3_all-i386.img.xz
f1c5df24a4bfca47bd5c41dfd2568925e63a1abf83aecf0250480b4b8edc071d
unxz freedombone-meshclient-insecure-3_all-i386.img.xz
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=freedombone-meshclient-insecure-3_all-i386.img of=/dev/sdX conv=fdatasync
#+end_src
@ -154,6 +156,7 @@ Now plug in the USB thumb drive, and do the same again. Notice which drive lette
You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
#+begin_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
#+end_src

View File

@ -34,7 +34,7 @@ IN_DEFAULT_INSTALL=0
SHOW_ON_ABOUT=0
IPFS_GO_REPO_BASE="github.com/ipfs/go-ipfs"
IPFS_GO_REPO='https://github.com/ipfs/go-ipfs'
IPFS_GO_REPO="https://$IPFS_GO_REPO_BASE"
IPFS_COMMIT='6fdfaaf6e4783ae1be7b348e7a6bc0640982c7df'
IPFS_PORT=4001
IPFS_NODE_VERSION='6.2.2'

View File

@ -544,7 +544,7 @@ if [[ $VARIANT == 'meshclient' || $VARIANT == 'meshusb' ]]; then
fi
if [ ! $IMAGE_SIZE_SPECIFIED ]; then
IMAGE_SIZE=7.8G
IMAGE_SIZE=7.5G
fi
fi
@ -700,6 +700,7 @@ if [[ $IMAGE_TYPE != "qemu"* ]]; then
fi
echo ''
echo " unxz -k ${PROJECT_NAME}*.img.xz"
echo ' sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8'
echo " sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
echo ''
fi

View File

@ -561,6 +561,35 @@ INSTALL_DIR=$HOME/build
INSTALLING_MESH=
PATCHWORK_REPO="https://github.com/ssbc/patchwork"
PATCHWORK_COMMIT='60111a9e3385d65be0d17aa0d15fd20e5fb311ce'
install_patchwork() {
get_npm_arch
git clone $PATCHWORK_REPO $rootdir/etc/patchwork
cd $rootdir/etc/patchwork
git checkout $PATCHWORK_COMMIT -b $PATCHWORK_COMMIT
cat <<EOF > $rootdir/usr/bin/install_patchwork
#!/bin/bash
cd /etc/patchwork
npm install --arch=$NPM_ARCH --build-from-source
npm install --arch=$NPM_ARCH --save-dev electron-rebuild
./node_modules/.bin/electron-rebuild
npm install --arch=$NPM_ARCH git-ssb
EOF
chroot "$rootdir" /bin/chmod +x /usr/bin/install_patchwork
chroot "$rootdir" /usr/bin/install_patchwork
if [ ! -f /usr/bin/patchwork ]; then
if [ ! -f /usr/local/bin/patchwork ]; then
echo $'Unable to install SSB Patchwork peer'
exit 783524
fi
fi
rm $rootdir/usr/bin/install_patchwork
}
initialise_mesh() {
if [[ $VARIANT != "mesh"* ]]; then
return
@ -597,6 +626,7 @@ initialise_mesh() {
install_tomb
#install_tahoelafs
#install_librevault
install_patchwork
install_ipfs
install_tox
install_web_server
@ -1463,12 +1493,12 @@ admin_user_sudo
create_generic_image
atheros_wifi
continue_installation
image_install_nodejs
initialise_mesh
configure_wifi
configure_user_interface
image_setup_utils
image_install_inadyn
image_install_nodejs
image_preinstall_repos
# remove downloaded packages

View File

@ -155,6 +155,9 @@ function stop {
iptables -D INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
iptables -D INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
iptables -D INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
# SSB/Patchwork
iptables -D INPUT -p udp --dport 8008 -j ACCEPT
iptables -D INPUT -p tcp --dport 8008 -j ACCEPT
systemctl restart network-manager
}
@ -307,6 +310,9 @@ function start {
iptables -A INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
iptables -A INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
# SSB/Patchwork
iptables -A INPUT -p udp --dport 8008 -j ACCEPT
iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
systemctl restart avahi-daemon

View File

@ -35,7 +35,7 @@ VARIANTS='mesh'
# change these versions at your peril. Things will often crash if you don't
# have specifically the correct versions
NODEJS_VERSION='6.10.1'
NODEJS_VERSION='6.11.3'
NODEJS_N_VERSION='2.1.7'
NPM_VERSION='4.0.5'
@ -43,40 +43,57 @@ NPM_VERSION='4.0.5'
# so that it can be removed if tere are no apps which need it
NODEJS_INSTALLED_APPS_FILE=$HOME/.nodejs-apps
function get_npm_arch {
N_ARCH='x86'
NPM_ARCH='ia32'
if [[ $ARCHITECTURE == 'arm'* ]]; then
NPM_ARCH='armv7l'
N_ARCH='arm'
fi
if [[ $ARCHITECTURE == 'x86_64' || $ARCHITECTURE == 'amd64' ]]; then
NPM_ARCH='x64'
N_ARCH='x64'
fi
}
function mesh_install_nodejs {
# Note: this has to be jessie for now
wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key > ${rootdir}/root/node.gpg.key
chroot "${rootdir}" apt-key add /root/node.gpg.key
echo "deb https://deb.nodesource.com/node_6.x jessie main" > ${rootdir}/etc/apt/sources.list.d/nodesource.list
echo "deb-src https://deb.nodesource.com/node_6.x jessie main" >> ${rootdir}/etc/apt/sources.list.d/nodesource.list
chroot "${rootdir}" apt-get update
chroot "${rootdir}" apt-get -yq install nodejs curl
chroot "$rootdir" apt-get -yq install g++ m4 libtool automake nodejs curl
chroot "$rootdir" apt-get -yq install libxext-dev libxtst-dev libxkbfile-dev
if [ ! -f ${rootdir}/usr/bin/nodejs ]; then
echo $'nodejs was not installed'
exit 63962
fi
# TODO this doesn't work
# cat <<EOF > ${rootdir}/root/install-nodejs.sh
##!/bin/bash
#npm install -g npm@${NPM_VERSION} --save
#npm install -g n@${NODEJS_N_VERSION} --save
#n ${NODEJS_VERSION}
#npm install -g pug@2.0.0-beta6 --save
#npm install -g graceful-fs@4.1.10 --save
#npm install -g minimatch@3.0.3 --save
#npm install -g npm@${NPM_VERSION} --save
#cp /usr/local/bin/node /usr/bin/nodejs
#cp /usr/local/bin/npm /usr/bin/npm
#EOF
# chroot "${rootdir}" chmod +x /root/install-nodejs.sh
# chroot "${rootdir}" /root/install-nodejs.sh
# if [ ! "$?" = "0" ]; then
# chroot "${rootdir}" rm -f /root/install-nodejs.sh
# exit 7632572
# fi
# chroot "${rootdir}" rm -f /root/install-nodejs.sh
if [ -f $rootdir/usr/bin/nodejs ]; then
cp $rootdir/usr/bin/nodejs $rootdir/usr/bin/node
fi
if [ ! -f $rootdir/usr/bin/node ]; then
echo $'/usr/bin/node not found'
exit 7235728
fi
wget https://www.npmjs.com/install.sh -O $rootdir/root/npm_install.sh
if [ ! -f $rootdir/root/npm_install.sh ]; then
echo $'Unable to download npm installer'
exit 8793636
fi
chroot "$rootdir" chmod +x /root/npm_install.sh
sed -i "s|t=\"\${npm_install}\"|t=\"$NPM_VERSION\"|g" $rootdir/root/npm_install.sh
chroot "$rootdir" /root/npm_install.sh
if [ ! -f $rootdir/usr/bin/npm ]; then
echo $'npm was not installed'
exit 5290462
fi
cp $rootdir/usr/bin/npm $rootdir/root/npm
# update from the old debian nodejs version
get_npm_arch
chroot "$rootdir" npm install --arch=$NPM_ARCH -g n@${NODEJS_N_VERSION} --save
chroot "$rootdir" n --arch $N_ARCH ${NODEJS_VERSION}
cp $rootdir/root/npm $rootdir/usr/bin/npm
}
function remove_nodejs {

View File

@ -3,7 +3,7 @@
"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-09-12 Tue 11:53 -->
<!-- 2017-09-15 Fri 10:29 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
@ -257,35 +257,39 @@ for the JavaScript code in this tag.
</colgroup>
<tbody>
<tr>
<td class="org-left"><a href="#orge4d28e6">What applications are supported?</a></td>
<td class="org-left"><a href="#orgbbb3441">What applications are supported?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org059603a">I don't have a static IP address. Can I still install this system?</a></td>
<td class="org-left"><a href="#orgd634a7c">I don't have a static IP address. Can I still install this system?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgce17fc3">Why Freedombone and not FreedomBox?</a></td>
<td class="org-left"><a href="#org88331dc">Why Freedombone and not FreedomBox?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org9455df3">Why not support building images for Raspberry Pi?</a></td>
<td class="org-left"><a href="#orgc55c3a9">Why not support building images for Raspberry Pi?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org78b57eb">Why use Tor? I've heard it's used by bad people</a></td>
<td class="org-left"><a href="#orga017b02">Why use Tor? I've heard it's used by bad people</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org4b81ba4">How is Tor integrated with Freedombone?</a></td>
<td class="org-left"><a href="#org249c744">How is Tor integrated with Freedombone?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgb1114e4">Why use Github?</a></td>
<td class="org-left"><a href="#org7cecca6">Can I add a clearnet domain to an onion build?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgbc22fb9">Keys and emails should not be stored on servers. Why do you do that?</a></td>
<td class="org-left"><a href="#org851c64e">Why use Github?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgf317597">Keys and emails should not be stored on servers. Why do you do that?</a></td>
</tr>
<tr>
@ -293,103 +297,103 @@ for the JavaScript code in this tag.
</tr>
<tr>
<td class="org-left"><a href="#org3de928d">Why can't I access my .onion site with a Tor browser?</a></td>
<td class="org-left"><a href="#org01f5e64">Why can't I access my .onion site with a Tor browser?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org90bb4b5">What is the best hardware to run this system on?</a></td>
<td class="org-left"><a href="#org38cbf46">What is the best hardware to run this system on?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgd28e6f4">Can I add more users to the system?</a></td>
<td class="org-left"><a href="#orgcce0278">Can I add more users to the system?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org4f21c19">Why not use Signal for mobile chat?</a></td>
<td class="org-left"><a href="#org101140b">Why not use Signal for mobile chat?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgfe6470e">What is the most secure chat app to use on mobile?</a></td>
<td class="org-left"><a href="#org8b50dde">What is the most secure chat app to use on mobile?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org6813023">How do I remove a user from the system?</a></td>
<td class="org-left"><a href="#org20eaffc">How do I remove a user from the system?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org9ba4b0e">Why is logging for web sites turned off by default?</a></td>
<td class="org-left"><a href="#org209f0d6">Why is logging for web sites turned off by default?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orge39d7dd">How do I reset the tripwire?</a></td>
<td class="org-left"><a href="#orga16e12a">How do I reset the tripwire?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgad498c1">Is metadata protected?</a></td>
<td class="org-left"><a href="#orgf085eb1">Is metadata protected?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgaf26822">How do I create email processing rules?</a></td>
<td class="org-left"><a href="#org20694ec">How do I create email processing rules?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org584e155">Why isn't dynamic DNS working?</a></td>
<td class="org-left"><a href="#orgf194d33">Why isn't dynamic DNS working?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgca8c34e">How do I change my encryption settings?</a></td>
<td class="org-left"><a href="#org04c8e6a">How do I change my encryption settings?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org9742108">How do I get a domain name?</a></td>
<td class="org-left"><a href="#org4756925">How do I get a domain name?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org3ba4e5b">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
<td class="org-left"><a href="#org0580486">How do I get a "real" SSL/TLS/HTTPS certificate?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgf99af92">How do I renew a Let's Encrypt certificate?</a></td>
<td class="org-left"><a href="#org689608f">How do I renew a Let's Encrypt certificate?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org64e189a">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
<td class="org-left"><a href="#org00c9fac">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org896c14a">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
<td class="org-left"><a href="#org7f1159a">Why not use the services of $company instead? They took the Seppuku pledge</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org1f1886b">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
<td class="org-left"><a href="#org5459287">Why does my email keep getting rejected as spam by Gmail/etc?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org51d8596">Tor is censored/blocked in my area. What can I do?</a></td>
<td class="org-left"><a href="#org108fab6">Tor is censored/blocked in my area. What can I do?</a></td>
</tr>
<tr>
<td class="org-left"><a href="#orgaeba5cb">I want to block a particular domain from getting its content into my social network sites</a></td>
<td class="org-left"><a href="#orgaeeac02">I want to block a particular domain from getting its content into my social network sites</a></td>
</tr>
<tr>
<td class="org-left"><a href="#org021f197">The mesh system doesn't boot from USB drive</a></td>
<td class="org-left"><a href="#orgfefb387">The mesh system doesn't boot from USB drive</a></td>
</tr>
</tbody>
</table>
</div>
<div id="outline-container-orge4d28e6" class="outline-2">
<h2 id="orge4d28e6">What applications are supported?</h2>
<div class="outline-text-2" id="text-orge4d28e6">
<div id="outline-container-orgbbb3441" class="outline-2">
<h2 id="orgbbb3441">What applications are supported?</h2>
<div class="outline-text-2" id="text-orgbbb3441">
<p>
<a href="./apps.html">See here</a> for the complete list of apps. In addition to those as part of the base install you get an email server.
</p>
</div>
</div>
<div id="outline-container-org059603a" class="outline-2">
<h2 id="org059603a">I don't have a static IP address. Can I still install this system?</h2>
<div class="outline-text-2" id="text-org059603a">
<div id="outline-container-orgd634a7c" class="outline-2">
<h2 id="orgd634a7c">I don't have a static IP address. Can I still install this system?</h2>
<div class="outline-text-2" id="text-orgd634a7c">
<p>
Yes. The minimum requirements are to have some hardware that you can install Debian onto and also that you have administrator access to your internet router so that you can forward ports to the system which has Freedombone installed.
</p>
@ -399,17 +403,17 @@ The lack of a static IP address can be worked around by using a dynamic DNS serv
</p>
</div>
</div>
<div id="outline-container-orgce17fc3" class="outline-2">
<h2 id="orgce17fc3">Why Freedombone and not FreedomBox?</h2>
<div class="outline-text-2" id="text-orgce17fc3">
<div id="outline-container-org88331dc" class="outline-2">
<h2 id="org88331dc">Why Freedombone and not FreedomBox?</h2>
<div class="outline-text-2" id="text-org88331dc">
<p>
When the project began in late 2013 the FreedomBox project seemed to be going nowhere, and was only designed to work with the DreamPlug hardware. There was some new hardware out - the Beaglebone Black - which could run Debian and was also a free hardware design so seemed more appropriate. Hence the name "Freedombone", being like FreedomBox but on a Beaglebone. There are some similarities and differences between the two projects:
</p>
</div>
<div id="outline-container-org7307d12" class="outline-3">
<h3 id="org7307d12">Similarities</h3>
<div class="outline-text-3" id="text-org7307d12">
<div id="outline-container-org2f730a6" class="outline-3">
<h3 id="org2f730a6">Similarities</h3>
<div class="outline-text-3" id="text-org2f730a6">
<ul class="org-ul">
<li>Uses freedom-maker and vmdebootstrap to build debian images</li>
<li>Supports the use of Tor onion addresses to access websites</li>
@ -423,9 +427,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
</ul>
</div>
</div>
<div id="outline-container-org1b7f29b" class="outline-3">
<h3 id="org1b7f29b">Differences</h3>
<div class="outline-text-3" id="text-org1b7f29b">
<div id="outline-container-org54e066a" class="outline-3">
<h3 id="org54e066a">Differences</h3>
<div class="outline-text-3" id="text-org54e066a">
<ul class="org-ul">
<li>FreedomBox is a Debian pure blend. Freedombone is not</li>
<li>Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards</li>
@ -440,9 +444,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
</div>
</div>
</div>
<div id="outline-container-org9455df3" class="outline-2">
<h2 id="org9455df3">Why not support building images for Raspberry Pi?</h2>
<div class="outline-text-2" id="text-org9455df3">
<div id="outline-container-orgc55c3a9" class="outline-2">
<h2 id="orgc55c3a9">Why not support building images for Raspberry Pi?</h2>
<div class="outline-text-2" id="text-orgc55c3a9">
<p>
The FreedomBox project supports Raspberry Pi builds, and the image build system for Freedombone is based on the same system. However, although the Raspberry Pi can run a version of Debian it requires a closed proprietary blob in order to boot the hardware. Who knows what that blob might contain or what exploits it could facilitate. From an adversarial point of view if you were trying to deliver "bulk equipment interference" then it doesn't get any better than piggybacking on something which has control of the boot process, and hence all subsequently run processes.
</p>
@ -452,9 +456,9 @@ So although the Raspberry Pi is cheap and hugely popular it's not supported by t
</p>
</div>
</div>
<div id="outline-container-org78b57eb" class="outline-2">
<h2 id="org78b57eb">Why use Tor? I've heard it's used by bad people</h2>
<div class="outline-text-2" id="text-org78b57eb">
<div id="outline-container-orga017b02" class="outline-2">
<h2 id="orga017b02">Why use Tor? I've heard it's used by bad people</h2>
<div class="outline-text-2" id="text-orga017b02">
<p>
Before you run screaming for the hills based upon whatever scare story you may have just read in the mainstream media there are a few things worthy of consideration. Tor is installed by default on Freedombone, <i>but not as a relay or exit node</i>. It's only used to provide onion addresses so that this gives you or the viewers of your sites some choice about how they access the information. It also allows you to subscribe to and read RSS feeds privately.
</p>
@ -472,9 +476,9 @@ The media may also have sold you torrid tales about individual Tor project devel
</p>
</div>
</div>
<div id="outline-container-org4b81ba4" class="outline-2">
<h2 id="org4b81ba4">How is Tor integrated with Freedombone?</h2>
<div class="outline-text-2" id="text-org4b81ba4">
<div id="outline-container-org249c744" class="outline-2">
<h2 id="org249c744">How is Tor integrated with Freedombone?</h2>
<div class="outline-text-2" id="text-org249c744">
<p>
Within this project Tor is used more to provide <i>accessibility</i> than the <i>anonymity</i> factor for which Tor is better known. The onion address system provides a way of being able to access sites even if you don't own a conventional domain name or don't have administrator access to your local internet router to be able to do port forwarding.
</p>
@ -492,9 +496,17 @@ Even if you're running the "onion only" build, this only means that sites are ac
</p>
</div>
</div>
<div id="outline-container-orgb1114e4" class="outline-2">
<h2 id="orgb1114e4">Why use Github?</h2>
<div class="outline-text-2" id="text-orgb1114e4">
<div id="outline-container-org7cecca6" class="outline-2">
<h2 id="org7cecca6">Can I add a clearnet domain to an onion build?</h2>
<div class="outline-text-2" id="text-org7cecca6">
<p>
You could if you manually edited the relevant nginx configuration files and installed some dynamic DNS system yourself. If you already have sysadmin knowledge then that's probably not too hard. But the builds created with the <b>onion-addresses-only</b> option aren't really intended to support access via clearnet domains.
</p>
</div>
</div>
<div id="outline-container-org851c64e" class="outline-2">
<h2 id="org851c64e">Why use Github?</h2>
<div class="outline-text-2" id="text-org851c64e">
<p>
Github is paradoxically a centralized, closed and proprietary system which happens to mostly host free and open source projects. Up until now it has been relatively benign, but at some point in the name of "growth" it will likely start becoming more evil, or just become like SourceForge - which was also once much loved by FOSS developers, but turned into a den of malvertizing.
</p>
@ -512,9 +524,9 @@ Currently many of the repositories used for applications which are not yet packa
</p>
</div>
</div>
<div id="outline-container-orgbc22fb9" class="outline-2">
<h2 id="orgbc22fb9">Keys and emails should not be stored on servers. Why do you do that?</h2>
<div class="outline-text-2" id="text-orgbc22fb9">
<div id="outline-container-orgf317597" class="outline-2">
<h2 id="orgf317597">Keys and emails should not be stored on servers. Why do you do that?</h2>
<div class="outline-text-2" id="text-orgf317597">
<p>
Ordinarily this is good advice. However, the threat model for a device in your home is different from the one for a generic server in a massive warehouse. Compare and contrast:
</p>
@ -572,9 +584,9 @@ In the home environment a box with a good firewall and no GUI components install
</div>
</div>
<div id="outline-container-org3de928d" class="outline-2">
<h2 id="org3de928d">Why can't I access my .onion site with a Tor browser?</h2>
<div class="outline-text-2" id="text-org3de928d">
<div id="outline-container-org01f5e64" class="outline-2">
<h2 id="org01f5e64">Why can't I access my .onion site with a Tor browser?</h2>
<div class="outline-text-2" id="text-org01f5e64">
<p>
Probably you need to add the site to the NoScript whitelist. Typically click/press on the noscript icon (or select from the menu on mobile) then select <i>whitelist</i> and add the site URL. You may also need to disable HTTPS Everywhere when using onion addresses, which don't use https.
</p>
@ -584,9 +596,9 @@ Another factor to be aware of is that it can take a while for the onion address
</p>
</div>
</div>
<div id="outline-container-org90bb4b5" class="outline-2">
<h2 id="org90bb4b5">What is the best hardware to run this system on?</h2>
<div class="outline-text-2" id="text-org90bb4b5">
<div id="outline-container-org38cbf46" class="outline-2">
<h2 id="org38cbf46">What is the best hardware to run this system on?</h2>
<div class="outline-text-2" id="text-org38cbf46">
<p>
It was originally designed to run on the Beaglebone Black, but that should be regarded as the most minimal system, because it's single core and has by today's standards a small amount of memory. Obviously the more powerful the hardware is the faster things like web pages (blog, social networking, etc) will be served but the more electricity such a system will require if you're running it 24/7. A good compromise between performance and energy consumption is something like an old netbook. The battery of an old netbook or laptop even gives you <a href="https://en.wikipedia.org/wiki/Uninterruptible_power_supply">UPS capability</a> to keep the system going during brief power outages or cable re-arrangements, and that means using full disk encryption on the server also becomes more practical.
</p>
@ -596,9 +608,9 @@ It was originally designed to run on the Beaglebone Black, but that should be re
</p>
</div>
</div>
<div id="outline-container-orgd28e6f4" class="outline-2">
<h2 id="orgd28e6f4">Can I add more users to the system?</h2>
<div class="outline-text-2" id="text-orgd28e6f4">
<div id="outline-container-orgcce0278" class="outline-2">
<h2 id="orgcce0278">Can I add more users to the system?</h2>
<div class="outline-text-2" id="text-orgcce0278">
<p>
Yes. Freedombone can support a small number of users, for a "<i>friends and family</i>" type of home installation. This gives them access to an email account, XMPP, SIP phone and the blog (depending on whether the variant which you installed includes those).
</p>
@ -621,9 +633,9 @@ Another point is that Freedombone installations are not intended to support many
</p>
</div>
</div>
<div id="outline-container-org4f21c19" class="outline-2">
<h2 id="org4f21c19">Why not use Signal for mobile chat?</h2>
<div class="outline-text-2" id="text-org4f21c19">
<div id="outline-container-org101140b" class="outline-2">
<h2 id="org101140b">Why not use Signal for mobile chat?</h2>
<div class="outline-text-2" id="text-org101140b">
<p>
Celebrities recommend Signal. It's Free Software so it must be good, right?
</p>
@ -646,9 +658,9 @@ To give credit where it's due Signal is good, but it could be a lot better. The
</p>
</div>
</div>
<div id="outline-container-orgfe6470e" class="outline-2">
<h2 id="orgfe6470e">What is the most secure chat app to use on mobile?</h2>
<div class="outline-text-2" id="text-orgfe6470e">
<div id="outline-container-org8b50dde" class="outline-2">
<h2 id="org8b50dde">What is the most secure chat app to use on mobile?</h2>
<div class="outline-text-2" id="text-org8b50dde">
<p>
On mobile there are various options. The apps which are likely to be most secure are ones which have end-to-end encryption enabled by default and which can also be onion routed via Orbot. End-to-end encryption secures the content of the message and onion routing obscures the metadata, making it hard for a passive adversary to know who is communicating with who.
</p>
@ -658,13 +670,13 @@ The current safest way to chat is to use <a href="https://conversations.im">Conv
</p>
<p>
There are many <a href="#org4f21c19">other fashionable chat apps</a> with end-to-end security, but often they are closed source, have a single central server or can't be onion routed. It's also important to remember that closed source chat apps should be assumed to be untrustworthy, since their security cannot be independently verified.
There are many <a href="#org101140b">other fashionable chat apps</a> with end-to-end security, but often they are closed source, have a single central server or can't be onion routed. It's also important to remember that closed source chat apps should be assumed to be untrustworthy, since their security cannot be independently verified.
</p>
</div>
</div>
<div id="outline-container-org6813023" class="outline-2">
<h2 id="org6813023">How do I remove a user from the system?</h2>
<div class="outline-text-2" id="text-org6813023">
<div id="outline-container-org20eaffc" class="outline-2">
<h2 id="org20eaffc">How do I remove a user from the system?</h2>
<div class="outline-text-2" id="text-org20eaffc">
<p>
To remove a user:
</p>
@ -679,9 +691,9 @@ Select <i>Administrator controls</i> then <i>Manage Users</i> and then <i>Delete
</p>
</div>
</div>
<div id="outline-container-org9ba4b0e" class="outline-2">
<h2 id="org9ba4b0e">Why is logging for web sites turned off by default?</h2>
<div class="outline-text-2" id="text-org9ba4b0e">
<div id="outline-container-org209f0d6" class="outline-2">
<h2 id="org209f0d6">Why is logging for web sites turned off by default?</h2>
<div class="outline-text-2" id="text-org209f0d6">
<p>
If you're making profits out of the logs by running large server warehouses and then data mining what users click on - as is the business model of well known internet companies - then logging everything makes total sense. However, if you're running a home server then logging really only makes sense if you're trying to diagnose some specific problem with the system, and outside of that context logging everything becomes more of a liability than an asset.
</p>
@ -695,9 +707,9 @@ On the Freedombone system web logs containing IP addresses are turned off by def
</p>
</div>
</div>
<div id="outline-container-orge39d7dd" class="outline-2">
<h2 id="orge39d7dd">How do I reset the tripwire?</h2>
<div class="outline-text-2" id="text-orge39d7dd">
<div id="outline-container-orga16e12a" class="outline-2">
<h2 id="orga16e12a">How do I reset the tripwire?</h2>
<div class="outline-text-2" id="text-orga16e12a">
<p>
The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:
</p>
@ -712,9 +724,9 @@ Select <i>Administrator controls</i> then "reset tripwire" using cursors and spa
</p>
</div>
</div>
<div id="outline-container-orgad498c1" class="outline-2">
<h2 id="orgad498c1">Is metadata protected?</h2>
<div class="outline-text-2" id="text-orgad498c1">
<div id="outline-container-orgf085eb1" class="outline-2">
<h2 id="orgf085eb1">Is metadata protected?</h2>
<div class="outline-text-2" id="text-orgf085eb1">
<blockquote>
<p>
"<i>We kill people based on metadata</i>"
@ -730,9 +742,9 @@ Even when using Freedombone metadata analysis by third parties is still possible
</p>
</div>
</div>
<div id="outline-container-orgaf26822" class="outline-2">
<h2 id="orgaf26822">How do I create email processing rules?</h2>
<div class="outline-text-2" id="text-orgaf26822">
<div id="outline-container-org20694ec" class="outline-2">
<h2 id="org20694ec">How do I create email processing rules?</h2>
<div class="outline-text-2" id="text-org20694ec">
<div class="org-src-container">
<pre><code class="src src-bash">ssh username@domainname -p 2222
</code></pre>
@ -788,9 +800,9 @@ Spamassassin is also available and within Mutt you can use the S (shift+s) key t
</p>
</div>
</div>
<div id="outline-container-org584e155" class="outline-2">
<h2 id="org584e155">Why isn't dynamic DNS working?</h2>
<div class="outline-text-2" id="text-org584e155">
<div id="outline-container-orgf194d33" class="outline-2">
<h2 id="orgf194d33">Why isn't dynamic DNS working?</h2>
<div class="outline-text-2" id="text-orgf194d33">
<p>
If you run the command:
</p>
@ -813,9 +825,9 @@ https://www.privateinternetaccess.com/pages/whats-my-ip/
</div>
</div>
<div id="outline-container-orgca8c34e" class="outline-2">
<h2 id="orgca8c34e">How do I change my encryption settings?</h2>
<div class="outline-text-2" id="text-orgca8c34e">
<div id="outline-container-org04c8e6a" class="outline-2">
<h2 id="org04c8e6a">How do I change my encryption settings?</h2>
<div class="outline-text-2" id="text-org04c8e6a">
<p>
Suppose that some new encryption vulnerability has been announced and that you need to change your encryption settings. Maybe an algorithm thought to be secure is now no longer so and you need to remove it. You can change your settings by doing the following:
</p>
@ -830,9 +842,9 @@ Select <i>Administrator controls</i> then select <i>Security Settings</i>. You w
</p>
</div>
</div>
<div id="outline-container-org9742108" class="outline-2">
<h2 id="org9742108">How do I get a domain name?</h2>
<div class="outline-text-2" id="text-org9742108">
<div id="outline-container-org4756925" class="outline-2">
<h2 id="org4756925">How do I get a domain name?</h2>
<div class="outline-text-2" id="text-org4756925">
<p>
Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.
</p>
@ -896,9 +908,9 @@ You should now be able to send an email from <i>postmaster@mynewdomainname</i> a
</div>
</div>
<div id="outline-container-org3ba4e5b" class="outline-2">
<h2 id="org3ba4e5b">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
<div class="outline-text-2" id="text-org3ba4e5b">
<div id="outline-container-org0580486" class="outline-2">
<h2 id="org0580486">How do I get a "real" SSL/TLS/HTTPS certificate?</h2>
<div class="outline-text-2" id="text-org0580486">
<p>
If you did the full install or selected the social variant then the system will have tried to obtain a Let's Encrypt certificate automatically during the install process. If this failed for any reason, or if you have created a new site which you need a certificate for then do the following:
</p>
@ -917,9 +929,9 @@ One thing to be aware of is that Let's Encrypt doesn't support many dynamic DNS
</p>
</div>
</div>
<div id="outline-container-orgf99af92" class="outline-2">
<h2 id="orgf99af92">How do I renew a Let's Encrypt certificate?</h2>
<div class="outline-text-2" id="text-orgf99af92">
<div id="outline-container-org689608f" class="outline-2">
<h2 id="org689608f">How do I renew a Let's Encrypt certificate?</h2>
<div class="outline-text-2" id="text-org689608f">
<p>
Normally certificates will be automatically renewed once per month, so you don't need to be concerned about it. If anything goes wrong with the automatic renewal then you should receive a warning email.
</p>
@ -938,9 +950,9 @@ Select <i>Administrator controls</i> then <b>Security settings</b> then <b>Renew
</p>
</div>
</div>
<div id="outline-container-org64e189a" class="outline-2">
<h2 id="org64e189a">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
<div class="outline-text-2" id="text-org64e189a">
<div id="outline-container-org00c9fac" class="outline-2">
<h2 id="org00c9fac">I tried to renew a Let's Encrypt certificate and it failed. What should I do?</h2>
<div class="outline-text-2" id="text-org00c9fac">
<p>
Most likely it's because Let's Encrypt doesn't support your particular domain or subdomain. Currently free subdomains tend not to work. You'll need to buy a domain name, link it to your dynamic DNS account and then do:
</p>
@ -955,17 +967,17 @@ Select <i>Administrator controls</i> then <b>Security settings</b> then <b>Creat
</p>
</div>
</div>
<div id="outline-container-org896c14a" class="outline-2">
<h2 id="org896c14a">Why not use the services of $company instead? They took the Seppuku pledge</h2>
<div class="outline-text-2" id="text-org896c14a">
<div id="outline-container-org7f1159a" class="outline-2">
<h2 id="org7f1159a">Why not use the services of $company instead? They took the Seppuku pledge</h2>
<div class="outline-text-2" id="text-org7f1159a">
<p>
<a href="https://cryptostorm.org/viewtopic.php?f=63&amp;t=2954&amp;sid=7de2d1e699cfde2f574e6a7f6ea5a173">That pledge</a> is utterly worthless. Years ago people trusted Google in the same sort of way, because they promised not be be evil and because a lot of the engineers working for them seemed like honest types who were "<i>on our side</i>". Post-<a href="https://en.wikipedia.org/wiki/Nymwars">nymwars</a> and post-<a href="https://en.wikipedia.org/wiki/PRISM_(surveillance_program)">PRISM</a> we know exactly how much Google cared about the privacy and security of its users. But Google is only one particular example. In general don't trust pledges made by companies, even if the people running them seem really sincere.
</p>
</div>
</div>
<div id="outline-container-org1f1886b" class="outline-2">
<h2 id="org1f1886b">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
<div class="outline-text-2" id="text-org1f1886b">
<div id="outline-container-org5459287" class="outline-2">
<h2 id="org5459287">Why does my email keep getting rejected as spam by Gmail/etc?</h2>
<div class="outline-text-2" id="text-org5459287">
<p>
Welcome to the world of email. Email is really the archetypal decentralized service, developed during the early days of the internet. In principle anyone can run an email server, and that's exactly what you're doing with Freedombone. Email is very useful, but it has a big problem, and that's that the protocols are totally insecure. That made it easy for spammers to do their thing, and in response highly elaborate spam filtering and blocking systems were developed. Chances are that your emails are being blocked in this way. Sometimes the blocking is so indisciminate that entire countries are excluded. What can you do about it? Unless you control the block list at the receiving end you may not be able to do much unless you can find an email proxy server which is trusted by the receiving server.
</p>
@ -996,9 +1008,9 @@ So the situation with email presently is pretty bad, and there's a clear selecti
</p>
</div>
</div>
<div id="outline-container-org51d8596" class="outline-2">
<h2 id="org51d8596">Tor is censored/blocked in my area. What can I do?</h2>
<div class="outline-text-2" id="text-org51d8596">
<div id="outline-container-org108fab6" class="outline-2">
<h2 id="org108fab6">Tor is censored/blocked in my area. What can I do?</h2>
<div class="outline-text-2" id="text-org108fab6">
<p>
If you can find some details for an obfs4 Tor bridge (its IP address, port number and key or nickname) then you can set up the system to use it to connect to the Tor network. Unlike relay nodes the IP addresses for bridges are not public information and so can't be easily known and added to block lists by authoritarian regimes or over-zealous ISPs.
</p>
@ -1029,9 +1041,9 @@ Return to the <a href="index.html">home page</a>
</div>
</div>
<div id="outline-container-orgaeba5cb" class="outline-2">
<h2 id="orgaeba5cb">I want to block a particular domain from getting its content into my social network sites</h2>
<div class="outline-text-2" id="text-orgaeba5cb">
<div id="outline-container-orgaeeac02" class="outline-2">
<h2 id="orgaeeac02">I want to block a particular domain from getting its content into my social network sites</h2>
<div class="outline-text-2" id="text-orgaeeac02">
<p>
If you're being pestered by some domain which contains bad/illegal/harrassing content or irritating users you can block domains at the firewall level. Go to the administrator control panel and select <i>domain blocking</i>. You can then block, unblock and view the list of blocked domains.
</p>
@ -1046,9 +1058,9 @@ Select <i>Administrator controls</i> then <i>Domain blocking</i>.
</div>
</div>
<div id="outline-container-org021f197" class="outline-2">
<h2 id="org021f197">The mesh system doesn't boot from USB drive</h2>
<div class="outline-text-2" id="text-org021f197">
<div id="outline-container-orgfefb387" class="outline-2">
<h2 id="orgfefb387">The mesh system doesn't boot from USB drive</h2>
<div class="outline-text-2" id="text-orgfefb387">
<p>
If the system doesn't boot and reports an error which includes <b>/dev/mapper/loop0p1</b> then reboot with <b>Ctrl-Alt-Del</b> and when you see the grub menu press <b>e</b> and manually change <b>/dev/mapper/loop0p1</b> to <b>/dev/sdb1</b>, then press <b>Ctrl-x</b>. If that doesn't work then reboot and try <b>/dev/sdc1</b> instead.
</p>

View File

@ -3,7 +3,7 @@
"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-09-12 Tue 10:06 -->
<!-- 2017-09-15 Fri 22:17 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
@ -340,7 +340,8 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p>
<div class="org-src-container">
<pre><code class="src src-bash">dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
<pre><code class="src src-bash">dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
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
</code></pre>
</div>

View File

@ -3,7 +3,7 @@
"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-04 Tue 10:14 -->
<!-- 2017-09-15 Fri 22:19 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
@ -274,13 +274,13 @@ for the JavaScript code in this tag.
</colgroup>
<tbody>
<tr>
<td class="org-left"><a href="#org43720c8">What the system can do</a></td>
<td class="org-left"><a href="#orgc6406cc">What the system can do</a></td>
<td class="org-left">-</td>
<td class="org-left"><a href="#orgf236d1b">Disk Images</a></td>
<td class="org-left"><a href="#orgf24c15c">Disk Images</a></td>
<td class="org-left">-</td>
<td class="org-left"><a href="#org3279497">Building Disk Images</a></td>
<td class="org-left"><a href="#org08c02eb">Building Disk Images</a></td>
<td class="org-left">-</td>
<td class="org-left"><a href="#org52b6ecb">How to use it</a></td>
<td class="org-left"><a href="#orgfce6a77">How to use it</a></td>
</tr>
</tbody>
</table>
@ -293,9 +293,9 @@ The Freedombone Mesh is a wireless solution for autonomous communication that ca
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 business internal office communications, protests, remote areas of the world, temporary "digital blackouts", scientific expeditions and off-world space colonies. The down side is that you can't access any internet content. The upside is that you can securely communicate with anyone on the local mesh. No ISPs. No payments or subscriptions beyond the cost of obtaining the hardware. Systems need to be within wifi range of each other for the mesh to be created. It can be an ultra-convenient way to do purely local communications.
</p>
<div id="outline-container-org43720c8" class="outline-2">
<h2 id="org43720c8">What the system can do</h2>
<div class="outline-text-2" id="text-org43720c8">
<div id="outline-container-orgc6406cc" class="outline-2">
<h2 id="orgc6406cc">What the system can do</h2>
<div class="outline-text-2" id="text-orgc6406cc">
<ul class="org-ul">
<li>Discovery of other users on the network</li>
<li>Text based chat, one-to-one and in groups</li>
@ -316,13 +316,13 @@ This system should be quite scalable. Both qTox and IPFS are based upon distribu
</div>
</div>
<div id="outline-container-orgf236d1b" class="outline-2">
<h2 id="orgf236d1b">Disk Images</h2>
<div class="outline-text-2" id="text-orgf236d1b">
<div id="outline-container-orgf24c15c" class="outline-2">
<h2 id="orgf24c15c">Disk Images</h2>
<div class="outline-text-2" id="text-orgf24c15c">
</div>
<div id="outline-container-org84d3aa9" class="outline-3">
<h3 id="org84d3aa9">Writing many images quickly</h3>
<div class="outline-text-3" id="text-org84d3aa9">
<div id="outline-container-org88842fc" class="outline-3">
<h3 id="org88842fc">Writing many images quickly</h3>
<div class="outline-text-3" id="text-org88842fc">
<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>
@ -346,9 +346,9 @@ Or on Debian based systems:
</div>
</div>
</div>
<div id="outline-container-orga950e86" class="outline-3">
<h3 id="orga950e86">Client images</h3>
<div class="outline-text-3" id="text-orga950e86">
<div id="outline-container-org4a8b638" class="outline-3">
<h3 id="org4a8b638">Client images</h3>
<div class="outline-text-3" id="text-org4a8b638">
<div class="org-center">
<div class="figure">
@ -369,6 +369,7 @@ gpg --verify freedombone-meshclient-3_all-i386.img.xz.sig
sha256sum freedombone-meshclient-3_all-i386.img.xz
74f9eaad479f84d3bf9cb002067074d35a97028145e781c5746c74577f777ee5
unxz freedombone-meshclient-3_all-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-3_all-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
</code></pre>
</div>
@ -389,22 +390,23 @@ gpg --verify freedombone-meshclient-insecure-3_all-i386.img.xz.sig
sha256sum freedombone-meshclient-insecure-3_all-i386.img.xz
f1c5df24a4bfca47bd5c41dfd2568925e63a1abf83aecf0250480b4b8edc071d
unxz freedombone-meshclient-insecure-3_all-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-3_all-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
</code></pre>
</div>
</div>
</div>
<div id="outline-container-org7a83803" class="outline-3">
<h3 id="org7a83803">Router images</h3>
<div class="outline-text-3" id="text-org7a83803">
<div id="outline-container-org519744c" class="outline-3">
<h3 id="org519744c">Router images</h3>
<div class="outline-text-3" id="text-org519744c">
<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-orgff96209" class="outline-4">
<h4 id="orgff96209">Beaglebone Black</h4>
<div class="outline-text-4" id="text-orgff96209">
<div id="outline-container-org909807a" class="outline-4">
<h4 id="org909807a">Beaglebone Black</h4>
<div class="outline-text-4" id="text-org909807a">
<div class="org-center">
<div class="figure">
@ -441,9 +443,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
</div>
</div>
<div id="outline-container-org3279497" class="outline-2">
<h2 id="org3279497">Building Disk Images</h2>
<div class="outline-text-2" id="text-org3279497">
<div id="outline-container-org08c02eb" class="outline-2">
<h2 id="org08c02eb">Building Disk Images</h2>
<div class="outline-text-2" id="text-org08c02eb">
<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>
@ -499,7 +501,8 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</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>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
<pre><code 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
</code></pre>
</div>
@ -530,9 +533,9 @@ The resulting image can be copied to a microSD card, inserted into a Beaglebone
</div>
</div>
<div id="outline-container-org8da4b39" class="outline-2">
<h2 id="org8da4b39">Customisation</h2>
<div class="outline-text-2" id="text-org8da4b39">
<div id="outline-container-org0dec35a" class="outline-2">
<h2 id="org0dec35a">Customisation</h2>
<div class="outline-text-2" id="text-org0dec35a">
<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>
@ -542,9 +545,9 @@ If you need particular <i>dconf</i> commands to alter desktop appearance or beha
</p>
</div>
</div>
<div id="outline-container-org52b6ecb" class="outline-2">
<h2 id="org52b6ecb">How to use it</h2>
<div class="outline-text-2" id="text-org52b6ecb">
<div id="outline-container-orgfce6a77" class="outline-2">
<h2 id="orgfce6a77">How to use it</h2>
<div class="outline-text-2" id="text-orgfce6a77">
<p>
When you first boot from the USB drive the system will create some encryption keys, assign a unique network address to the system and then reboot itself. When that's done you should see a prompt asking for a username. This username just makes it easy for others to initially find you on the mesh and will appear in the list of users.
</p>
@ -554,9 +557,9 @@ After a minute or two if you are within wifi range and there is at least one oth
</p>
</div>
<div id="outline-container-org218c967" class="outline-3">
<h3 id="org218c967">Boot trouble</h3>
<div class="outline-text-3" id="text-org218c967">
<div id="outline-container-org2a6eb8c" class="outline-3">
<h3 id="org2a6eb8c">Boot trouble</h3>
<div class="outline-text-3" id="text-org2a6eb8c">
<p>
If the system doesn't boot and reports an error which includes <b>/dev/mapper/loop0p1</b> then reboot with <b>Ctrl-Alt-Del</b> and when you see the grub menu press <b>e</b> and manually change <b>/dev/mapper/loop0p1</b> to <b>/dev/sdb1</b>, then press <b>Ctrl-x</b>. If that doesn't work then reboot and try <b>/dev/sdc1</b> instead.
</p>
@ -566,9 +569,9 @@ After the system has booted successfully the problem should resolve itself on su
</p>
</div>
</div>
<div id="outline-container-org6c9bd07" class="outline-3">
<h3 id="org6c9bd07">Set the Date</h3>
<div class="outline-text-3" id="text-org6c9bd07">
<div id="outline-container-org92cd6d5" class="outline-3">
<h3 id="org92cd6d5">Set the Date</h3>
<div class="outline-text-3" id="text-org92cd6d5">
<p>
On the ordinary internet the date and time of your system would be set automatically via NTP. But this is not the internet and so you will need to manually ensure that your date and time settings are correct. You might need to periodically do this if your clock drifts. It's not essential that the time on your system be highly accurate, but if it drifts too far or goes back to epoch then things could become a little confusing in regard to the order of blog posts.
</p>
@ -578,9 +581,9 @@ On the ordinary internet the date and time of your system would be set automatic
</p>
</div>
</div>
<div id="outline-container-org351f6a2" class="outline-3">
<h3 id="org351f6a2">Check network status</h3>
<div class="outline-text-3" id="text-org351f6a2">
<div id="outline-container-org2aa12f0" class="outline-3">
<h3 id="org2aa12f0">Check network status</h3>
<div class="outline-text-3" id="text-org2aa12f0">
<p>
Unlike with ordinary wifi, on the mesh you don't get a signal strength icon and so it's not simple to see if you have a good connection.
</p>
@ -604,9 +607,9 @@ When you are finished close the window and then select the <i>Network Restart</i
</div>
</div>
<div id="outline-container-org90f8f7b" class="outline-3">
<h3 id="org90f8f7b">Chat System</h3>
<div class="outline-text-3" id="text-org90f8f7b">
<div id="outline-container-org2f1dfa6" class="outline-3">
<h3 id="org2f1dfa6">Chat System</h3>
<div class="outline-text-3" id="text-org2f1dfa6">
<p>
Ensure that you're within wifi range of at least one other mesh peer (could be a router or client) and then you should see that the <i>Chat</i> and <i>Other Users</i> icons appear. Select the users icon and you should see a list of users on the mesh. Select the <i>Chat</i> icon and once you are connected you should see the status light turn green. If after a few minutes you don't get the green status light then try closing and re-opening the Tox chat application. Select the plus button to add a friend and then copy and paste in a Tox ID from the users list.
</p>
@ -665,9 +668,9 @@ At present video doesn't work reliably, but text and voice chat do work well.
</div>
</div>
<div id="outline-container-orgb0ff834" class="outline-3">
<h3 id="orgb0ff834">Sharing Files</h3>
<div class="outline-text-3" id="text-orgb0ff834">
<div id="outline-container-org75993b2" class="outline-3">
<h3 id="org75993b2">Sharing Files</h3>
<div class="outline-text-3" id="text-org75993b2">
<p>
You can make files publicly available on the network simply by dragging and dropping them into the <i>Public</i> folder on the desktop. To view the files belonging to another user select the desktop icon called <i>Visit a site</i> and enter the username or Tox ID of the other user.
</p>
@ -682,9 +685,9 @@ You can make files publicly available on the network simply by dragging and drop
</div>
</div>
<div id="outline-container-org9f54fb7" class="outline-3">
<h3 id="org9f54fb7">Blogging</h3>
<div class="outline-text-3" id="text-org9f54fb7">
<div id="outline-container-org86cab79" class="outline-3">
<h3 id="org86cab79">Blogging</h3>
<div class="outline-text-3" id="text-org86cab79">
<p>
To create a blog post select the <i>Blog</i> icon on the desktop and then use the up and down cursor keys, space bar and enter key to add a new entry. Edit the title of the entry and add your text. You can also include photos if you wish - just copy them to the <b>CreateBlog/content/images</b> directory and then link to them as shown.
</p>