Update web documentation for move away from github

This commit is contained in:
Bob Mottram 2018-06-04 18:40:53 +01:00
parent ac76bf4eaf
commit 14f4261574
20 changed files with 378 additions and 694 deletions

View File

@ -67,7 +67,7 @@ If you are an Emacs user it's also possible to set up GNU Social mode as follows
#+begin_src bash :tangle no
mkdir ~/elisp
git clone https://github.com/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
git clone https://code.freedombone.net/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
echo "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" >> ~/.emacs
echo "(require 'gnu-social-mode)" >> ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" >> ~/.emacs

View File

@ -57,7 +57,7 @@ If you are an Emacs user it's also possible to set up GNU Social mode, which is
#+begin_src bash :tangle no
mkdir ~/elisp
git clone https://github.com/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
git clone https://code.freedombone.net/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
echo "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" >> ~/.emacs
echo "(require 'gnu-social-mode)" >> ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" >> ~/.emacs

View File

@ -61,7 +61,7 @@ Then clone the Freedombone repository and checkout the stretch development branc
#+begin_src bash
apt-get -y 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
#+end_src

View File

@ -33,7 +33,7 @@ On your laptop or desktop prepare a microSD card image as follows. To create an
#+begin_src bash
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
@ -44,7 +44,7 @@ Or on Arch/Parabola:
#+begin_src bash
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

View File

@ -13,15 +13,9 @@
Freedombone is really just a couple of [[https://www.gnu.org/software/bash][bash]] scripts which install and configure software on a Debian GNU/Linux system. If you're a system administrator, software engineer or Linux hobbyist you'll probably be familiar with command line scripting and be able to make your own modifications or custom variants to suit your needs. Freedombone is licensed under the [[https://www.gnu.org/licenses/agpl.html][GNU Affero General Public License version 3]] (or later).
You can find the source code for this project [[https://github.com/bashrc/freedombone][on Github]].
You can find the source code for this project on [[https://code.freedombone.net/bashrc/freedombone][code.freedombone.net]].
Bugs or feature requests should be [[https://github.com/bashrc/freedombone/issues][entered here]].
*Why Github?*
Github is closed source. Sooner or later it will probably turn evil or become like Sourceforge - which in the distant past was also once the darling of open source developers but has long since fallen from grace. The biggest reason to use Github is just the number of eyeballs there and the easy discoverability of projects.
Longer term it is expected that the source code for this project will also be self-hosted, with Github acting only as a mirror to increase visibility.
Bugs or feature requests should be [[https://code.freedombone.net/bashrc/freedombone/issues][entered here]].
#+BEGIN_EXPORT html
<center>

View File

@ -25,7 +25,7 @@ It's still possible to install the system onto these unsupported devices if you
su
apt-get update
apt-get -qy install build-essential git dialog
git clone https://github.com/bashrc/freedombone
git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone
git checkout stretch
make install

View File

@ -88,7 +88,7 @@ make install
Then run the administrator control panel and you should see the new app within *Add/Remove apps*.
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
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.

View File

@ -18,7 +18,7 @@ First install freedombone onto your local system (not the target hardware that y
#+begin_src bash
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
@ -30,7 +30,7 @@ Or on Arch/Parabola:
#+begin_src bash
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

View File

@ -28,7 +28,7 @@ Install the freedombone commands onto your laptop/desktop:
#+BEGIN_SRC bash
sudo apt-get install git build-essential dialog
git clone https://github.com/bashrc/freedombone
git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone
git checkout stretch
sudo make install
@ -90,7 +90,7 @@ If you have an existing system, such as an old laptop or netbook which you can l
su
apt-get update
apt-get -y 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
make install
@ -219,7 +219,7 @@ You can configure laptops or desktop machines which connect to the Freedombone s
#+BEGIN_SRC bash
sudo apt-get update
sudo apt-get install git dialog haveged 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

View File

@ -69,8 +69,7 @@ Many people are unaware that running their own internet services /is even a poss
Raising awareness beyond the near zero current level, overcoming fear and paranoia and dispelling some of the prevalent myths will definitely help.
** Translations
To add translations modify the json files within the *locale* subdirectory. Then make a pull request on the [[https://github.com/bashrc/freedombone][Github site]].
To add translations modify the json files within the *locale* subdirectory. Then make a pull request on [[https://code.freedombone.net/bashrc/freedombone][code.freedombone.net]] or send patches via email to bob@freedombone.net.
** Packaging
Helping to package GNU Social and Hubzilla for Debian would be beneficial.

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 12:14 -->
<!-- 2018-06-04 Mon 18:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -273,7 +273,7 @@ If you are an Emacs user it's also possible to set up GNU Social mode as follows
<div class="org-src-container">
<pre class="src src-bash">mkdir ~/elisp
git clone https://github.com/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
git clone https://code.freedombone.net/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
echo "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" &gt;&gt; ~/.emacs
echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" &gt;&gt; ~/.emacs

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 12:34 -->
<!-- 2018-06-04 Mon 18:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -254,7 +254,7 @@ If you are an Emacs user it's also possible to set up GNU Social mode, which is
<div class="org-src-container">
<pre class="src src-bash">mkdir ~/elisp
git clone https://github.com/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
git clone https://code.freedombone.net/bashrc/gnu-social-mode ~/elisp/gnu-social-mode
echo "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" &gt;&gt; ~/.emacs
echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" &gt;&gt; ~/.emacs

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-05-10 Thu 11:47 -->
<title></title>
<!-- 2018-06-04 Mon 18:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Installing Freedombone on Armbian"
/>
<meta name="keywords" content="freedombone, debian, armbian, sbc" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,6 +144,7 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
@ -243,7 +152,12 @@ for the JavaScript code in this tag.
</div>
<center><h1>Installing on Armbian</h1></center>
<div class="export">
<p>
&lt;center&gt;&lt;h1&gt;Installing on Armbian&lt;/h1&gt;&lt;/center&gt;
</p>
</div>
<blockquote>
<p>
@ -260,7 +174,8 @@ Download the Armbian image for your board. It must be version 9 (Stretch), other
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=[Armbian .img file] <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync,sync,noerror
<pre class="src src-bash">sudo dd bs=32M if=[Armbian .img file] of=/dev/sdX conv=fdatasync,sync,noerror
</pre>
</div>
@ -285,6 +200,7 @@ Once you know the local IP address of your ARM board then you can log into it wi
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh root@[local IP address]
</pre>
</div>
@ -304,6 +220,7 @@ When the user account is created type <b>exit</b> to leave the ssh session then
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh myusername@[local IP address]
</pre>
</div>
@ -313,6 +230,7 @@ Become the root user:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo su
</pre>
</div>
@ -322,9 +240,10 @@ Then clone the Freedombone repository and checkout the stretch development branc
</p>
<div class="org-src-container">
<pre class="src src-bash">apt-get -y install git dialog build-essential
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone
git checkout stretch
</pre>
</div>
@ -334,6 +253,7 @@ Install the Freedombone commands:
</p>
<div class="org-src-container">
<pre class="src src-bash">make install
</pre>
</div>
@ -343,6 +263,7 @@ And now you can begin installing the Freedombone system. There are two ways of d
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone menuconfig
</pre>
</div>
@ -352,6 +273,7 @@ Alternatively, if you don't own a domain name, don't have administrator access t
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone menuconfig-onion
</pre>
</div>
@ -361,6 +283,7 @@ You will then be taken through a few questions and the system will install. Afte
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh myusername@freedombone.local -p 2222
</pre>
</div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 12:49 -->
<!-- 2018-06-04 Mon 18:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -198,7 +198,7 @@ On your laptop or desktop prepare a microSD card image as follows. To create an
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git dialog build-essential
git clone https://github.com/bashrc/freedombone
git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone
git checkout stretch
sudo make install
@ -213,7 +213,7 @@ Or on Arch/Parabola:
<div class="org-src-container">
<pre class="src src-bash">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

View File

@ -4,13 +4,13 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 12:51 -->
<!-- 2018-06-04 Mon 18:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<meta name="description" content="Freedombone codebase"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombone, code" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center; }
@ -159,23 +159,11 @@ Freedombone is really just a couple of <a href="https://www.gnu.org/software/bas
</p>
<p>
You can find the source code for this project <a href="https://github.com/bashrc/freedombone">on Github</a>.
You can find the source code for this project on <a href="https://code.freedombone.net/bashrc/freedombone">code.freedombone.net</a>.
</p>
<p>
Bugs or feature requests should be <a href="https://github.com/bashrc/freedombone/issues">entered here</a>.
</p>
<p>
<b>Why Github?</b>
</p>
<p>
Github is closed source. Sooner or later it will probably turn evil or become like Sourceforge - which in the distant past was also once the darling of open source developers but has long since fallen from grace. The biggest reason to use Github is just the number of eyeballs there and the easy discoverability of projects.
</p>
<p>
Longer term it is expected that the source code for this project will also be self-hosted, with Github acting only as a mirror to increase visibility.
Bugs or feature requests should be <a href="https://code.freedombone.net/bashrc/freedombone/issues">entered here</a>.
</p>
<div class="export">

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-04-12 Thu 12:55 -->
<!-- 2018-06-04 Mon 18:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -177,7 +177,7 @@ It's still possible to install the system onto these unsupported devices if you
<pre class="src src-bash">su
apt-get update
apt-get -qy install build-essential git dialog
git clone https://github.com/bashrc/freedombone
git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone
git checkout stretch
make install

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-05-14 Mon 19:43 -->
<title></title>
<!-- 2018-06-04 Mon 18:39 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone developers guide"
/>
<meta name="keywords" content="freedombone, developers" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,27 +144,28 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p>
</div>
<div id="outline-container-orgd0bf853" class="outline-2">
<h2 id="orgd0bf853">Developers Guide</h2>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Developers Guide</h2>
</div>
<div id="outline-container-orgaedd476" class="outline-2">
<h2 id="orgaedd476">Introduction</h2>
<div class="outline-text-2" id="text-orgaedd476">
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Introduction</h2>
<div class="outline-text-2" id="text-2">
<p>
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 <a href="./codeofconduct.html">Code of Conduct</a>, and there is a Matrix room at <b>#fbone:matrix.freedombone.net</b>
</p>
</div>
</div>
<div id="outline-container-org3e1ecd6" class="outline-2">
<h2 id="org3e1ecd6">Adding extra apps</h2>
<div class="outline-text-2" id="text-org3e1ecd6">
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">Adding extra apps</h2>
<div class="outline-text-2" id="text-3">
<p>
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.
</p>
@ -270,9 +179,10 @@ To create a script for a generic PHP plus MySql/MariaDB web app with a couple of
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
--packages <span class="org-string">"cowsay libssl-dev"</span> <span class="org-sh-escaped-newline">\</span>
-c [commit] --php yes -d mariadb &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--packages "cowsay libssl-dev" \
-c [commit] --php yes -d mariadb &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -282,9 +192,10 @@ For a Nodejs app with MySql/MariaDB database:
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
-c [commit] --node yes -d mariadb <span class="org-sh-escaped-newline">\</span>
--dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] --node yes -d mariadb \
--dir /etc/myappname --daemon yes &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -294,9 +205,10 @@ For a Python app with Postgresql database:
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
-c [commit] -d postgresql <span class="org-sh-escaped-newline">\</span>
--dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] -d postgresql \
--dir /etc/myappname --daemon yes &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -306,9 +218,10 @@ For a Python app without any database, communicating between the daemon and the
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
-c [commit] --dir /etc/myappname <span class="org-sh-escaped-newline">\</span>
--daemon yes --portinternal 1234 &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] --dir /etc/myappname \
--daemon yes --portinternal 1234 &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -318,9 +231,10 @@ For an app without any database which communicates directly on a particular port
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
-c [commit] --dir /etc/myappname <span class="org-sh-escaped-newline">\</span>
--daemon yes --port 5000 &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] --dir /etc/myappname \
--daemon yes --port 5000 &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -330,9 +244,10 @@ A generic PHP plus MySql/MariaDB web app which is only available on an onion add
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
-c [commit] --php yes -d mariadb <span class="org-sh-escaped-newline">\</span>
--onion yes &gt; <span class="org-sh-escaped-newline">\</span>
<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] --php yes -d mariadb \
--onion yes &gt; \
src/freedombone-app-myappname
</pre>
</div>
@ -342,6 +257,7 @@ For more details see the manpage:
</p>
<div class="org-src-container">
<pre class="src src-bash">man freedombone-template
</pre>
</div>
@ -355,6 +271,7 @@ When your new script is ready for testing you can install it with:
</p>
<div class="org-src-container">
<pre class="src src-bash">make install
</pre>
</div>
@ -364,14 +281,14 @@ Then run the administrator control panel and you should see the new app within <
</p>
<p>
Submit your working app to <b><a href="https://github.com/bashrc/freedombone/issues">https://github.com/bashrc/freedombone/issues</a></b> or create a pull request.
Submit your working app to <b><a href="https://code.freedombone.net/bashrc/freedombone/issues">https://code.freedombone.net/bashrc/freedombone/issues</a></b>, create a pull request or if you don't have an account there you can send patches via email to bob@freedombone.net.
</p>
</div>
</div>
<div id="outline-container-org2b37622" class="outline-2">
<h2 id="org2b37622">Customising mesh images</h2>
<div class="outline-text-2" id="text-org2b37622">
<div id="outline-container-sec-4" class="outline-2">
<h2 id="sec-4">Customising mesh images</h2>
<div class="outline-text-2" id="text-4">
<p>
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 <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>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-05-10 Thu 11:47 -->
<title></title>
<!-- 2018-06-04 Mon 18:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Freedombone home server setup"
/>
<meta name="keywords" content="freedombone, home server" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.title { text-align: center; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.done { color: green; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -236,6 +144,7 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<h1 class="title"></h1>
<div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
@ -243,9 +152,9 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-orgddbcade" class="outline-2">
<h2 id="orgddbcade">Home Server</h2>
<div class="outline-text-2" id="text-orgddbcade">
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Home Server</h2>
<div class="outline-text-2" id="text-1">
<p>
The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
</p>
@ -255,9 +164,10 @@ First install freedombone onto your local system (not the target hardware that y
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git dialog build-essential
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
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:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo pacman -S git dialog
git clone https://github.com/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone
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
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
</pre>
</div>
@ -322,6 +234,7 @@ List what drives are on your system with:
</p>
<div class="org-src-container">
<pre class="src src-bash">ls /dev/sd*
</pre>
</div>
@ -335,8 +248,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p>
<div class="org-src-container">
<pre class="src src-bash">dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
dd <span class="org-variable-name">bs</span>=32M <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,sync,noerror
<pre class="src src-bash">dd if=/dev/zero of=/dev/sdX bs=32M count=8
dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre>
</div>
@ -349,6 +263,7 @@ As the system boots for the first time the login is:
</p>
<div class="org-src-container">
<pre class="src src-bash">username: fbone
password: freedombone
</pre>
@ -359,6 +274,7 @@ If you're installing from a microSD card on a single board computer without a sc
</p>
<div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre>
</div>
@ -380,6 +296,7 @@ When it's installed on your local system open a terminal and verify the ssh serv
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client --verify
</pre>
</div>
@ -399,6 +316,7 @@ Open another terminal window then run:
</p>
<div class="org-src-container">
<pre class="src src-bash">freedombone-client
ssh myusername@freedombone.local -p 2222
</pre>
@ -459,6 +377,7 @@ Of course, this is just one way in which you can install the Freedombone system.
</p>
<div class="org-src-container">
<pre class="src src-bash">man freedombone-image
</pre>
</div>

View File

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

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-05-24 Thu 21:42 -->
<!-- 2018-06-04 Mon 18:37 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
@ -281,11 +281,10 @@ Raising awareness beyond the near zero current level, overcoming fear and parano
<h3 id="sec-3-7">Translations</h3>
<div class="outline-text-3" id="text-3-7">
<p>
To add translations modify the json files within the <b>locale</b> subdirectory. Then make a pull request on the <a href="https://github.com/bashrc/freedombone">Github site</a>.
To add translations modify the json files within the <b>locale</b> subdirectory. Then make a pull request on <a href="https://code.freedombone.net/bashrc/freedombone">code.freedombone.net</a> or send patches via email to bob@freedombone.net.
</p>
</div>
</div>
<div id="outline-container-sec-3-8" class="outline-3">
<h3 id="sec-3-8">Packaging</h3>
<div class="outline-text-3" id="text-3-8">