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 #+begin_src bash :tangle no
mkdir ~/elisp 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 "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" >> ~/.emacs
echo "(require 'gnu-social-mode)" >> ~/.emacs echo "(require 'gnu-social-mode)" >> ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" >> ~/.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 #+begin_src bash :tangle no
mkdir ~/elisp 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 "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" >> ~/.emacs
echo "(require 'gnu-social-mode)" >> ~/.emacs echo "(require 'gnu-social-mode)" >> ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" >> ~/.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 #+begin_src bash
apt-get -y install git dialog build-essential 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 cd freedombone
git checkout stretch git checkout stretch
#+end_src #+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 #+begin_src bash
sudo apt-get install git dialog build-essential 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 cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
@ -44,7 +44,7 @@ Or on Arch/Parabola:
#+begin_src bash #+begin_src bash
sudo pacman -S git dialog sudo pacman -S git dialog
git clone https://github.com/bashrc/freedombone git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install 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). 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]]. Bugs or feature requests should be [[https://code.freedombone.net/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.
#+BEGIN_EXPORT html #+BEGIN_EXPORT html
<center> <center>

View File

@ -25,7 +25,7 @@ It's still possible to install the system onto these unsupported devices if you
su su
apt-get update apt-get update
apt-get -qy install build-essential git dialog 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 cd freedombone
git checkout stretch git checkout stretch
make install 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*. 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 * 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. 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 #+begin_src bash
sudo apt-get install git dialog build-essential 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 cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
@ -30,7 +30,7 @@ Or on Arch/Parabola:
#+begin_src bash #+begin_src bash
sudo pacman -S git dialog sudo pacman -S git dialog
git clone https://github.com/bashrc/freedombone git clone https://code.freedombone.net/bashrc/freedombone
cd freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install

View File

@ -28,7 +28,7 @@ Install the freedombone commands onto your laptop/desktop:
#+BEGIN_SRC bash #+BEGIN_SRC bash
sudo apt-get install git build-essential dialog 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 cd freedombone
git checkout stretch git checkout stretch
sudo make install 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 su
apt-get update apt-get update
apt-get -y install git dialog build-essential 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 cd freedombone
git checkout stretch git checkout stretch
make install make install
@ -219,7 +219,7 @@ You can configure laptops or desktop machines which connect to the Freedombone s
#+BEGIN_SRC bash #+BEGIN_SRC bash
sudo apt-get update sudo apt-get update
sudo apt-get install git dialog haveged build-essential 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 cd freedombone
git checkout stretch git checkout stretch
sudo make install 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. Raising awareness beyond the near zero current level, overcoming fear and paranoia and dispelling some of the prevalent myths will definitely help.
** Translations ** 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 ** Packaging
Helping to package GNU Social and Hubzilla for Debian would be beneficial. 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"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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"> <div class="org-src-container">
<pre class="src src-bash">mkdir ~/elisp <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 "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" &gt;&gt; ~/.emacs
echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" &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"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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"> <div class="org-src-container">
<pre class="src src-bash">mkdir ~/elisp <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 "(add-to-list 'load-path \"~/elisp/gnu-social-mode\")" &gt;&gt; ~/.emacs
echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs echo "(require 'gnu-social-mode)" &gt;&gt; ~/.emacs
echo "(setq gnu-social-server-textlimit 2000" &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"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-10 Thu 11:47 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-04 Mon 18:30 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Installing Freedombone on Armbian"
<meta name="description" content="Installing Freedombone on Armbian"
/> />
<meta name="keywords" content="freedombone, debian, armbian, sbc" /> <meta name="keywords" content="freedombone, debian, armbian, sbc" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center; }
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
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-emacs-lisp:before { content: 'Emacs Lisp'; } pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
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'; }
table { border-collapse:collapse; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. 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 The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU 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> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <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> </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> <blockquote>
<p> <p>
@ -260,7 +174,8 @@ Download the Armbian image for your board. It must be version 9 (Stretch), other
</p> </p>
<div class="org-src-container"> <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> </pre>
</div> </div>
@ -285,6 +200,7 @@ Once you know the local IP address of your ARM board then you can log into it wi
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh root@[local IP address] <pre class="src src-bash">ssh root@[local IP address]
</pre> </pre>
</div> </div>
@ -304,6 +220,7 @@ When the user account is created type <b>exit</b> to leave the ssh session then
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh myusername@[local IP address] <pre class="src src-bash">ssh myusername@[local IP address]
</pre> </pre>
</div> </div>
@ -313,6 +230,7 @@ Become the root user:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo su <pre class="src src-bash">sudo su
</pre> </pre>
</div> </div>
@ -322,9 +240,10 @@ Then clone the Freedombone repository and checkout the stretch development branc
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">apt-get -y install git dialog build-essential <pre class="src 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
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
</pre> </pre>
</div> </div>
@ -334,6 +253,7 @@ Install the Freedombone commands:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">make install <pre class="src src-bash">make install
</pre> </pre>
</div> </div>
@ -343,6 +263,7 @@ And now you can begin installing the Freedombone system. There are two ways of d
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone menuconfig <pre class="src src-bash">freedombone menuconfig
</pre> </pre>
</div> </div>
@ -352,6 +273,7 @@ Alternatively, if you don't own a domain name, don't have administrator access t
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone menuconfig-onion <pre class="src src-bash">freedombone menuconfig-onion
</pre> </pre>
</div> </div>
@ -361,6 +283,7 @@ You will then be taken through a few questions and the system will install. Afte
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh myusername@freedombone.local -p 2222 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
</pre> </pre>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git dialog build-essential <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 cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
@ -213,7 +213,7 @@ Or on Arch/Parabola:
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo pacman -S git dialog <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 cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install

View File

@ -4,13 +4,13 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; } .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>
<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>
<p> <p>
Bugs or feature requests should be <a href="https://github.com/bashrc/freedombone/issues">entered here</a>. Bugs or feature requests should be <a href="https://code.freedombone.net/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.
</p> </p>
<div class="export"> <div class="export">

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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 <pre class="src src-bash">su
apt-get update apt-get update
apt-get -qy install build-essential git dialog 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 cd freedombone
git checkout stretch git checkout stretch
make install make install

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-14 Mon 19:43 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-04 Mon 18:39 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Freedombone developers guide"
<meta name="description" content="Freedombone developers guide"
/> />
<meta name="keywords" content="freedombone, developers" /> <meta name="keywords" content="freedombone, developers" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center; }
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
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-emacs-lisp:before { content: 'Emacs Lisp'; } pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
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'; }
table { border-collapse:collapse; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. 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 The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU 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> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p> </p>
</div> </div>
<div id="outline-container-orgd0bf853" class="outline-2"> <div id="outline-container-sec-1" class="outline-2">
<h2 id="orgd0bf853">Developers Guide</h2> <h2 id="sec-1">Developers Guide</h2>
</div> </div>
<div id="outline-container-orgaedd476" class="outline-2"> <div id="outline-container-sec-2" class="outline-2">
<h2 id="orgaedd476">Introduction</h2> <h2 id="sec-2">Introduction</h2>
<div class="outline-text-2" id="text-orgaedd476"> <div class="outline-text-2" id="text-2">
<p> <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> 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> </p>
</div> </div>
</div> </div>
<div id="outline-container-org3e1ecd6" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="org3e1ecd6">Adding extra apps</h2> <h2 id="sec-3">Adding extra apps</h2>
<div class="outline-text-2" id="text-org3e1ecd6"> <div class="outline-text-2" id="text-3">
<p> <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. 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> </p>
@ -270,9 +179,10 @@ To create a script for a generic PHP plus MySql/MariaDB web app with a couple of
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
-c [commit] --php yes -d mariadb &gt; <span class="org-sh-escaped-newline">\</span> --packages "cowsay libssl-dev" \
-c [commit] --php yes -d mariadb &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -282,9 +192,10 @@ For a Nodejs app with MySql/MariaDB database:
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span> -c [commit] --node yes -d mariadb \
--dir /etc/myappname --daemon yes &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -294,9 +205,10 @@ For a Python app with Postgresql database:
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span> -c [commit] -d postgresql \
--dir /etc/myappname --daemon yes &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -306,9 +218,10 @@ For a Python app without any database, communicating between the daemon and the
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--daemon yes --portinternal 1234 &gt; <span class="org-sh-escaped-newline">\</span> -c [commit] --dir /etc/myappname \
--daemon yes --portinternal 1234 &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -318,9 +231,10 @@ For an app without any database which communicates directly on a particular port
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--daemon yes --port 5000 &gt; <span class="org-sh-escaped-newline">\</span> -c [commit] --dir /etc/myappname \
--daemon yes --port 5000 &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -330,9 +244,10 @@ A generic PHP plus MySql/MariaDB web app which is only available on an onion add
</p> </p>
<div class="org-src-container"> <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> <pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
--onion yes &gt; <span class="org-sh-escaped-newline">\</span> -c [commit] --php yes -d mariadb \
--onion yes &gt; \
src/freedombone-app-myappname src/freedombone-app-myappname
</pre> </pre>
</div> </div>
@ -342,6 +257,7 @@ For more details see the manpage:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">man freedombone-template <pre class="src src-bash">man freedombone-template
</pre> </pre>
</div> </div>
@ -355,6 +271,7 @@ When your new script is ready for testing you can install it with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">make install <pre class="src src-bash">make install
</pre> </pre>
</div> </div>
@ -364,14 +281,14 @@ Then run the administrator control panel and you should see the new app within <
</p> </p>
<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> </p>
</div> </div>
</div> </div>
<div id="outline-container-org2b37622" class="outline-2"> <div id="outline-container-sec-4" class="outline-2">
<h2 id="org2b37622">Customising mesh images</h2> <h2 id="sec-4">Customising mesh images</h2>
<div class="outline-text-2" id="text-org2b37622"> <div class="outline-text-2" id="text-4">
<p> <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. 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> </p>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-10 Thu 11:47 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-04 Mon 18:33 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Freedombone home server setup"
<meta name="description" content="Freedombone home server setup"
/> />
<meta name="keywords" content="freedombone, home server" /> <meta name="keywords" content="freedombone, home server" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center; }
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
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-emacs-lisp:before { content: 'Emacs Lisp'; } pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
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'; }
table { border-collapse:collapse; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. 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 The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU 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> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <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>
<div id="outline-container-orgddbcade" class="outline-2"> <div id="outline-container-sec-1" class="outline-2">
<h2 id="orgddbcade">Home Server</h2> <h2 id="sec-1">Home Server</h2>
<div class="outline-text-2" id="text-orgddbcade"> <div class="outline-text-2" id="text-1">
<p> <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. 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> </p>
@ -255,9 +164,10 @@ First install freedombone onto your local system (not the target hardware that y
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git dialog build-essential <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
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
freedombone-image --setup debian freedombone-image --setup debian
@ -270,9 +180,10 @@ Or on Arch/Parabola:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo pacman -S git dialog <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
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
freedombone-image --setup parabola freedombone-image --setup parabola
@ -285,6 +196,7 @@ Now prepare your local system to talk to the freedombone by running the followin
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-client <pre class="src src-bash">freedombone-client
</pre> </pre>
</div> </div>
@ -322,6 +234,7 @@ List what drives are on your system with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ls /dev/sd* <pre class="src src-bash">ls /dev/sd*
</pre> </pre>
</div> </div>
@ -335,8 +248,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p> </p>
<div class="org-src-container"> <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> </pre>
</div> </div>
@ -349,6 +263,7 @@ As the system boots for the first time the login is:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">username: fbone <pre class="src src-bash">username: fbone
password: freedombone password: freedombone
</pre> </pre>
@ -359,6 +274,7 @@ If you're installing from a microSD card on a single board computer without a sc
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre> </pre>
</div> </div>
@ -380,6 +296,7 @@ When it's installed on your local system open a terminal and verify the ssh serv
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-client --verify <pre class="src src-bash">freedombone-client --verify
</pre> </pre>
</div> </div>
@ -399,6 +316,7 @@ Open another terminal window then run:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-client <pre class="src src-bash">freedombone-client
ssh myusername@freedombone.local -p 2222 ssh myusername@freedombone.local -p 2222
</pre> </pre>
@ -459,6 +377,7 @@ Of course, this is just one way in which you can install the Freedombone system.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">man freedombone-image <pre class="src src-bash">man freedombone-image
</pre> </pre>
</div> </div>

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-10 Thu 11:48 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-04 Mon 18:35 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Freedombone installation"
<meta name="description" content="Freedombone installation"
/> />
<meta name="keywords" content="freedombone, installation" /> <meta name="keywords" content="freedombone, installation" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center; }
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
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-emacs-lisp:before { content: 'Emacs Lisp'; } pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
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'; }
table { border-collapse:collapse; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. 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 The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU 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> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p> </p>
</div> </div>
<div id="outline-container-org0b64622" class="outline-2"> <div id="outline-container-sec-1" class="outline-2">
<h2 id="org0b64622">Installation</h2> <h2 id="sec-1">Installation</h2>
<div class="outline-text-2" id="text-org0b64622"> <div class="outline-text-2" id="text-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
<col class="org-left" /> <col class="left" />
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <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>
<tr> <tr>
<td class="org-left"><a href="#org6e8f4d2">Checklist</a></td> <td class="left"><a href="#sec-3">Checklist</a></td>
</tr> </tr>
<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>
<tr> <tr>
<td class="org-left"><a href="#org0b64622">Installation</a></td> <td class="left"><a href="#sec-1">Installation</a></td>
</tr> </tr>
<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>
<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>
<tr> <tr>
<td class="org-left"><a href="#org39a9487">Keydrives</a></td> <td class="left"><a href="#sec-7">Keydrives</a></td>
</tr> </tr>
<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>
<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> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div id="outline-container-org25d1365" class="outline-2"> <div id="outline-container-sec-2" class="outline-2">
<h2 id="org25d1365">Building an image for a Single Board Computer or Virtual Machine</h2> <h2 id="sec-2">Building an image for a Single Board Computer or Virtual Machine</h2>
<div class="outline-text-2" id="text-org25d1365"> <div class="outline-text-2" id="text-2">
<p> <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. 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> </p>
@ -304,9 +213,10 @@ Install the freedombone commands onto your laptop/desktop:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install git build-essential dialog <pre class="src src-bash">sudo apt-get install git build-essential dialog
git clone https://github.com/bashrc/freedombone git clone https://code.freedombone.net/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
</pre> </pre>
@ -317,6 +227,7 @@ Then install packages needed for building images:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image --setup debian <pre class="src src-bash">freedombone-image --setup debian
</pre> </pre>
</div> </div>
@ -326,6 +237,7 @@ or on an Arch/Parabola system:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image --setup parabola <pre class="src src-bash">freedombone-image --setup parabola
</pre> </pre>
</div> </div>
@ -335,6 +247,7 @@ A typical use case to build an 8GB image for a Beaglebone Black is as follows. Y
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
</pre> </pre>
</div> </div>
@ -344,6 +257,7 @@ If you prefer an advanced installation with all of the options available then us
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
</pre> </pre>
</div> </div>
@ -353,6 +267,7 @@ To build a 64bit Qemu image:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
</pre> </pre>
</div> </div>
@ -366,49 +281,56 @@ If the image build fails with an error such as "<i>Error reading from server. Re
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org6e8f4d2" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="org6e8f4d2">Checklist</h2> <h2 id="sec-3">Checklist</h2>
<div class="outline-text-2" id="text-org6e8f4d2"> <div class="outline-text-2" id="text-3">
<p> <p>
Before installing Freedombone you will need a few things. Before installing Freedombone you will need a few things.
</p> </p>
<ul class="org-ul"> <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>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>System with a new installation of Debian Stretch or a downloaded/prepared disk image</li> </li>
<li>Ethernet connection between the system and your internet router</li> <li>System with a new installation of Debian Stretch or a downloaded/prepared disk image
<li>That it is possible to forward ports from the internet router to the system, typically via firewall settings</li> </li>
<li>Have ssh access to the system, typically via fbone@freedombone.local on port 2222</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> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org9c73f16" class="outline-2"> <div id="outline-container-sec-4" class="outline-2">
<h2 id="org9c73f16">Installation</h2> <h2 id="sec-4">Installation</h2>
<div class="outline-text-2" id="text-org9c73f16"> <div class="outline-text-2" id="text-4">
<p> <p>
There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine. There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
</p> </p>
</div> </div>
<div id="outline-container-org94f9c89" class="outline-3"> <div id="outline-container-sec-4-1" class="outline-3">
<h3 id="org94f9c89">On a Laptop, Netbook or Desktop machine</h3> <h3 id="sec-4-1">On a Laptop, Netbook or Desktop machine</h3>
<div class="outline-text-3" id="text-org94f9c89"> <div class="outline-text-3" id="text-4-1">
<p> <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: 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> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">su <pre class="src src-bash">su
apt-get update apt-get update
apt-get -y install git dialog build-essential apt-get -y install git dialog build-essential
git clone https://github.com/bashrc/freedombone git clone https://code.freedombone.net/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
make install make install
freedombone menuconfig freedombone menuconfig
@ -417,21 +339,28 @@ freedombone menuconfig
</div> </div>
</div> </div>
<div id="outline-container-org9b005d5" class="outline-3"> <div id="outline-container-sec-4-2" class="outline-3">
<h3 id="org9b005d5">On a single board computer (SBC)</h3> <h3 id="sec-4-2">On a single board computer (SBC)</h3>
<div class="outline-text-3" id="text-org9b005d5"> <div class="outline-text-3" id="text-4-2">
<p> <p>
Currently the following boards are supported: Currently the following boards are supported:
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a></li> <li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a>
<li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a></li> </li>
<li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a></li> <li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a>
<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a></li> </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://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a>
<li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a></li> </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://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> </ul>
<p> <p>
@ -439,6 +368,7 @@ If there is no existing image available then you can build one from scratch. See
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">gpg --verify filename.img.asc <pre class="src src-bash">gpg --verify filename.img.asc
</pre> </pre>
</div> </div>
@ -448,6 +378,7 @@ And the hash with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sha256sum filename.img <pre class="src src-bash">sha256sum filename.img
</pre> </pre>
</div> </div>
@ -457,6 +388,7 @@ If the image is compressed then decompress it with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">unxz filename.img.xz <pre class="src src-bash">unxz filename.img.xz
</pre> </pre>
</div> </div>
@ -466,7 +398,8 @@ Then copy it to a microSD card. Depending on your system you may need an adaptor
</p> </p>
<div class="org-src-container"> <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> </pre>
</div> </div>
@ -475,6 +408,7 @@ Where <b>sdX</b> is the microSD drive. You can check which drive is the microSD
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ls /dev/sd* <pre class="src src-bash">ls /dev/sd*
</pre> </pre>
</div> </div>
@ -488,6 +422,7 @@ With the board connected and running you can ssh into the system with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre> </pre>
</div> </div>
@ -498,14 +433,15 @@ Using the password 'freedombone'. Take a note of the new login password and then
</div> </div>
</div> </div>
<div id="outline-container-orgc53af7b" class="outline-3"> <div id="outline-container-sec-4-3" class="outline-3">
<h3 id="orgc53af7b">As a Virtual Machine</h3> <h3 id="sec-4-3">As a Virtual Machine</h3>
<div class="outline-text-3" id="text-orgc53af7b"> <div class="outline-text-3" id="text-4-3">
<p> <p>
Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with: Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
</pre> </pre>
</div> </div>
@ -517,42 +453,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a no
</div> </div>
</div> </div>
<div id="outline-container-org000b565" class="outline-2"> <div id="outline-container-sec-5" class="outline-2">
<h2 id="org000b565">Social Key Management - the 'Unforgettable Key'</h2> <h2 id="sec-5">Social Key Management - the 'Unforgettable Key'</h2>
<div class="outline-text-2" id="text-org000b565"> <div class="outline-text-2" id="text-5">
<p> <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 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> </p>
</div> </div>
<div id="outline-container-org3dd5e36" class="outline-3"> <div id="outline-container-sec-5-1" class="outline-3">
<h3 id="org3dd5e36">You have the gnupg keyring on an encrypted USB drive</h3> <h3 id="sec-5-1">You have the gnupg keyring on an encrypted USB drive</h3>
<div class="outline-text-3" id="text-org3dd5e36"> <div class="outline-text-3" id="text-5-1">
<p> <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. 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> </p>
</div> </div>
</div> </div>
<div id="outline-container-orga01493d" class="outline-3"> <div id="outline-container-sec-5-2" class="outline-3">
<h3 id="orga01493d">You have a number of key fragments on USB drives retrieved from friends</h3> <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-orga01493d"> <div class="outline-text-3" id="text-5-2">
<p> <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> </p>
</div> </div>
</div> </div>
<div id="outline-container-org7fee2fd" class="outline-3"> <div id="outline-container-sec-5-3" class="outline-3">
<h3 id="org7fee2fd">You can specify some ssh login details for friends servers containing key fragments</h3> <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-org7fee2fd"> <div class="outline-text-3" id="text-5-3">
<p> <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. 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> </p>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc5a4a1b" class="outline-2"> <div id="outline-container-sec-6" class="outline-2">
<h2 id="orgc5a4a1b">Final Setup</h2> <h2 id="sec-6">Final Setup</h2>
<div class="outline-text-2" id="text-orgc5a4a1b"> <div class="outline-text-2" id="text-6">
<p> <p>
Any manual post-installation setup instructions or passwords can be found in /home/username/README. Any manual post-installation setup instructions or passwords can be found in /home/username/README.
</p> </p>
@ -565,126 +501,127 @@ On your internet router, typically under firewall settings, open the following p
<colgroup> <colgroup>
<col class="org-left" /> <col class="left" />
<col class="org-right" /> <col class="right" />
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th scope="col" class="org-left">Service</th> <th scope="col" class="left">Service</th>
<th scope="col" class="org-right">Ports</th> <th scope="col" class="right">Ports</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td class="org-left">HTTP</td> <td class="left">HTTP</td>
<td class="org-right">80</td> <td class="right">80</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">HTTPS</td> <td class="left">HTTPS</td>
<td class="org-right">443</td> <td class="right">443</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">SSH</td> <td class="left">SSH</td>
<td class="org-right">2222</td> <td class="right">2222</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">DLNA</td> <td class="left">DLNA</td>
<td class="org-right">1900</td> <td class="right">1900</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">DLNA</td> <td class="left">DLNA</td>
<td class="org-right">8200</td> <td class="right">8200</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">XMPP</td> <td class="left">XMPP</td>
<td class="org-right">5222..5223</td> <td class="right">5222..5223</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">XMPP</td> <td class="left">XMPP</td>
<td class="org-right">5269</td> <td class="right">5269</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">XMPP</td> <td class="left">XMPP</td>
<td class="org-right">5280..5281</td> <td class="right">5280..5281</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">IRC</td> <td class="left">IRC</td>
<td class="org-right">6697</td> <td class="right">6697</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Git</td> <td class="left">Git</td>
<td class="org-right">9418</td> <td class="right">9418</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Email</td> <td class="left">Email</td>
<td class="org-right">25</td> <td class="right">25</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Email</td> <td class="left">Email</td>
<td class="org-right">587</td> <td class="right">587</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Email</td> <td class="left">Email</td>
<td class="org-right">465</td> <td class="right">465</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Email</td> <td class="left">Email</td>
<td class="org-right">993</td> <td class="right">993</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">VoIP</td> <td class="left">VoIP</td>
<td class="org-right">64738</td> <td class="right">64738</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">VoIP</td> <td class="left">VoIP</td>
<td class="org-right">5060</td> <td class="right">5060</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Tox</td> <td class="left">Tox</td>
<td class="org-right">33445</td> <td class="right">33445</td>
</tr> </tr>
<tr> <tr>
<td class="org-left">Syncthing</td> <td class="left">Syncthing</td>
<td class="org-right">22000</td> <td class="right">22000</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div id="outline-container-org39a9487" class="outline-2"> <div id="outline-container-sec-7" class="outline-2">
<h2 id="org39a9487">Keydrives</h2> <h2 id="sec-7">Keydrives</h2>
<div class="outline-text-2" id="text-org39a9487"> <div class="outline-text-2" id="text-7">
<p> <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: 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> </p>
</div> </div>
<div id="outline-container-org9168e0e" class="outline-3"> <div id="outline-container-sec-7-1" class="outline-3">
<h3 id="org9168e0e">Master Keydrive</h3> <h3 id="sec-7-1">Master Keydrive</h3>
<div class="outline-text-3" id="text-org9168e0e"> <div class="outline-text-3" id="text-7-1">
<p> <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: 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> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh myusername@mydomainname -p 2222 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
</pre> </pre>
</div> </div>
@ -694,14 +631,15 @@ Select <i>Administrator controls</i> then <i>Backup and Restore</i> then <i>Back
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org6b684d8" class="outline-3"> <div id="outline-container-sec-7-2" class="outline-3">
<h3 id="org6b684d8">Fragment keydrives</h3> <h3 id="sec-7-2">Fragment keydrives</h3>
<div class="outline-text-3" id="text-org6b684d8"> <div class="outline-text-3" id="text-7-2">
<p> <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: 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> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh myusername@mydomainname -p 2222 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
</pre> </pre>
</div> </div>
@ -716,18 +654,19 @@ Fragments are randomly assigned and so you will need at least three or four keyd
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgfe68233" class="outline-2"> <div id="outline-container-sec-8" class="outline-2">
<h2 id="orgfe68233">On Client Machines</h2> <h2 id="sec-8">On Client Machines</h2>
<div class="outline-text-2" id="text-orgfe68233"> <div class="outline-text-2" id="text-8">
<p> <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. 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> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get update <pre class="src src-bash">sudo apt-get update
sudo apt-get install git dialog haveged build-essential sudo apt-get install git dialog haveged build-essential
git clone https://github.com/bashrc/freedombone git clone https://code.freedombone.net/bashrc/freedombone
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
freedombone-client freedombone-client
@ -736,14 +675,15 @@ freedombone-client
</div> </div>
</div> </div>
<div id="outline-container-org00cf2bc" class="outline-2"> <div id="outline-container-sec-9" class="outline-2">
<h2 id="org00cf2bc">Administering the system</h2> <h2 id="sec-9">Administering the system</h2>
<div class="outline-text-2" id="text-org00cf2bc"> <div class="outline-text-2" id="text-9">
<p> <p>
To administer the system after installation log in via ssh, become the root user and then launch the control panel. To administer the system after installation log in via ssh, become the root user and then launch the control panel.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh myusername@freedombone.local -p 2222 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
</pre> </pre>
</div> </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. 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> </p>
<center> <div class="export">
Return to the <a href="index.html">home page</a> <p>
</center> &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> </div>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <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> <h3 id="sec-3-7">Translations</h3>
<div class="outline-text-3" id="text-3-7"> <div class="outline-text-3" id="text-3-7">
<p> <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> </p>
</div> </div>
</div> </div>
<div id="outline-container-sec-3-8" class="outline-3"> <div id="outline-container-sec-3-8" class="outline-3">
<h3 id="sec-3-8">Packaging</h3> <h3 id="sec-3-8">Packaging</h3>
<div class="outline-text-3" id="text-3-8"> <div class="outline-text-3" id="text-3-8">