diff --git a/doc/EN/faq.org b/doc/EN/faq.org index 61dfcebb..634258b9 100644 --- a/doc/EN/faq.org +++ b/doc/EN/faq.org @@ -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. diff --git a/doc/EN/homeserver.org b/doc/EN/homeserver.org index 10ec3626..c327bf46 100644 --- a/doc/EN/homeserver.org +++ b/doc/EN/homeserver.org @@ -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 diff --git a/doc/EN/mesh.org b/doc/EN/mesh.org index 23ac027a..c8d6d2dc 100644 --- a/doc/EN/mesh.org +++ b/doc/EN/mesh.org @@ -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 diff --git a/src/freedombone-app-ipfs b/src/freedombone-app-ipfs index cc791d46..c660ae46 100755 --- a/src/freedombone-app-ipfs +++ b/src/freedombone-app-ipfs @@ -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' diff --git a/src/freedombone-image b/src/freedombone-image index 3f620d85..f5b4fc99 100755 --- a/src/freedombone-image +++ b/src/freedombone-image @@ -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 diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index 10d12a1f..9077100d 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -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 < $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 diff --git a/src/freedombone-mesh-batman b/src/freedombone-mesh-batman index bb71f27e..83981c3a 100755 --- a/src/freedombone-mesh-batman +++ b/src/freedombone-mesh-batman @@ -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 diff --git a/src/freedombone-utils-nodejs b/src/freedombone-utils-nodejs index 8155d8f0..c40cbd05 100755 --- a/src/freedombone-utils-nodejs +++ b/src/freedombone-utils-nodejs @@ -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 < ${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 { diff --git a/website/EN/faq.html b/website/EN/faq.html index 51893231..8ee8d73d 100644 --- a/website/EN/faq.html +++ b/website/EN/faq.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -257,35 +257,39 @@ for the JavaScript code in this tag. -What applications are supported? +What applications are supported? -I don't have a static IP address. Can I still install this system? +I don't have a static IP address. Can I still install this system? -Why Freedombone and not FreedomBox? +Why Freedombone and not FreedomBox? -Why not support building images for Raspberry Pi? +Why not support building images for Raspberry Pi? -Why use Tor? I've heard it's used by bad people +Why use Tor? I've heard it's used by bad people -How is Tor integrated with Freedombone? +How is Tor integrated with Freedombone? -Why use Github? +Can I add a clearnet domain to an onion build? -Keys and emails should not be stored on servers. Why do you do that? +Why use Github? + + + +Keys and emails should not be stored on servers. Why do you do that? @@ -293,103 +297,103 @@ for the JavaScript code in this tag. -Why can't I access my .onion site with a Tor browser? +Why can't I access my .onion site with a Tor browser? -What is the best hardware to run this system on? +What is the best hardware to run this system on? -Can I add more users to the system? +Can I add more users to the system? -Why not use Signal for mobile chat? +Why not use Signal for mobile chat? -What is the most secure chat app to use on mobile? +What is the most secure chat app to use on mobile? -How do I remove a user from the system? +How do I remove a user from the system? -Why is logging for web sites turned off by default? +Why is logging for web sites turned off by default? -How do I reset the tripwire? +How do I reset the tripwire? -Is metadata protected? +Is metadata protected? -How do I create email processing rules? +How do I create email processing rules? -Why isn't dynamic DNS working? +Why isn't dynamic DNS working? -How do I change my encryption settings? +How do I change my encryption settings? -How do I get a domain name? +How do I get a domain name? -How do I get a "real" SSL/TLS/HTTPS certificate? +How do I get a "real" SSL/TLS/HTTPS certificate? -How do I renew a Let's Encrypt certificate? +How do I renew a Let's Encrypt certificate? -I tried to renew a Let's Encrypt certificate and it failed. What should I do? +I tried to renew a Let's Encrypt certificate and it failed. What should I do? -Why not use the services of $company instead? They took the Seppuku pledge +Why not use the services of $company instead? They took the Seppuku pledge -Why does my email keep getting rejected as spam by Gmail/etc? +Why does my email keep getting rejected as spam by Gmail/etc? -Tor is censored/blocked in my area. What can I do? +Tor is censored/blocked in my area. What can I do? -I want to block a particular domain from getting its content into my social network sites +I want to block a particular domain from getting its content into my social network sites -The mesh system doesn't boot from USB drive +The mesh system doesn't boot from USB drive -
-

What applications are supported?

-
+
+

What applications are supported?

+

See here for the complete list of apps. In addition to those as part of the base install you get an email server.

-
-

I don't have a static IP address. Can I still install this system?

-
+
+

I don't have a static IP address. Can I still install this system?

+

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.

@@ -399,17 +403,17 @@ The lack of a static IP address can be worked around by using a dynamic DNS serv

-
-

Why Freedombone and not FreedomBox?

-
+
+

Why Freedombone and not FreedomBox?

+

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:

-
-

Similarities

-
+
+

Similarities

+
  • Uses freedom-maker and vmdebootstrap to build debian images
  • Supports the use of Tor onion addresses to access websites
  • @@ -423,9 +427,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
-
-

Differences

-
+
+

Differences

+
  • FreedomBox is a Debian pure blend. Freedombone is not
  • Freedombone only supports Free Software. FreedomBox includes some closed binary boot blobs for certain ARM boards
  • @@ -440,9 +444,9 @@ When the project began in late 2013 the FreedomBox project seemed to be going no
-
-

Why not support building images for Raspberry Pi?

-
+
+

Why not support building images for Raspberry Pi?

+

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.

@@ -452,9 +456,9 @@ So although the Raspberry Pi is cheap and hugely popular it's not supported by t

-
-

Why use Tor? I've heard it's used by bad people

-
+
+

Why use Tor? I've heard it's used by bad people

+

Before you run screaming for the hills based upon whatever scare story you may have just read in the mainstream media there are a few things worthy of consideration. Tor is installed by default on Freedombone, but not as a relay or exit node. It's only used to provide onion addresses so that this gives you or the viewers of your sites some choice about how they access the information. It also allows you to subscribe to and read RSS feeds privately.

@@ -472,9 +476,9 @@ The media may also have sold you torrid tales about individual Tor project devel

-
-

How is Tor integrated with Freedombone?

-
+
+

How is Tor integrated with Freedombone?

+

Within this project Tor is used more to provide accessibility than the anonymity factor for which Tor is better known. The onion address system provides a way of being able to access sites even if you don't own a conventional domain name or don't have administrator access to your local internet router to be able to do port forwarding.

@@ -492,9 +496,17 @@ Even if you're running the "onion only" build, this only means that sites are ac

-
-

Why use Github?

-
+
+

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.

@@ -512,9 +524,9 @@ Currently many of the repositories used for applications which are not yet packa

-
-

Keys and emails should not be stored on servers. Why do you do that?

-
+
+

Keys and emails should not be stored on servers. Why do you do that?

+

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:

@@ -572,9 +584,9 @@ In the home environment a box with a good firewall and no GUI components install
-
-

Why can't I access my .onion site with a Tor browser?

-
+
+

Why can't I access my .onion site with a Tor browser?

+

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 whitelist and add the site URL. You may also need to disable HTTPS Everywhere when using onion addresses, which don't use https.

@@ -584,9 +596,9 @@ Another factor to be aware of is that it can take a while for the onion address

-
-

What is the best hardware to run this system on?

-
+
+

What is the best hardware to run this system on?

+

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 UPS capability 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.

@@ -596,9 +608,9 @@ It was originally designed to run on the Beaglebone Black, but that should be re

-
-

Can I add more users to the system?

-
+
+

Can I add more users to the system?

+

Yes. Freedombone can support a small number of users, for a "friends and family" type of home installation. This gives them access to an email account, XMPP, SIP phone and the blog (depending on whether the variant which you installed includes those).

@@ -621,9 +633,9 @@ Another point is that Freedombone installations are not intended to support many

-
-

Why not use Signal for mobile chat?

-
+
+

Why not use Signal for mobile chat?

+

Celebrities recommend Signal. It's Free Software so it must be good, right?

@@ -646,9 +658,9 @@ To give credit where it's due Signal is good, but it could be a lot better. The

-
-

What is the most secure chat app to use on mobile?

-
+
+

What is the most secure chat app to use on mobile?

+

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.

@@ -658,13 +670,13 @@ The current safest way to chat is to use Conv

-There are many other fashionable chat apps 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 other fashionable chat apps 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.

-
-

How do I remove a user from the system?

-
+
+

How do I remove a user from the system?

+

To remove a user:

@@ -679,9 +691,9 @@ Select Administrator controls then Manage Users and then Delete

-
-

Why is logging for web sites turned off by default?

-
+
+

Why is logging for web sites turned off by default?

+

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.

@@ -695,9 +707,9 @@ On the Freedombone system web logs containing IP addresses are turned off by def

-
-

How do I reset the tripwire?

-
+
+

How do I reset the tripwire?

+

The tripwire will be automatically reset once per week. If you want to reset it earlier then do the following:

@@ -712,9 +724,9 @@ Select Administrator controls then "reset tripwire" using cursors and spa

-
-

Is metadata protected?

-
+
+

Is metadata protected?

+

"We kill people based on metadata" @@ -730,9 +742,9 @@ Even when using Freedombone metadata analysis by third parties is still possible

-
-

How do I create email processing rules?

-
+
+

How do I create email processing rules?

+
ssh username@domainname -p 2222
 
@@ -788,9 +800,9 @@ Spamassassin is also available and within Mutt you can use the S (shift+s) key t

-
-

Why isn't dynamic DNS working?

-
+
+

Why isn't dynamic DNS working?

+

If you run the command:

@@ -813,9 +825,9 @@ https://www.privateinternetaccess.com/pages/whats-my-ip/
-
-

How do I change my encryption settings?

-
+
+

How do I change my encryption settings?

+

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:

@@ -830,9 +842,9 @@ Select Administrator controls then select Security Settings. You w

-
-

How do I get a domain name?

-
+
+

How do I get a domain name?

+

Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead.

@@ -896,9 +908,9 @@ You should now be able to send an email from postmaster@mynewdomainname a
-
-

How do I get a "real" SSL/TLS/HTTPS certificate?

-
+
+

How do I get a "real" SSL/TLS/HTTPS certificate?

+

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:

@@ -917,9 +929,9 @@ One thing to be aware of is that Let's Encrypt doesn't support many dynamic DNS

-
-

How do I renew a Let's Encrypt certificate?

-
+
+

How do I renew a Let's Encrypt certificate?

+

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.

@@ -938,9 +950,9 @@ Select Administrator controls then Security settings then Renew

-
-

I tried to renew a Let's Encrypt certificate and it failed. What should I do?

-
+
+

I tried to renew a Let's Encrypt certificate and it failed. What should I do?

+

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:

@@ -955,17 +967,17 @@ Select Administrator controls then Security settings then Creat

-
-

Why not use the services of $company instead? They took the Seppuku pledge

-
+
+

Why not use the services of $company instead? They took the Seppuku pledge

+

That pledge 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 "on our side". Post-nymwars and post-PRISM 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.

-
-

Why does my email keep getting rejected as spam by Gmail/etc?

-
+
+

Why does my email keep getting rejected as spam by Gmail/etc?

+

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.

@@ -996,9 +1008,9 @@ So the situation with email presently is pretty bad, and there's a clear selecti

-
-

Tor is censored/blocked in my area. What can I do?

-
+
+

Tor is censored/blocked in my area. What can I do?

+

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.

@@ -1029,9 +1041,9 @@ Return to the home page
-
-

I want to block a particular domain from getting its content into my social network sites

-
+
+

I want to block a particular domain from getting its content into my social network sites

+

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 domain blocking. You can then block, unblock and view the list of blocked domains.

@@ -1046,9 +1058,9 @@ Select Administrator controls then Domain blocking.
-
-

The mesh system doesn't boot from USB drive

-
+
+

The mesh system doesn't boot from USB drive

+

If the system doesn't boot and reports an error which includes /dev/mapper/loop0p1 then reboot with Ctrl-Alt-Del and when you see the grub menu press e and manually change /dev/mapper/loop0p1 to /dev/sdb1, then press Ctrl-x. If that doesn't work then reboot and try /dev/sdc1 instead.

diff --git a/website/EN/homeserver.html b/website/EN/homeserver.html index b3cbb688..69b25da0 100644 --- a/website/EN/homeserver.html +++ b/website/EN/homeserver.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -340,7 +340,8 @@ You can now copy the image to the USB thumb drive, replacing sdX with the

-
dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
+
dd if=/dev/zero of=/dev/sdX bs=1M count=8
+dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
 
diff --git a/website/EN/mesh.html b/website/EN/mesh.html index 7bd191e7..02fa117c 100644 --- a/website/EN/mesh.html +++ b/website/EN/mesh.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -274,13 +274,13 @@ for the JavaScript code in this tag. -What the system can do +What the system can do - -Disk Images +Disk Images - -Building Disk Images +Building Disk Images - -How to use it +How to use it @@ -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.

-
-

What the system can do

-
+
+

What the system can do

+
  • Discovery of other users on the network
  • Text based chat, one-to-one and in groups
  • @@ -316,13 +316,13 @@ This system should be quite scalable. Both qTox and IPFS are based upon distribu
-
-

Disk Images

-
+
+

Disk Images

+
-
-

Writing many images quickly

-
+
+

Writing many images quickly

+

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 dd command is used for writing to the target drive, but to write to multiple drives you can use a tool such as GNOME MultiWriter.

@@ -346,9 +346,9 @@ Or on Debian based systems:
-
-

Client images

-
+
+

Client images

+
@@ -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 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
@@ -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 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
-
-

Router images

-
+
+

Router images

+

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.

-
-

Beaglebone Black

-
+
+

Beaglebone Black

+
@@ -441,9 +443,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
-
-

Building Disk Images

-
+
+

Building Disk Images

+

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.

@@ -499,7 +501,8 @@ You can now copy the image to the USB thumb drive, replacing sdX with the

-
sudo dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
+
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
+sudo dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
 
@@ -530,9 +533,9 @@ The resulting image can be copied to a microSD card, inserted into a Beaglebone
-
-

Customisation

-
+
+

Customisation

+

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 img/backgrounds and to change the available avatars and desktop icons edit the images within img/avatars. Re-create disk images using the instructions shown previously.

@@ -542,9 +545,9 @@ If you need particular dconf commands to alter desktop appearance or beha

-
-

How to use it

-
+
+

How to use it

+

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.

@@ -554,9 +557,9 @@ After a minute or two if you are within wifi range and there is at least one oth

-
-

Boot trouble

-
+
+

Boot trouble

+

If the system doesn't boot and reports an error which includes /dev/mapper/loop0p1 then reboot with Ctrl-Alt-Del and when you see the grub menu press e and manually change /dev/mapper/loop0p1 to /dev/sdb1, then press Ctrl-x. If that doesn't work then reboot and try /dev/sdc1 instead.

@@ -566,9 +569,9 @@ After the system has booted successfully the problem should resolve itself on su

-
-

Set the Date

-
+
+

Set the Date

+

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.

@@ -578,9 +581,9 @@ On the ordinary internet the date and time of your system would be set automatic

-
-

Check network status

-
+
+

Check network status

+

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.

@@ -604,9 +607,9 @@ When you are finished close the window and then select the Network Restart
-
-

Chat System

-
+
+

Chat System

+

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 Chat and Other Users icons appear. Select the users icon and you should see a list of users on the mesh. Select the Chat 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.

@@ -665,9 +668,9 @@ At present video doesn't work reliably, but text and voice chat do work well.
-
-

Sharing Files

-
+
+

Sharing Files

+

You can make files publicly available on the network simply by dragging and dropping them into the Public folder on the desktop. To view the files belonging to another user select the desktop icon called Visit a site and enter the username or Tox ID of the other user.

@@ -682,9 +685,9 @@ You can make files publicly available on the network simply by dragging and drop
-
-

Blogging

-
+
+

Blogging

+

To create a blog post select the Blog 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 CreateBlog/content/images directory and then link to them as shown.