@@ -243,7 +152,12 @@ for the JavaScript code in this tag.
Installing on Armbian
+<center><h1>Installing on Armbian</h1></center> +
+ +@@ -260,7 +174,8 @@ Download the Armbian image for your board. It must be version 9 (Stretch), other
-@@ -285,6 +200,7 @@ Once you know the local IP address of your ARM board then you can log into it wisudo dd bs=32M if=[Armbian .img file] of=/dev/sdX conv=fdatasync,sync,noerror + +sudo dd bs=32M if=[Armbian .img file] of=/dev/sdX conv=fdatasync,sync,noerror+@@ -304,6 +220,7 @@ When the user account is created type exit to leave the ssh session thenssh root@[local IP address]+@@ -313,6 +230,7 @@ Become the root user:ssh myusername@[local IP address]+@@ -322,9 +240,10 @@ Then clone the Freedombone repository and checkout the stretch development brancsudo su+@@ -334,6 +253,7 @@ Install the Freedombone commands:apt-get -y install git dialog build-essential -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch
+@@ -343,6 +263,7 @@ And now you can begin installing the Freedombone system. There are two ways of dmake install+@@ -352,6 +273,7 @@ Alternatively, if you don't own a domain name, don't have administrator access tfreedombone menuconfig+@@ -361,6 +283,7 @@ You will then be taken through a few questions and the system will install. Aftefreedombone menuconfig-onion+diff --git a/website/EN/beaglebone.html b/website/EN/beaglebone.html index f3822cd9..b3bcb9c4 100644 --- a/website/EN/beaglebone.html +++ b/website/EN/beaglebone.html @@ -4,7 +4,7 @@ssh myusername@freedombone.local -p 2222- + @@ -198,7 +198,7 @@ On your laptop or desktop prepare a microSD card image as follows. To create an sudo apt-get install git dialog build-essential -git clone https://github.com/bashrc/freedombone +git clone https://code.freedombone.net/bashrc/freedombone cd freedombone git checkout stretch sudo make install @@ -213,7 +213,7 @@ Or on Arch/Parabola:sudo pacman -S git dialog -git clone https://github.com/bashrc/freedombone +git clone https://code.freedombone.net/bashrc/freedombone cd freedombone git checkout stretch sudo make install diff --git a/website/EN/code.html b/website/EN/code.html index 7edf3947..83df63bf 100644 --- a/website/EN/code.html +++ b/website/EN/code.html @@ -4,13 +4,13 @@- + - - + @@ -189,7 +97,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2017 Free Software Foundation, Inc. +Copyright (C) 2012-2013 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU @@ -236,27 +144,28 @@ for the JavaScript code in this tag. +-
-Developers Guide
++-Developers Guide
-Introduction
-++-Introduction
+Freedombone consists of a set of bash scripts. There are a lot of them, but they're not very complicated. If you're familiar with the GNU/Linux commandline and can hack a bash script then you can probably add a new app or fix a bug in the system. There are no trendy development frameworks to learn or to get in your way. You might also want to consult the Code of Conduct, and there is a Matrix room at #fbone:matrix.freedombone.net
-Adding extra apps
-++-Adding extra apps
+Suppose you have some internet application which you want to add to the system. To do this you need to create an app script which tells the system how to install/remove and also backup/restore. The script should be designed to work with the current stable version of Debian.
@@ -270,9 +179,10 @@ To create a script for a generic PHP plus MySql/MariaDB web app with a couple of-@@ -282,9 +192,10 @@ For a Nodejs app with MySql/MariaDB database:freedombone-template --app [name] -e [email] -r [repo url] \ - --packages "cowsay libssl-dev" \ - -c [commit] --php yes -d mariadb > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + --packages "cowsay libssl-dev" \ + -c [commit] --php yes -d mariadb > \ src/freedombone-app-myappname-@@ -294,9 +205,10 @@ For a Python app with Postgresql database:freedombone-template --app [name] -e [email] -r [repo url] \ - -c [commit] --node yes -d mariadb \ - --dir /etc/myappname --daemon yes > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + -c [commit] --node yes -d mariadb \ + --dir /etc/myappname --daemon yes > \ src/freedombone-app-myappname-@@ -306,9 +218,10 @@ For a Python app without any database, communicating between the daemon and thefreedombone-template --app [name] -e [email] -r [repo url] \ - -c [commit] -d postgresql \ - --dir /etc/myappname --daemon yes > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + -c [commit] -d postgresql \ + --dir /etc/myappname --daemon yes > \ src/freedombone-app-myappname-@@ -318,9 +231,10 @@ For an app without any database which communicates directly on a particular portfreedombone-template --app [name] -e [email] -r [repo url] \ - -c [commit] --dir /etc/myappname \ - --daemon yes --portinternal 1234 > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + -c [commit] --dir /etc/myappname \ + --daemon yes --portinternal 1234 > \ src/freedombone-app-myappname-@@ -330,9 +244,10 @@ A generic PHP plus MySql/MariaDB web app which is only available on an onion addfreedombone-template --app [name] -e [email] -r [repo url] \ - -c [commit] --dir /etc/myappname \ - --daemon yes --port 5000 > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + -c [commit] --dir /etc/myappname \ + --daemon yes --port 5000 > \ src/freedombone-app-myappname-@@ -342,6 +257,7 @@ For more details see the manpage:freedombone-template --app [name] -e [email] -r [repo url] \ - -c [commit] --php yes -d mariadb \ - --onion yes > \ + +freedombone-template --app [name] -e [email] -r [repo url] \ + -c [commit] --php yes -d mariadb \ + --onion yes > \ src/freedombone-app-myappname+@@ -355,6 +271,7 @@ When your new script is ready for testing you can install it with:man freedombone-template+@@ -364,14 +281,14 @@ Then run the administrator control panel and you should see the new app within <make install-Submit your working app to https://github.com/bashrc/freedombone/issues or create a pull request. +Submit your working app to https://code.freedombone.net/bashrc/freedombone/issues, create a pull request or if you don't have an account there you can send patches via email to bob@freedombone.net.
-Customising mesh images
-++Customising mesh images
+If you want to make your own specially branded version of the mesh images, 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.
diff --git a/website/EN/homeserver.html b/website/EN/homeserver.html index fddecce6..aa2e4356 100644 --- a/website/EN/homeserver.html +++ b/website/EN/homeserver.html @@ -3,33 +3,26 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - - - - - - - + + + + + - + @@ -189,7 +97,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2017 Free Software Foundation, Inc. +Copyright (C) 2012-2013 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU @@ -236,6 +144,7 @@ for the JavaScript code in this tag.+-@@ -243,9 +152,9 @@ for the JavaScript code in this tag.
-Home Server
-++Home Server
+The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
@@ -255,9 +164,10 @@ First install freedombone onto your local system (not the target hardware that y+sudo apt-get install git dialog build-essential -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch sudo make install freedombone-image --setup debian @@ -270,9 +180,10 @@ Or on Arch/Parabola:+sudo pacman -S git dialog -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch sudo make install freedombone-image --setup parabola @@ -285,6 +196,7 @@ Now prepare your local system to talk to the freedombone by running the followin+@@ -322,6 +234,7 @@ List what drives are on your system with:freedombone-client+@@ -335,8 +248,9 @@ You can now copy the image to the USB thumb drive, replacing sdX with thels /dev/sd*-@@ -349,6 +263,7 @@ As the system boots for the first time the login is:dd if=/dev/zero of=/dev/sdX bs=32M count=8 -dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync,sync,noerror + +dd if=/dev/zero of=/dev/sdX bs=32M count=8 +dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync,sync,noerror+username: fbone password: freedombone@@ -359,6 +274,7 @@ If you're installing from a microSD card on a single board computer without a sc+@@ -380,6 +296,7 @@ When it's installed on your local system open a terminal and verify the ssh servssh fbone@freedombone.local -p 2222+@@ -399,6 +316,7 @@ Open another terminal window then run:freedombone-client --verify+freedombone-client ssh myusername@freedombone.local -p 2222@@ -459,6 +377,7 @@ Of course, this is just one way in which you can install the Freedombone system.+diff --git a/website/EN/installation.html b/website/EN/installation.html index f28d989d..281657aa 100644 --- a/website/EN/installation.html +++ b/website/EN/installation.html @@ -3,33 +3,26 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - - - -man freedombone-image - - - + + + + + - + @@ -189,7 +97,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2017 Free Software Foundation, Inc. +Copyright (C) 2012-2013 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU @@ -236,65 +144,66 @@ for the JavaScript code in this tag.+-
-Installation
-++-Installation
+-Building an image for a Single Board Computer or Virtual Machine
-++Building an image for a Single Board Computer or Virtual Machine
+-You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the freedombone-image command.
@@ -304,9 +213,10 @@ Install the freedombone commands onto your laptop/desktop:+sudo apt-get install git build-essential dialog -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch sudo make install
@@ -317,6 +227,7 @@ Then install packages needed for building images:+@@ -326,6 +237,7 @@ or on an Arch/Parabola system:freedombone-image --setup debian+@@ -335,6 +247,7 @@ A typical use case to build an 8GB image for a Beaglebone Black is as follows. Yfreedombone-image --setup parabola+@@ -344,6 +257,7 @@ If you prefer an advanced installation with all of the options available then usfreedombone-image -t beaglebone -s 8G+@@ -353,6 +267,7 @@ To build a 64bit Qemu image:freedombone-image -t beaglebone -s 8G --minimal no+@@ -366,49 +281,56 @@ If the image build fails with an error such as "Error reading from server. Refreedombone-image -t qemu-x86_64 -s 8G+freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian-Checklist
-++-Checklist
+Before installing Freedombone you will need a few things.
-
- Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt.
-- System with a new installation of Debian Stretch or a downloaded/prepared disk image
-- Ethernet connection between the system and your internet router
-- That it is possible to forward ports from the internet router to the system, typically via firewall settings
-- Have ssh access to the system, typically via fbone@freedombone.local on port 2222
+- Have some domains, or subdomains, registered with a dynamic DNS service. For the full install you may need two "official" purchased domains or be using a subdomain provider which is supported by Let's Encrypt. +
+- System with a new installation of Debian Stretch or a downloaded/prepared disk image +
+- Ethernet connection between the system and your internet router +
+- That it is possible to forward ports from the internet router to the system, typically via firewall settings +
+- Have ssh access to the system, typically via fbone@freedombone.local on port 2222 +
-Installation
-++Installation
+-There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
-On a Laptop, Netbook or Desktop machine
-++On a Laptop, Netbook or Desktop machine
+-If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
+su apt-get update apt-get -y install git dialog build-essential -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch make install freedombone menuconfig @@ -417,21 +339,28 @@ freedombone menuconfig
-On a single board computer (SBC)
-++-On a single board computer (SBC)
+Currently the following boards are supported:
-
- Beaglebone Black
-- Cubieboard 2
-- Cubietruck (Cubieboard 3)
-- PCDuino3
-- olinuxino Lime
-- olinuxino Lime2
-- olinuxino Micro
+- Beaglebone Black +
+- Cubieboard 2 +
+- Cubietruck (Cubieboard 3) +
+- PCDuino3 +
+- olinuxino Lime +
+- olinuxino Lime2 +
+- olinuxino Micro +
@@ -439,6 +368,7 @@ If there is no existing image available then you can build one from scratch. See
+@@ -448,6 +378,7 @@ And the hash with:gpg --verify filename.img.asc+@@ -457,6 +388,7 @@ If the image is compressed then decompress it with:sha256sum filename.img+@@ -466,7 +398,8 @@ Then copy it to a microSD card. Depending on your system you may need an adaptorunxz filename.img.xz-@@ -475,6 +408,7 @@ Where sdX is the microSD drive. You can check which drive is the microSDsudo dd bs=32M if=filename.img of=/dev/sdX conv=fdatasync,sync,noerror + +sudo dd bs=32M if=filename.img of=/dev/sdX conv=fdatasync,sync,noerror+@@ -488,6 +422,7 @@ With the board connected and running you can ssh into the system with:ls /dev/sd*+@@ -498,14 +433,15 @@ Using the password 'freedombone'. Take a note of the new login password and thenssh fbone@freedombone.local -p 2222-As a Virtual Machine
-++-As a Virtual Machine
+Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
+@@ -517,42 +453,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a noqemu-system-x86_64 -m 1G filename.img-Social Key Management - the 'Unforgettable Key'
-++Social Key Management - the 'Unforgettable Key'
+-During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
-You have the gnupg keyring on an encrypted USB drive
-++-You have the gnupg keyring on an encrypted USB drive
+If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
-You have a number of key fragments on USB drives retrieved from friends
-++-You have a number of key fragments on USB drives retrieved from friends
+-If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives. +If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives.
-You can specify some ssh login details for friends servers containing key fragments
-+-+You can specify some ssh login details for friends servers containing key fragments
+Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
-Final Setup
-++-Final Setup
+Any manual post-installation setup instructions or passwords can be found in /home/username/README.
@@ -565,126 +501,127 @@ On your internet router, typically under firewall settings, open the following p- + - + - Service -Ports +Service +Ports - HTTP -80 +HTTP +80 - HTTPS -443 +HTTPS +443 - SSH -2222 +SSH +2222 - DLNA -1900 +DLNA +1900 - DLNA -8200 +DLNA +8200 - XMPP -5222..5223 +XMPP +5222..5223 - XMPP -5269 +XMPP +5269 - XMPP -5280..5281 +XMPP +5280..5281 - IRC -6697 +IRC +6697 - Git -9418 +Git +9418 - 25 +25 - 587 +587 - 465 +465 - 993 +993 - VoIP -64738 +VoIP +64738 - VoIP -5060 +VoIP +5060 - Tox -33445 +Tox +33445 - Syncthing -22000 +Syncthing +22000 -Keydrives
-++Keydrives
+-After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
-Master Keydrive
-++-Master Keydrive
+This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Then plug it into the Freedombone system, then from your local machine run:
+@@ -694,14 +631,15 @@ Select Administrator controls then Backup and Restore then Backssh myusername@mydomainname -p 2222-Fragment keydrives
-+-+Fragment keydrives
+This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Plug it into the Freedombone system then from your local machine run the following commands:
+@@ -716,18 +654,19 @@ Fragments are randomly assigned and so you will need at least three or four keydssh myusername@mydomainname -p 2222-On Client Machines
-++On Client Machines
+-You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
+sudo apt-get update sudo apt-get install git dialog haveged build-essential -git clone https://github.com/bashrc/freedombone -cd freedombone +git clone https://code.freedombone.net/bashrc/freedombone +cd freedombone git checkout stretch sudo make install freedombone-client @@ -736,14 +675,15 @@ freedombone-client
--Administering the system
-+diff --git a/website/EN/support.html b/website/EN/support.html index c18a68b1..a29e0777 100644 --- a/website/EN/support.html +++ b/website/EN/support.html @@ -4,7 +4,7 @@+Administering the system
+To administer the system after installation log in via ssh, become the root user and then launch the control panel.
+@@ -752,9 +692,14 @@ To administer the system after installation log in via ssh, become the root user Select Administrator controls then from there you will be able to perform various tasks, such as backups, adding and removing users and so on. You can also do this via commands, which are typically installed as /usr/local/bin/freedombone* and the corresponding manpages. -ssh myusername@freedombone.local -p 2222-Return to the home page - +++<center> +Return to the <a href="index.html">home page</a> +</center> +
+ +- + @@ -281,11 +281,10 @@ Raising awareness beyond the near zero current level, overcoming fear and parano Translations
-To add translations modify the json files within the locale subdirectory. Then make a pull request on the Github site. +To add translations modify the json files within the locale subdirectory. Then make a pull request on code.freedombone.net or send patches via email to bob@freedombone.net.
Packaging