Browse Source

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram 6 years ago
parent
commit
f50d7fe5c7

+ 1
- 1
doc/EN/app_bdsmail.org View File

1
 #+TITLE:
1
 #+TITLE:
2
 #+AUTHOR: Bob Mottram
2
 #+AUTHOR: Bob Mottram
3
 #+EMAIL: bob@freedombone.net
3
 #+EMAIL: bob@freedombone.net
4
-#+KEYWORDS: freedombone, dlna
4
+#+KEYWORDS: freedombone, bdsmail
5
 #+DESCRIPTION: How to use BDS Mail
5
 #+DESCRIPTION: How to use BDS Mail
6
 #+OPTIONS: ^:nil toc:nil
6
 #+OPTIONS: ^:nil toc:nil
7
 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
7
 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />

+ 28
- 0
doc/EN/app_rocketchat.org View File

1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@freedombone.net
4
+#+KEYWORDS: freedombone, rocketchat
5
+#+DESCRIPTION: How to use Rocketchat
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+attr_html: :width 80% :height 10% :align center
10
+[[file:images/logo.png]]
11
+
12
+* Rocketchat
13
+
14
+Rocketchat is a chat system which is mainly suited for private chat with a few family and friends. It has some integration capability with other systems, but isn't federated as [[./app_xmpp.html][XMPP]] or [[./app_matrix.html][Matrix]] are. If you need high security then XMPP with Conversations is probably still the best option.
15
+
16
+This system is only available for X86 architecture, so won't install on ARM boards but probably will on an old laptop.
17
+
18
+* Installation
19
+
20
+ssh into the system with:
21
+
22
+#+BEGIN_SRC bash
23
+ssh myusername@mydomain.com -p 2222
24
+#+END_SRC
25
+
26
+Select *Administrator controls* then *Add/Remove Apps* then *rocketchat*. Enter your domain name and freedns code if you're using freedns.
27
+
28
+Navigate to your rocketchat domain and register an account. The first registration becomes the administrator. It's a good idea within the Rocketchat administration settings under *Accounts* to select *Registration* and *Manually Approve New Users*, then save. This will prevent millions of random internet users from creating accounts on your server.

+ 4
- 0
doc/EN/apps.org View File

155
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
155
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
156
 
156
 
157
 [[./app_riot.html][How to use it]]
157
 [[./app_riot.html][How to use it]]
158
+* Rocketchat
159
+A non-federated chat server (x86 systems only).
160
+
161
+[[./app_rocketchat.html][How to use it]]
158
 * SearX
162
 * SearX
159
 A metasearch engine for customised and private web searches.
163
 A metasearch engine for customised and private web searches.
160
 
164
 

+ 1
- 1
src/freedombone-app-mailpile View File

35
 MAILPILE_CODE=
35
 MAILPILE_CODE=
36
 MAILPILE_ONION_PORT=8103
36
 MAILPILE_ONION_PORT=8103
37
 MAILPILE_REPO="https://github.com/mailpile/Mailpile"
37
 MAILPILE_REPO="https://github.com/mailpile/Mailpile"
38
-MAILPILE_COMMIT='3f6ab53de90f85bca8c52e5511e78cd7aca5ef1f'
38
+MAILPILE_COMMIT='4f28f1bb55b3b9985f22ab6372d539b1087482dd'
39
 MAILPILE_PORT=33411
39
 MAILPILE_PORT=33411
40
 
40
 
41
 mailpile_variables=(MAILPILE_REPO
41
 mailpile_variables=(MAILPILE_REPO

+ 6
- 24
src/freedombone-app-rocketchat View File

29
 
29
 
30
 IN_DEFAULT_INSTALL=0
30
 IN_DEFAULT_INSTALL=0
31
 SHOW_ON_ABOUT=1
31
 SHOW_ON_ABOUT=1
32
+NOT_ON_ARM=1
32
 
33
 
33
 ROCKETCHAT_DOMAIN_NAME=
34
 ROCKETCHAT_DOMAIN_NAME=
34
 ROCKETCHAT_CODE=
35
 ROCKETCHAT_CODE=
91
     echo -n ''
92
     echo -n ''
92
 }
93
 }
93
 
94
 
94
-function configure_interactive_rocketchat {
95
-    W=(1 $"Option 1"
96
-       2 $"Option 2")
97
-
98
-    while true
99
-    do
100
-        # shellcheck disable=SC2068
101
-        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"rocketchat" --menu $"Choose an operation, or ESC for main menu:" 14 70 3 "${W[@]}" 3>&2 2>&1 1>&3)
102
-
103
-        if [ ! "$selection" ]; then
104
-            break
105
-        fi
106
-        case $selection in
107
-            1) # call some function for option 1
108
-            ;;
109
-            2) # call some function for option 2
110
-            ;;
111
-        esac
112
-    done
113
-}
114
-
115
 function upgrade_rocketchat {
95
 function upgrade_rocketchat {
116
     echo -n ''
96
     echo -n ''
117
 }
97
 }
238
 
218
 
239
     remove_ddns_domain "$ROCKETCHAT_DOMAIN_NAME"
219
     remove_ddns_domain "$ROCKETCHAT_DOMAIN_NAME"
240
 
220
 
241
-    snap remove rocketchat-server
221
+    remove_snap rocketchat-server
242
 }
222
 }
243
 
223
 
244
 function install_rocketchat {
224
 function install_rocketchat {
245
-    apt-get -qy install snapd
246
-    snap install rocketchat-server
225
+    install_snap rocketchat-server
247
 
226
 
248
     install_nodejs rocketchat
227
     install_nodejs rocketchat
249
     if [ ! "$ROCKETCHAT_DOMAIN_NAME" ]; then
228
     if [ ! "$ROCKETCHAT_DOMAIN_NAME" ]; then
342
       echo '  }';
321
       echo '  }';
343
       echo '}'; } >> "$rocketchat_nginx_site"
322
       echo '}'; } >> "$rocketchat_nginx_site"
344
 
323
 
324
+    # If content security is enabled then the https site won't load
325
+    sed -i 's|add_header Content-Security-Policy|#add_header Content-Security-Policy|g' "$rocketchat_nginx_site"
326
+
345
     create_site_certificate "$ROCKETCHAT_DOMAIN_NAME" 'yes'
327
     create_site_certificate "$ROCKETCHAT_DOMAIN_NAME" 'yes'
346
 
328
 
347
     nginx_ensite "$ROCKETCHAT_DOMAIN_NAME"
329
     nginx_ensite "$ROCKETCHAT_DOMAIN_NAME"

+ 2
- 2
src/freedombone-utils-interactive View File

126
     while [ ! $SITE_DETAILS_COMPLETE ]
126
     while [ ! $SITE_DETAILS_COMPLETE ]
127
     do
127
     do
128
         data=$(mktemp 2>/dev/null)
128
         data=$(mktemp 2>/dev/null)
129
-        if [[ $DDNS_PROVIDER == "freedns" ]]; then
129
+        if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
130
             dialog --backtitle "$SITE_BACKTITLE" \
130
             dialog --backtitle "$SITE_BACKTITLE" \
131
                    --title "$SITE_CONFIG_TITLE" \
131
                    --title "$SITE_CONFIG_TITLE" \
132
                    --form "$SITE_FORM_TEXT" 14 55 3 \
132
                    --form "$SITE_FORM_TEXT" 14 55 3 \
136
         else
136
         else
137
             dialog --backtitle "$SITE_BACKTITLE" \
137
             dialog --backtitle "$SITE_BACKTITLE" \
138
                    --title "$SITE_CONFIG_TITLE" \
138
                    --title "$SITE_CONFIG_TITLE" \
139
-                   --form "$SITE_FORM_TEXT" 11 55 3 \
139
+                   --form "$SITE_FORM_TEXT" 13 55 3 \
140
                    $"Domain:" 1 1 "$(grep "${site_name_upper}_DOMAIN_NAME" temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
140
                    $"Domain:" 1 1 "$(grep "${site_name_upper}_DOMAIN_NAME" temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
141
                    2> "$data"
141
                    2> "$data"
142
         fi
142
         fi

+ 62
- 0
src/freedombone-utils-snap View File

1
+#!/bin/bash
2
+#  _____               _           _
3
+# |   __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
4
+# |   __|  _| -_| -_| . | . |     | . | . |   | -_|
5
+# |__|  |_| |___|___|___|___|_|_|_|___|___|_|_|___|
6
+#
7
+#                              Freedom in the Cloud
8
+#
9
+# Handling installation of snap packages
10
+#
11
+# License
12
+# =======
13
+#
14
+# Copyright (C) 2018 Bob Mottram <bob@freedombone.net>
15
+#
16
+# This program is free software: you can redistribute it and/or modify
17
+# it under the terms of the GNU Affero General Public License as published by
18
+# the Free Software Foundation, either version 3 of the License, or
19
+# (at your option) any later version.
20
+#
21
+# This program is distributed in the hope that it will be useful,
22
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
+# GNU Affero General Public License for more details.
25
+#
26
+# You should have received a copy of the GNU Affero General Public License
27
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
+
29
+function install_snap {
30
+    snap_package="$1"
31
+
32
+    if [ ! "$snap_package" ]; then
33
+        echo $'No snap package was specified'
34
+        exit 257625472
35
+    fi
36
+    no_of_snaps=$(df | grep -c "/snap/core/")
37
+    if [ "$no_of_snaps" -eq 0 ]; then
38
+        apt-get -yq install snapd
39
+    fi
40
+    if ! snap install "$snap_package"; then
41
+        echo $"Failed to install snap package $snap_package"
42
+        exit 46382854
43
+    fi
44
+}
45
+
46
+function remove_snap {
47
+    snap_package="$1"
48
+
49
+    if [ ! "$snap_package" ]; then
50
+        echo $'No snap package was specified'
51
+        exit 45332485421
52
+    fi
53
+
54
+    snap remove "$snap_package"
55
+
56
+    no_of_snaps=$(df | grep -c "/snap/")
57
+    if [ "$no_of_snaps" -eq 1 ]; then
58
+        apt-get -yq remove snapd
59
+    fi
60
+}
61
+
62
+# NOTE: deliberately no exit 0

+ 125
- 35
website/EN/app_bdsmail.html View File

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
5
 <head>
6
-<title></title>
7
-<!-- 2018-04-12 Thu 12:02 -->
8
-<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
-<meta  name="generator" content="Org-mode" />
10
-<meta  name="author" content="Bob Mottram" />
11
-<meta  name="description" content="How to use BDS Mail"
6
+<!-- 2018-05-16 Wed 15:41 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title>&lrm;</title>
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="How to use BDS Mail"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, dlna" />
14
+<meta name="keywords" content="freedombone, bdsmail" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
23
-  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
24
-  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
25
-  .center { margin-left: auto; margin-right: auto; text-align: center; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
55
-  pre.src-R:before     { content: 'R'; }
56
-  pre.src-perl:before  { content: 'Perl'; }
57
-  pre.src-java:before  { content: 'Java'; }
58
-  pre.src-sql:before   { content: 'SQL'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-hledger:before { content: 'hledger'; }
75
+  pre.src-java:before { content: 'Java'; }
76
+  pre.src-js:before { content: 'Javascript'; }
77
+  pre.src-latex:before { content: 'LaTeX'; }
78
+  pre.src-ledger:before { content: 'Ledger'; }
79
+  pre.src-lisp:before { content: 'Lisp'; }
80
+  pre.src-lilypond:before { content: 'Lilypond'; }
81
+  pre.src-lua:before { content: 'Lua'; }
82
+  pre.src-matlab:before { content: 'MATLAB'; }
83
+  pre.src-mscgen:before { content: 'Mscgen'; }
84
+  pre.src-ocaml:before { content: 'Objective Caml'; }
85
+  pre.src-octave:before { content: 'Octave'; }
86
+  pre.src-org:before { content: 'Org mode'; }
87
+  pre.src-oz:before { content: 'OZ'; }
88
+  pre.src-plantuml:before { content: 'Plantuml'; }
89
+  pre.src-processing:before { content: 'Processing.js'; }
90
+  pre.src-python:before { content: 'Python'; }
91
+  pre.src-R:before { content: 'R'; }
92
+  pre.src-ruby:before { content: 'Ruby'; }
93
+  pre.src-sass:before { content: 'Sass'; }
94
+  pre.src-scheme:before { content: 'Scheme'; }
95
+  pre.src-screen:before { content: 'Gnu Screen'; }
96
+  pre.src-sed:before { content: 'Sed'; }
97
+  pre.src-sh:before { content: 'shell'; }
98
+  pre.src-sql:before { content: 'SQL'; }
99
+  pre.src-sqlite:before { content: 'SQLite'; }
100
+  /* additional languages in org.el's org-babel-load-languages alist */
101
+  pre.src-forth:before { content: 'Forth'; }
102
+  pre.src-io:before { content: 'IO'; }
103
+  pre.src-J:before { content: 'J'; }
104
+  pre.src-makefile:before { content: 'Makefile'; }
105
+  pre.src-maxima:before { content: 'Maxima'; }
106
+  pre.src-perl:before { content: 'Perl'; }
107
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
+  pre.src-scala:before { content: 'Scala'; }
109
+  pre.src-shell:before { content: 'Shell Script'; }
110
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
+  /* additional language identifiers per "defun org-babel-execute"
112
+       in ob-*.el */
113
+  pre.src-cpp:before  { content: 'C++'; }
114
+  pre.src-abc:before  { content: 'ABC'; }
115
+  pre.src-coq:before  { content: 'Coq'; }
116
+  pre.src-groovy:before  { content: 'Groovy'; }
117
+  /* additional language identifiers from org-babel-shell-names in
118
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
+     the execution function name together. */
120
+  pre.src-bash:before  { content: 'bash'; }
121
+  pre.src-csh:before  { content: 'csh'; }
122
+  pre.src-ash:before  { content: 'ash'; }
123
+  pre.src-dash:before  { content: 'dash'; }
124
+  pre.src-ksh:before  { content: 'ksh'; }
125
+  pre.src-mksh:before  { content: 'mksh'; }
126
+  pre.src-posh:before  { content: 'posh'; }
127
+  /* Additional Emacs modes also supported by the LaTeX listings package */
128
+  pre.src-ada:before { content: 'Ada'; }
129
+  pre.src-asm:before { content: 'Assembler'; }
130
+  pre.src-caml:before { content: 'Caml'; }
131
+  pre.src-delphi:before { content: 'Delphi'; }
132
+  pre.src-html:before { content: 'HTML'; }
133
+  pre.src-idl:before { content: 'IDL'; }
134
+  pre.src-mercury:before { content: 'Mercury'; }
135
+  pre.src-metapost:before { content: 'MetaPost'; }
136
+  pre.src-modula-2:before { content: 'Modula-2'; }
137
+  pre.src-pascal:before { content: 'Pascal'; }
138
+  pre.src-ps:before { content: 'PostScript'; }
139
+  pre.src-prolog:before { content: 'Prolog'; }
140
+  pre.src-simula:before { content: 'Simula'; }
141
+  pre.src-tcl:before { content: 'tcl'; }
142
+  pre.src-tex:before { content: 'TeX'; }
143
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
+  pre.src-verilog:before { content: 'Verilog'; }
145
+  pre.src-vhdl:before { content: 'VHDL'; }
146
+  pre.src-xml:before { content: 'XML'; }
147
+  pre.src-nxml:before { content: 'XML'; }
148
+  /* add a generic configuration mode; LaTeX export needs an additional
149
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
+  pre.src-conf:before { content: 'Configuration File'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
64
-  th.right  { text-align: center;  }
65
-  th.left   { text-align: center;   }
66
-  th.center { text-align: center; }
67
-  td.right  { text-align: right;  }
68
-  td.left   { text-align: left;   }
69
-  td.center { text-align: center; }
156
+  th.org-right  { text-align: center;  }
157
+  th.org-left   { text-align: center;   }
158
+  th.org-center { text-align: center; }
159
+  td.org-right  { text-align: right;  }
160
+  td.org-left   { text-align: left;   }
161
+  td.org-center { text-align: center; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
151
 </p>
242
 </p>
152
 </div>
243
 </div>
153
 
244
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">BDS Mail</h2>
156
-<div class="outline-text-2" id="text-1">
245
+<div id="outline-container-org70c09ae" class="outline-2">
246
+<h2 id="org70c09ae">BDS Mail</h2>
247
+<div class="outline-text-2" id="text-org70c09ae">
157
 <p>
248
 <p>
158
 BDS Mail (aka "Brain Dead Simple Mail") is an optional addition to the existing email server which comes installed as default. It creates an extra folder within the Mutt client which allows you to send and receive email using <a href="https://en.wikipedia.org/wiki/I2P">i2p</a> as the transport layer. This solves the problem of being blocked by dubious systems and also the problem of user friendly email encryption. If you're behind a hostile firewall which you don't control and which blocks all ports, this system is still likely to work. You can use GPG as an additional encryption layer if you prefer, but it's not strictly necessary because you already have the i2p public key system to ensure end-to-end security.
249
 BDS Mail (aka "Brain Dead Simple Mail") is an optional addition to the existing email server which comes installed as default. It creates an extra folder within the Mutt client which allows you to send and receive email using <a href="https://en.wikipedia.org/wiki/I2P">i2p</a> as the transport layer. This solves the problem of being blocked by dubious systems and also the problem of user friendly email encryption. If you're behind a hostile firewall which you don't control and which blocks all ports, this system is still likely to work. You can use GPG as an additional encryption layer if you prefer, but it's not strictly necessary because you already have the i2p public key system to ensure end-to-end security.
159
 </p>
250
 </p>
164
 </div>
255
 </div>
165
 </div>
256
 </div>
166
 
257
 
167
-<div id="outline-container-sec-2" class="outline-2">
168
-<h2 id="sec-2">Installation</h2>
169
-<div class="outline-text-2" id="text-2">
258
+<div id="outline-container-org48069db" class="outline-2">
259
+<h2 id="org48069db">Installation</h2>
260
+<div class="outline-text-2" id="text-org48069db">
170
 <p>
261
 <p>
171
 ssh into the system with:
262
 ssh into the system with:
172
 </p>
263
 </p>
173
 
264
 
174
 <div class="org-src-container">
265
 <div class="org-src-container">
175
-
176
 <pre class="src src-bash">ssh myusername@mydomain.com -p 2222
266
 <pre class="src src-bash">ssh myusername@mydomain.com -p 2222
177
 </pre>
267
 </pre>
178
 </div>
268
 </div>

+ 305
- 0
website/EN/app_rocketchat.html View File

1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
+<head>
6
+<!-- 2018-05-16 Wed 15:46 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title>&lrm;</title>
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="How to use Rocketchat"
13
+ />
14
+<meta name="keywords" content="freedombone, rocketchat" />
15
+<style type="text/css">
16
+ <!--/*--><![CDATA[/*><!--*/
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
23
+  .todo   { font-family: monospace; color: red; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
26
+  .tag    { background-color: #eee; font-family: monospace;
27
+            padding: 2px; font-size: 80%; font-weight: normal; }
28
+  .timestamp { color: #bebebe; }
29
+  .timestamp-kwd { color: #5f9ea0; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
33
+  .underline { text-decoration: underline; }
34
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35
+  p.verse { margin-left: 3%; }
36
+  pre {
37
+    border: 1px solid #ccc;
38
+    box-shadow: 3px 3px 3px #eee;
39
+    padding: 8pt;
40
+    font-family: monospace;
41
+    overflow: auto;
42
+    margin: 1.2em;
43
+  }
44
+  pre.src {
45
+    position: relative;
46
+    overflow: visible;
47
+    padding-top: 1.2em;
48
+  }
49
+  pre.src:before {
50
+    display: none;
51
+    position: absolute;
52
+    background-color: white;
53
+    top: -10px;
54
+    right: 10px;
55
+    padding: 3px;
56
+    border: 1px solid black;
57
+  }
58
+  pre.src:hover:before { display: inline;}
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
70
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-hledger:before { content: 'hledger'; }
75
+  pre.src-java:before { content: 'Java'; }
76
+  pre.src-js:before { content: 'Javascript'; }
77
+  pre.src-latex:before { content: 'LaTeX'; }
78
+  pre.src-ledger:before { content: 'Ledger'; }
79
+  pre.src-lisp:before { content: 'Lisp'; }
80
+  pre.src-lilypond:before { content: 'Lilypond'; }
81
+  pre.src-lua:before { content: 'Lua'; }
82
+  pre.src-matlab:before { content: 'MATLAB'; }
83
+  pre.src-mscgen:before { content: 'Mscgen'; }
84
+  pre.src-ocaml:before { content: 'Objective Caml'; }
85
+  pre.src-octave:before { content: 'Octave'; }
86
+  pre.src-org:before { content: 'Org mode'; }
87
+  pre.src-oz:before { content: 'OZ'; }
88
+  pre.src-plantuml:before { content: 'Plantuml'; }
89
+  pre.src-processing:before { content: 'Processing.js'; }
90
+  pre.src-python:before { content: 'Python'; }
91
+  pre.src-R:before { content: 'R'; }
92
+  pre.src-ruby:before { content: 'Ruby'; }
93
+  pre.src-sass:before { content: 'Sass'; }
94
+  pre.src-scheme:before { content: 'Scheme'; }
95
+  pre.src-screen:before { content: 'Gnu Screen'; }
96
+  pre.src-sed:before { content: 'Sed'; }
97
+  pre.src-sh:before { content: 'shell'; }
98
+  pre.src-sql:before { content: 'SQL'; }
99
+  pre.src-sqlite:before { content: 'SQLite'; }
100
+  /* additional languages in org.el's org-babel-load-languages alist */
101
+  pre.src-forth:before { content: 'Forth'; }
102
+  pre.src-io:before { content: 'IO'; }
103
+  pre.src-J:before { content: 'J'; }
104
+  pre.src-makefile:before { content: 'Makefile'; }
105
+  pre.src-maxima:before { content: 'Maxima'; }
106
+  pre.src-perl:before { content: 'Perl'; }
107
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
+  pre.src-scala:before { content: 'Scala'; }
109
+  pre.src-shell:before { content: 'Shell Script'; }
110
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
+  /* additional language identifiers per "defun org-babel-execute"
112
+       in ob-*.el */
113
+  pre.src-cpp:before  { content: 'C++'; }
114
+  pre.src-abc:before  { content: 'ABC'; }
115
+  pre.src-coq:before  { content: 'Coq'; }
116
+  pre.src-groovy:before  { content: 'Groovy'; }
117
+  /* additional language identifiers from org-babel-shell-names in
118
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
+     the execution function name together. */
120
+  pre.src-bash:before  { content: 'bash'; }
121
+  pre.src-csh:before  { content: 'csh'; }
122
+  pre.src-ash:before  { content: 'ash'; }
123
+  pre.src-dash:before  { content: 'dash'; }
124
+  pre.src-ksh:before  { content: 'ksh'; }
125
+  pre.src-mksh:before  { content: 'mksh'; }
126
+  pre.src-posh:before  { content: 'posh'; }
127
+  /* Additional Emacs modes also supported by the LaTeX listings package */
128
+  pre.src-ada:before { content: 'Ada'; }
129
+  pre.src-asm:before { content: 'Assembler'; }
130
+  pre.src-caml:before { content: 'Caml'; }
131
+  pre.src-delphi:before { content: 'Delphi'; }
132
+  pre.src-html:before { content: 'HTML'; }
133
+  pre.src-idl:before { content: 'IDL'; }
134
+  pre.src-mercury:before { content: 'Mercury'; }
135
+  pre.src-metapost:before { content: 'MetaPost'; }
136
+  pre.src-modula-2:before { content: 'Modula-2'; }
137
+  pre.src-pascal:before { content: 'Pascal'; }
138
+  pre.src-ps:before { content: 'PostScript'; }
139
+  pre.src-prolog:before { content: 'Prolog'; }
140
+  pre.src-simula:before { content: 'Simula'; }
141
+  pre.src-tcl:before { content: 'tcl'; }
142
+  pre.src-tex:before { content: 'TeX'; }
143
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
+  pre.src-verilog:before { content: 'Verilog'; }
145
+  pre.src-vhdl:before { content: 'VHDL'; }
146
+  pre.src-xml:before { content: 'XML'; }
147
+  pre.src-nxml:before { content: 'XML'; }
148
+  /* add a generic configuration mode; LaTeX export needs an additional
149
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
+  pre.src-conf:before { content: 'Configuration File'; }
151
+
152
+  table { border-collapse:collapse; }
153
+  caption.t-above { caption-side: top; }
154
+  caption.t-bottom { caption-side: bottom; }
155
+  td, th { vertical-align:top;  }
156
+  th.org-right  { text-align: center;  }
157
+  th.org-left   { text-align: center;   }
158
+  th.org-center { text-align: center; }
159
+  td.org-right  { text-align: right;  }
160
+  td.org-left   { text-align: left;   }
161
+  td.org-center { text-align: center; }
162
+  dt { font-weight: bold; }
163
+  .footpara { display: inline; }
164
+  .footdef  { margin-bottom: 1em; }
165
+  .figure { padding: 1em; }
166
+  .figure p { text-align: center; }
167
+  .inlinetask {
168
+    padding: 10px;
169
+    border: 2px solid gray;
170
+    margin: 10px;
171
+    background: #ffffcc;
172
+  }
173
+  #org-div-home-and-up
174
+   { text-align: right; font-size: 70%; white-space: nowrap; }
175
+  textarea { overflow-x: auto; }
176
+  .linenr { font-size: smaller }
177
+  .code-highlighted { background-color: #ffff00; }
178
+  .org-info-js_info-navigation { border-style: none; }
179
+  #org-info-js_console-label
180
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
181
+  .org-info-js_search-highlight
182
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
184
+  /*]]>*/-->
185
+</style>
186
+<link rel="stylesheet" type="text/css" href="freedombone.css" />
187
+<script type="text/javascript">
188
+/*
189
+@licstart  The following is the entire license notice for the
190
+JavaScript code in this tag.
191
+
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
193
+
194
+The JavaScript code in this tag is free software: you can
195
+redistribute it and/or modify it under the terms of the GNU
196
+General Public License (GNU GPL) as published by the Free Software
197
+Foundation, either version 3 of the License, or (at your option)
198
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
199
+without even the implied warranty of MERCHANTABILITY or FITNESS
200
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
201
+
202
+As additional permission under GNU GPL version 3 section 7, you
203
+may distribute non-source (e.g., minimized or compacted) forms of
204
+that code without the copy of the GNU GPL normally required by
205
+section 4, provided you include this license notice and a URL
206
+through which recipients can access the Corresponding Source.
207
+
208
+
209
+@licend  The above is the entire license notice
210
+for the JavaScript code in this tag.
211
+*/
212
+<!--/*--><![CDATA[/*><!--*/
213
+ function CodeHighlightOn(elem, id)
214
+ {
215
+   var target = document.getElementById(id);
216
+   if(null != target) {
217
+     elem.cacheClassElem = elem.className;
218
+     elem.cacheClassTarget = target.className;
219
+     target.className = "code-highlighted";
220
+     elem.className   = "code-highlighted";
221
+   }
222
+ }
223
+ function CodeHighlightOff(elem, id)
224
+ {
225
+   var target = document.getElementById(id);
226
+   if(elem.cacheClassElem)
227
+     elem.className = elem.cacheClassElem;
228
+   if(elem.cacheClassTarget)
229
+     target.className = elem.cacheClassTarget;
230
+ }
231
+/*]]>*///-->
232
+</script>
233
+</head>
234
+<body>
235
+<div id="preamble" class="status">
236
+<a name="top" id="top"></a>
237
+</div>
238
+<div id="content">
239
+
240
+<div class="figure">
241
+<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
242
+</p>
243
+</div>
244
+
245
+<div id="outline-container-org045c0df" class="outline-2">
246
+<h2 id="org045c0df">Rocketchat</h2>
247
+<div class="outline-text-2" id="text-org045c0df">
248
+<p>
249
+Rocketchat is a chat system which is mainly suited for private chat with a few family and friends. It has some integration capability with other systems, but isn't federated as <a href="./app_xmpp.html">XMPP</a> or <a href="./app_matrix.html">Matrix</a> are. If you need high security then XMPP with Conversations is probably still the best option.
250
+</p>
251
+
252
+<p>
253
+This system is only available for X86 architecture, so won't install on ARM boards but probably will on an old laptop.
254
+</p>
255
+</div>
256
+</div>
257
+
258
+<div id="outline-container-orga9fd255" class="outline-2">
259
+<h2 id="orga9fd255">Installation</h2>
260
+<div class="outline-text-2" id="text-orga9fd255">
261
+<p>
262
+ssh into the system with:
263
+</p>
264
+
265
+<div class="org-src-container">
266
+<pre class="src src-bash">ssh myusername@mydomain.com -p 2222
267
+</pre>
268
+</div>
269
+
270
+<p>
271
+Select <b>Administrator controls</b> then <b>Add/Remove Apps</b> then <b>rocketchat</b>. Enter your domain name and freedns code if you're using freedns.
272
+</p>
273
+
274
+<p>
275
+Navigate to your rocketchat domain and register an account. The first registration becomes the administrator. It's a good idea within the Rocketchat administration settings under <b>Accounts</b> to select <b>Registration</b> and <b>Manually Approve New Users</b>, then save. This will prevent millions of random internet users from creating accounts on your server.
276
+</p>
277
+</div>
278
+</div>
279
+</div>
280
+<div id="postamble" class="status">
281
+
282
+<style type="text/css">
283
+.back-to-top {
284
+    position: fixed;
285
+    bottom: 2em;
286
+    right: 0px;
287
+    text-decoration: none;
288
+    color: #000000;
289
+    background-color: rgba(235, 235, 235, 0.80);
290
+    font-size: 12px;
291
+    padding: 1em;
292
+    display: none;
293
+}
294
+
295
+.back-to-top:hover {
296
+    background-color: rgba(135, 135, 135, 0.50);
297
+}
298
+</style>
299
+
300
+<div class="back-to-top">
301
+<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
302
+</div>
303
+</div>
304
+</body>
305
+</html>

+ 263
- 160
website/EN/apps.html View File

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
5
 <head>
6
-<title></title>
7
-<!-- 2018-04-12 Thu 18:22 -->
8
-<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
-<meta  name="generator" content="Org-mode" />
10
-<meta  name="author" content="Bob Mottram" />
11
-<meta  name="description" content="List of apps available on freedombone"
6
+<!-- 2018-05-16 Wed 15:51 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title>&lrm;</title>
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="List of apps available on freedombone"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, apps" />
14
+<meta name="keywords" content="freedombone, apps" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
23
-  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
24
-  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
25
-  .center { margin-left: auto; margin-right: auto; text-align: center; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
55
-  pre.src-R:before     { content: 'R'; }
56
-  pre.src-perl:before  { content: 'Perl'; }
57
-  pre.src-java:before  { content: 'Java'; }
58
-  pre.src-sql:before   { content: 'SQL'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-hledger:before { content: 'hledger'; }
75
+  pre.src-java:before { content: 'Java'; }
76
+  pre.src-js:before { content: 'Javascript'; }
77
+  pre.src-latex:before { content: 'LaTeX'; }
78
+  pre.src-ledger:before { content: 'Ledger'; }
79
+  pre.src-lisp:before { content: 'Lisp'; }
80
+  pre.src-lilypond:before { content: 'Lilypond'; }
81
+  pre.src-lua:before { content: 'Lua'; }
82
+  pre.src-matlab:before { content: 'MATLAB'; }
83
+  pre.src-mscgen:before { content: 'Mscgen'; }
84
+  pre.src-ocaml:before { content: 'Objective Caml'; }
85
+  pre.src-octave:before { content: 'Octave'; }
86
+  pre.src-org:before { content: 'Org mode'; }
87
+  pre.src-oz:before { content: 'OZ'; }
88
+  pre.src-plantuml:before { content: 'Plantuml'; }
89
+  pre.src-processing:before { content: 'Processing.js'; }
90
+  pre.src-python:before { content: 'Python'; }
91
+  pre.src-R:before { content: 'R'; }
92
+  pre.src-ruby:before { content: 'Ruby'; }
93
+  pre.src-sass:before { content: 'Sass'; }
94
+  pre.src-scheme:before { content: 'Scheme'; }
95
+  pre.src-screen:before { content: 'Gnu Screen'; }
96
+  pre.src-sed:before { content: 'Sed'; }
97
+  pre.src-sh:before { content: 'shell'; }
98
+  pre.src-sql:before { content: 'SQL'; }
99
+  pre.src-sqlite:before { content: 'SQLite'; }
100
+  /* additional languages in org.el's org-babel-load-languages alist */
101
+  pre.src-forth:before { content: 'Forth'; }
102
+  pre.src-io:before { content: 'IO'; }
103
+  pre.src-J:before { content: 'J'; }
104
+  pre.src-makefile:before { content: 'Makefile'; }
105
+  pre.src-maxima:before { content: 'Maxima'; }
106
+  pre.src-perl:before { content: 'Perl'; }
107
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
+  pre.src-scala:before { content: 'Scala'; }
109
+  pre.src-shell:before { content: 'Shell Script'; }
110
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
+  /* additional language identifiers per "defun org-babel-execute"
112
+       in ob-*.el */
113
+  pre.src-cpp:before  { content: 'C++'; }
114
+  pre.src-abc:before  { content: 'ABC'; }
115
+  pre.src-coq:before  { content: 'Coq'; }
116
+  pre.src-groovy:before  { content: 'Groovy'; }
117
+  /* additional language identifiers from org-babel-shell-names in
118
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
+     the execution function name together. */
120
+  pre.src-bash:before  { content: 'bash'; }
121
+  pre.src-csh:before  { content: 'csh'; }
122
+  pre.src-ash:before  { content: 'ash'; }
123
+  pre.src-dash:before  { content: 'dash'; }
124
+  pre.src-ksh:before  { content: 'ksh'; }
125
+  pre.src-mksh:before  { content: 'mksh'; }
126
+  pre.src-posh:before  { content: 'posh'; }
127
+  /* Additional Emacs modes also supported by the LaTeX listings package */
128
+  pre.src-ada:before { content: 'Ada'; }
129
+  pre.src-asm:before { content: 'Assembler'; }
130
+  pre.src-caml:before { content: 'Caml'; }
131
+  pre.src-delphi:before { content: 'Delphi'; }
132
+  pre.src-html:before { content: 'HTML'; }
133
+  pre.src-idl:before { content: 'IDL'; }
134
+  pre.src-mercury:before { content: 'Mercury'; }
135
+  pre.src-metapost:before { content: 'MetaPost'; }
136
+  pre.src-modula-2:before { content: 'Modula-2'; }
137
+  pre.src-pascal:before { content: 'Pascal'; }
138
+  pre.src-ps:before { content: 'PostScript'; }
139
+  pre.src-prolog:before { content: 'Prolog'; }
140
+  pre.src-simula:before { content: 'Simula'; }
141
+  pre.src-tcl:before { content: 'tcl'; }
142
+  pre.src-tex:before { content: 'TeX'; }
143
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
+  pre.src-verilog:before { content: 'Verilog'; }
145
+  pre.src-vhdl:before { content: 'VHDL'; }
146
+  pre.src-xml:before { content: 'XML'; }
147
+  pre.src-nxml:before { content: 'XML'; }
148
+  /* add a generic configuration mode; LaTeX export needs an additional
149
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
+  pre.src-conf:before { content: 'Configuration File'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
64
-  th.right  { text-align: center;  }
65
-  th.left   { text-align: center;   }
66
-  th.center { text-align: center; }
67
-  td.right  { text-align: right;  }
68
-  td.left   { text-align: left;   }
69
-  td.center { text-align: center; }
156
+  th.org-right  { text-align: center;  }
157
+  th.org-left   { text-align: center;   }
158
+  th.org-center { text-align: center; }
159
+  td.org-right  { text-align: right;  }
160
+  td.org-left   { text-align: left;   }
161
+  td.org-center { text-align: center; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
167
 </p>
258
 </p>
168
 </div>
259
 </div>
169
 
260
 
170
-<div id="outline-container-sec-1" class="outline-2">
171
-<h2 id="sec-1">Akaunting</h2>
172
-<div class="outline-text-2" id="text-1">
261
+<div id="outline-container-org9ebecbb" class="outline-2">
262
+<h2 id="org9ebecbb">Akaunting</h2>
263
+<div class="outline-text-2" id="text-org9ebecbb">
173
 <p>
264
 <p>
174
 A web based accounts system for small businesses or freelancers.
265
 A web based accounts system for small businesses or freelancers.
175
 </p>
266
 </p>
179
 </p>
270
 </p>
180
 </div>
271
 </div>
181
 </div>
272
 </div>
182
-<div id="outline-container-sec-2" class="outline-2">
183
-<h2 id="sec-2">BDS Mail</h2>
184
-<div class="outline-text-2" id="text-2">
273
+<div id="outline-container-orgabfaf48" class="outline-2">
274
+<h2 id="orgabfaf48">BDS Mail</h2>
275
+<div class="outline-text-2" id="text-orgabfaf48">
185
 <p>
276
 <p>
186
 It's like ordinary email, but with <a href="https://en.wikipedia.org/wiki/I2P">i2p</a> as the transport mechanism.
277
 It's like ordinary email, but with <a href="https://en.wikipedia.org/wiki/I2P">i2p</a> as the transport mechanism.
187
 </p>
278
 </p>
191
 </p>
282
 </p>
192
 </div>
283
 </div>
193
 </div>
284
 </div>
194
-<div id="outline-container-sec-3" class="outline-2">
195
-<h2 id="sec-3">Bludit</h2>
196
-<div class="outline-text-2" id="text-3">
285
+<div id="outline-container-org3172e34" class="outline-2">
286
+<h2 id="org3172e34">Bludit</h2>
287
+<div class="outline-text-2" id="text-org3172e34">
197
 <p>
288
 <p>
198
 This is a simple databaseless blogging system which uses markdown files. It should run well on any hardware.
289
 This is a simple databaseless blogging system which uses markdown files. It should run well on any hardware.
199
 </p>
290
 </p>
203
 </p>
294
 </p>
204
 </div>
295
 </div>
205
 </div>
296
 </div>
206
-<div id="outline-container-sec-4" class="outline-2">
207
-<h2 id="sec-4">CryptPad</h2>
208
-<div class="outline-text-2" id="text-4">
297
+<div id="outline-container-org1e93869" class="outline-2">
298
+<h2 id="org1e93869">CryptPad</h2>
299
+<div class="outline-text-2" id="text-org1e93869">
209
 <p>
300
 <p>
210
 Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.
301
 Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.
211
 </p>
302
 </p>
215
 </p>
306
 </p>
216
 </div>
307
 </div>
217
 </div>
308
 </div>
218
-<div id="outline-container-sec-5" class="outline-2">
219
-<h2 id="sec-5">DLNA</h2>
220
-<div class="outline-text-2" id="text-5">
309
+<div id="outline-container-org4f47b31" class="outline-2">
310
+<h2 id="org4f47b31">DLNA</h2>
311
+<div class="outline-text-2" id="text-org4f47b31">
221
 <p>
312
 <p>
222
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
313
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
223
 </p>
314
 </p>
227
 </p>
318
 </p>
228
 </div>
319
 </div>
229
 </div>
320
 </div>
230
-<div id="outline-container-sec-6" class="outline-2">
231
-<h2 id="sec-6">Dokuwiki</h2>
232
-<div class="outline-text-2" id="text-6">
321
+<div id="outline-container-orga5d09ad" class="outline-2">
322
+<h2 id="orga5d09ad">Dokuwiki</h2>
323
+<div class="outline-text-2" id="text-orga5d09ad">
233
 <p>
324
 <p>
234
 A databaseless wiki system.
325
 A databaseless wiki system.
235
 </p>
326
 </p>
239
 </p>
330
 </p>
240
 </div>
331
 </div>
241
 </div>
332
 </div>
242
-<div id="outline-container-sec-7" class="outline-2">
243
-<h2 id="sec-7">Edith</h2>
244
-<div class="outline-text-2" id="text-7">
333
+<div id="outline-container-orgfd3fe55" class="outline-2">
334
+<h2 id="orgfd3fe55">Edith</h2>
335
+<div class="outline-text-2" id="text-orgfd3fe55">
245
 <p>
336
 <p>
246
 Extremely simple and distraction-free notes system.
337
 Extremely simple and distraction-free notes system.
247
 </p>
338
 </p>
251
 </p>
342
 </p>
252
 </div>
343
 </div>
253
 </div>
344
 </div>
254
-<div id="outline-container-sec-8" class="outline-2">
255
-<h2 id="sec-8">Emacs</h2>
256
-<div class="outline-text-2" id="text-8">
345
+<div id="outline-container-org4180f98" class="outline-2">
346
+<h2 id="org4180f98">Emacs</h2>
347
+<div class="outline-text-2" id="text-org4180f98">
257
 <p>
348
 <p>
258
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
349
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
259
 </p>
350
 </p>
263
 </p>
354
 </p>
264
 </div>
355
 </div>
265
 </div>
356
 </div>
266
-<div id="outline-container-sec-9" class="outline-2">
267
-<h2 id="sec-9">Email Server</h2>
268
-<div class="outline-text-2" id="text-9">
357
+<div id="outline-container-org8be04fc" class="outline-2">
358
+<h2 id="org8be04fc">Email Server</h2>
359
+<div class="outline-text-2" id="text-org8be04fc">
269
 <p>
360
 <p>
270
 Since many apps require email registration an email server is installed by default. You can find advice on using the email system <a href="./usage_email.html">here</a>.
361
 Since many apps require email registration an email server is installed by default. You can find advice on using the email system <a href="./usage_email.html">here</a>.
271
 </p>
362
 </p>
272
 </div>
363
 </div>
273
 </div>
364
 </div>
274
-<div id="outline-container-sec-10" class="outline-2">
275
-<h2 id="sec-10">Etherpad</h2>
276
-<div class="outline-text-2" id="text-10">
365
+<div id="outline-container-org95ea316" class="outline-2">
366
+<h2 id="org95ea316">Etherpad</h2>
367
+<div class="outline-text-2" id="text-org95ea316">
277
 <p>
368
 <p>
278
 Collaborate on creating documents in real time. Maybe you're planning a holiday with other family members or creating documentation for a Free Software project along with other volunteers. Etherpad is hard to beat for simplicity and speed. Only users of the system will be able to access it.
369
 Collaborate on creating documents in real time. Maybe you're planning a holiday with other family members or creating documentation for a Free Software project along with other volunteers. Etherpad is hard to beat for simplicity and speed. Only users of the system will be able to access it.
279
 </p>
370
 </p>
283
 </p>
374
 </p>
284
 </div>
375
 </div>
285
 </div>
376
 </div>
286
-<div id="outline-container-sec-11" class="outline-2">
287
-<h2 id="sec-11">Federated wiki</h2>
288
-<div class="outline-text-2" id="text-11">
377
+<div id="outline-container-org27dc49b" class="outline-2">
378
+<h2 id="org27dc49b">Federated wiki</h2>
379
+<div class="outline-text-2" id="text-org27dc49b">
289
 <p>
380
 <p>
290
 A new approach to creating wiki content.
381
 A new approach to creating wiki content.
291
 </p>
382
 </p>
295
 </p>
386
 </p>
296
 </div>
387
 </div>
297
 </div>
388
 </div>
298
-<div id="outline-container-sec-12" class="outline-2">
299
-<h2 id="sec-12">Friendica</h2>
300
-<div class="outline-text-2" id="text-12">
389
+<div id="outline-container-orge659bcd" class="outline-2">
390
+<h2 id="orge659bcd">Friendica</h2>
391
+<div class="outline-text-2" id="text-orge659bcd">
301
 <p>
392
 <p>
302
 Federated social network system.
393
 Federated social network system.
303
 </p>
394
 </p>
307
 </p>
398
 </p>
308
 </div>
399
 </div>
309
 </div>
400
 </div>
310
-<div id="outline-container-sec-13" class="outline-2">
311
-<h2 id="sec-13">GNU Social</h2>
312
-<div class="outline-text-2" id="text-13">
401
+<div id="outline-container-org4d88ad9" class="outline-2">
402
+<h2 id="org4d88ad9">GNU Social</h2>
403
+<div class="outline-text-2" id="text-org4d88ad9">
313
 <p>
404
 <p>
314
 Federated social network based on the OStatus protocol. You can "<i>remote follow</i>" other users within the GNU Social federation.
405
 Federated social network based on the OStatus protocol. You can "<i>remote follow</i>" other users within the GNU Social federation.
315
 </p>
406
 </p>
319
 </p>
410
 </p>
320
 </div>
411
 </div>
321
 </div>
412
 </div>
322
-<div id="outline-container-sec-14" class="outline-2">
323
-<h2 id="sec-14">Gogs</h2>
324
-<div class="outline-text-2" id="text-14">
413
+<div id="outline-container-orgb12489b" class="outline-2">
414
+<h2 id="orgb12489b">Gogs</h2>
415
+<div class="outline-text-2" id="text-orgb12489b">
325
 <p>
416
 <p>
326
 Lightweight git project hosting system. You can mirror projects from Github, or if Github turns evil then just host your own projects while retaining the familiar <i>fork-and-pull</i> workflow. If you can use Github then you can also use Gogs.
417
 Lightweight git project hosting system. You can mirror projects from Github, or if Github turns evil then just host your own projects while retaining the familiar <i>fork-and-pull</i> workflow. If you can use Github then you can also use Gogs.
327
 </p>
418
 </p>
331
 </p>
422
 </p>
332
 </div>
423
 </div>
333
 </div>
424
 </div>
334
-<div id="outline-container-sec-15" class="outline-2">
335
-<h2 id="sec-15">HTMLy</h2>
336
-<div class="outline-text-2" id="text-15">
425
+<div id="outline-container-org399677f" class="outline-2">
426
+<h2 id="org399677f">HTMLy</h2>
427
+<div class="outline-text-2" id="text-org399677f">
337
 <p>
428
 <p>
338
 Databaseless blogging system. Quite simple and with a markdown-like format.
429
 Databaseless blogging system. Quite simple and with a markdown-like format.
339
 </p>
430
 </p>
343
 </p>
434
 </p>
344
 </div>
435
 </div>
345
 </div>
436
 </div>
346
-<div id="outline-container-sec-16" class="outline-2">
347
-<h2 id="sec-16">Hubzilla</h2>
348
-<div class="outline-text-2" id="text-16">
437
+<div id="outline-container-org2fcaeeb" class="outline-2">
438
+<h2 id="org2fcaeeb">Hubzilla</h2>
439
+<div class="outline-text-2" id="text-org2fcaeeb">
349
 <p>
440
 <p>
350
 Web publishing platform with social network like features and good privacy controls so that it's possible to specify who can see which content. Includes photo albums, calendar, wiki and file storage.
441
 Web publishing platform with social network like features and good privacy controls so that it's possible to specify who can see which content. Includes photo albums, calendar, wiki and file storage.
351
 </p>
442
 </p>
355
 </p>
446
 </p>
356
 </div>
447
 </div>
357
 </div>
448
 </div>
358
-<div id="outline-container-sec-17" class="outline-2">
359
-<h2 id="sec-17">Icecast media stream</h2>
360
-<div class="outline-text-2" id="text-17">
449
+<div id="outline-container-org0bce17a" class="outline-2">
450
+<h2 id="org0bce17a">Icecast media stream</h2>
451
+<div class="outline-text-2" id="text-org0bce17a">
361
 <p>
452
 <p>
362
 Make your own internet radio station.
453
 Make your own internet radio station.
363
 </p>
454
 </p>
367
 </p>
458
 </p>
368
 </div>
459
 </div>
369
 </div>
460
 </div>
370
-<div id="outline-container-sec-18" class="outline-2">
371
-<h2 id="sec-18">IRC Server (ngirc)</h2>
372
-<div class="outline-text-2" id="text-18">
461
+<div id="outline-container-orgd083573" class="outline-2">
462
+<h2 id="orgd083573">IRC Server (ngirc)</h2>
463
+<div class="outline-text-2" id="text-orgd083573">
373
 <p>
464
 <p>
374
 Run your own IRC chat channel which can be secured with a password and accessible via an onion address. A bouncer is included so that you can receive messages sent while you were offline. Works with Hexchat and other popular clients.
465
 Run your own IRC chat channel which can be secured with a password and accessible via an onion address. A bouncer is included so that you can receive messages sent while you were offline. Works with Hexchat and other popular clients.
375
 </p>
466
 </p>
379
 </p>
470
 </p>
380
 </div>
471
 </div>
381
 </div>
472
 </div>
382
-<div id="outline-container-sec-19" class="outline-2">
383
-<h2 id="sec-19">Jitsi Meet</h2>
384
-<div class="outline-text-2" id="text-19">
473
+<div id="outline-container-orgdaa15cf" class="outline-2">
474
+<h2 id="orgdaa15cf">Jitsi Meet</h2>
475
+<div class="outline-text-2" id="text-orgdaa15cf">
385
 <p>
476
 <p>
386
 Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.
477
 Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.
387
 </p>
478
 </p>
388
 </div>
479
 </div>
389
 </div>
480
 </div>
390
 
481
 
391
-<div id="outline-container-sec-20" class="outline-2">
392
-<h2 id="sec-20">KanBoard</h2>
393
-<div class="outline-text-2" id="text-20">
482
+<div id="outline-container-org15f9534" class="outline-2">
483
+<h2 id="org15f9534">KanBoard</h2>
484
+<div class="outline-text-2" id="text-org15f9534">
394
 <p>
485
 <p>
395
 A simple kanban system for managing projects or TODO lists.
486
 A simple kanban system for managing projects or TODO lists.
396
 </p>
487
 </p>
400
 </p>
491
 </p>
401
 </div>
492
 </div>
402
 </div>
493
 </div>
403
-<div id="outline-container-sec-21" class="outline-2">
404
-<h2 id="sec-21">Key Server</h2>
405
-<div class="outline-text-2" id="text-21">
494
+<div id="outline-container-org1090474" class="outline-2">
495
+<h2 id="org1090474">Key Server</h2>
496
+<div class="outline-text-2" id="text-org1090474">
406
 <p>
497
 <p>
407
 An OpenPGP key server for storing and retrieving GPG public keys.
498
 An OpenPGP key server for storing and retrieving GPG public keys.
408
 </p>
499
 </p>
412
 </p>
503
 </p>
413
 </div>
504
 </div>
414
 </div>
505
 </div>
415
-<div id="outline-container-sec-22" class="outline-2">
416
-<h2 id="sec-22">Koel</h2>
417
-<div class="outline-text-2" id="text-22">
506
+<div id="outline-container-org80f825f" class="outline-2">
507
+<h2 id="org80f825f">Koel</h2>
508
+<div class="outline-text-2" id="text-org80f825f">
418
 <p>
509
 <p>
419
 Access your music collection from any internet connected device.
510
 Access your music collection from any internet connected device.
420
 </p>
511
 </p>
424
 </p>
515
 </p>
425
 </div>
516
 </div>
426
 </div>
517
 </div>
427
-<div id="outline-container-sec-23" class="outline-2">
428
-<h2 id="sec-23">Lychee</h2>
429
-<div class="outline-text-2" id="text-23">
518
+<div id="outline-container-orgd6e6623" class="outline-2">
519
+<h2 id="orgd6e6623">Lychee</h2>
520
+<div class="outline-text-2" id="text-orgd6e6623">
430
 <p>
521
 <p>
431
 Make your photo albums available on the web.
522
 Make your photo albums available on the web.
432
 </p>
523
 </p>
436
 </p>
527
 </p>
437
 </div>
528
 </div>
438
 </div>
529
 </div>
439
-<div id="outline-container-sec-24" class="outline-2">
440
-<h2 id="sec-24">Mailpile</h2>
441
-<div class="outline-text-2" id="text-24">
530
+<div id="outline-container-org3588890" class="outline-2">
531
+<h2 id="org3588890">Mailpile</h2>
532
+<div class="outline-text-2" id="text-org3588890">
442
 <p>
533
 <p>
443
 Modern email client which supports GPG encryption.
534
 Modern email client which supports GPG encryption.
444
 </p>
535
 </p>
448
 </p>
539
 </p>
449
 </div>
540
 </div>
450
 </div>
541
 </div>
451
-<div id="outline-container-sec-25" class="outline-2">
452
-<h2 id="sec-25">Matrix</h2>
453
-<div class="outline-text-2" id="text-25">
542
+<div id="outline-container-orgb1ec8b5" class="outline-2">
543
+<h2 id="orgb1ec8b5">Matrix</h2>
544
+<div class="outline-text-2" id="text-orgb1ec8b5">
454
 <p>
545
 <p>
455
 Multi-user chat with some security and moderation controls.
546
 Multi-user chat with some security and moderation controls.
456
 </p>
547
 </p>
460
 </p>
551
 </p>
461
 </div>
552
 </div>
462
 </div>
553
 </div>
463
-<div id="outline-container-sec-26" class="outline-2">
464
-<h2 id="sec-26">Mediagoblin</h2>
465
-<div class="outline-text-2" id="text-26">
554
+<div id="outline-container-org2765a47" class="outline-2">
555
+<h2 id="org2765a47">Mediagoblin</h2>
556
+<div class="outline-text-2" id="text-org2765a47">
466
 <p>
557
 <p>
467
 Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.
558
 Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.
468
 </p>
559
 </p>
472
 </p>
563
 </p>
473
 </div>
564
 </div>
474
 </div>
565
 </div>
475
-<div id="outline-container-sec-27" class="outline-2">
476
-<h2 id="sec-27">Mumble</h2>
477
-<div class="outline-text-2" id="text-27">
566
+<div id="outline-container-org03e8661" class="outline-2">
567
+<h2 id="org03e8661">Mumble</h2>
568
+<div class="outline-text-2" id="text-org03e8661">
478
 <p>
569
 <p>
479
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
570
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
480
 </p>
571
 </p>
484
 </p>
575
 </p>
485
 </div>
576
 </div>
486
 </div>
577
 </div>
487
-<div id="outline-container-sec-28" class="outline-2">
488
-<h2 id="sec-28">NextCloud</h2>
489
-<div class="outline-text-2" id="text-28">
578
+<div id="outline-container-org2be2a1a" class="outline-2">
579
+<h2 id="org2be2a1a">NextCloud</h2>
580
+<div class="outline-text-2" id="text-org2be2a1a">
490
 <p>
581
 <p>
491
 Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.
582
 Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.
492
 </p>
583
 </p>
496
 </p>
587
 </p>
497
 </div>
588
 </div>
498
 </div>
589
 </div>
499
-<div id="outline-container-sec-29" class="outline-2">
500
-<h2 id="sec-29">PeerTube</h2>
501
-<div class="outline-text-2" id="text-29">
590
+<div id="outline-container-orga9b8ff0" class="outline-2">
591
+<h2 id="orga9b8ff0">PeerTube</h2>
592
+<div class="outline-text-2" id="text-orga9b8ff0">
502
 <p>
593
 <p>
503
 Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better enables the streaming load to be shared across servers.
594
 Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better enables the streaming load to be shared across servers.
504
 </p>
595
 </p>
508
 </p>
599
 </p>
509
 </div>
600
 </div>
510
 </div>
601
 </div>
511
-<div id="outline-container-sec-30" class="outline-2">
512
-<h2 id="sec-30">PI-Hole</h2>
513
-<div class="outline-text-2" id="text-30">
602
+<div id="outline-container-orge124cb5" class="outline-2">
603
+<h2 id="orge124cb5">PI-Hole</h2>
604
+<div class="outline-text-2" id="text-orge124cb5">
514
 <p>
605
 <p>
515
 The black hole for web adverts. Block adverts at the domain name level within your local network. It can significantly reduce bandwidth, speed up page load times and protect your systems from being tracked by spyware.
606
 The black hole for web adverts. Block adverts at the domain name level within your local network. It can significantly reduce bandwidth, speed up page load times and protect your systems from being tracked by spyware.
516
 </p>
607
 </p>
520
 </p>
611
 </p>
521
 </div>
612
 </div>
522
 </div>
613
 </div>
523
-<div id="outline-container-sec-31" class="outline-2">
524
-<h2 id="sec-31">Pleroma</h2>
525
-<div class="outline-text-2" id="text-31">
614
+<div id="outline-container-org7d249a4" class="outline-2">
615
+<h2 id="org7d249a4">Pleroma</h2>
616
+<div class="outline-text-2" id="text-org7d249a4">
526
 <p>
617
 <p>
527
 Fediverse instance which is compatible with GNU Social and Mastodon, and suited for systems without much RAM or CPU resource.
618
 Fediverse instance which is compatible with GNU Social and Mastodon, and suited for systems without much RAM or CPU resource.
528
 </p>
619
 </p>
532
 </p>
623
 </p>
533
 </div>
624
 </div>
534
 </div>
625
 </div>
535
-<div id="outline-container-sec-32" class="outline-2">
536
-<h2 id="sec-32">PostActiv</h2>
537
-<div class="outline-text-2" id="text-32">
626
+<div id="outline-container-orgce303d5" class="outline-2">
627
+<h2 id="orgce303d5">PostActiv</h2>
628
+<div class="outline-text-2" id="text-orgce303d5">
538
 <p>
629
 <p>
539
 An alternative federated social networking system compatible with GNU Social, Pleroma and Mastodon. It includes some optimisations and fixes currently not available within the main GNU Social project.
630
 An alternative federated social networking system compatible with GNU Social, Pleroma and Mastodon. It includes some optimisations and fixes currently not available within the main GNU Social project.
540
 </p>
631
 </p>
544
 </p>
635
 </p>
545
 </div>
636
 </div>
546
 </div>
637
 </div>
547
-<div id="outline-container-sec-33" class="outline-2">
548
-<h2 id="sec-33">PrivateBin</h2>
549
-<div class="outline-text-2" id="text-33">
638
+<div id="outline-container-orgfc8be3c" class="outline-2">
639
+<h2 id="orgfc8be3c">PrivateBin</h2>
640
+<div class="outline-text-2" id="text-orgfc8be3c">
550
 <p>
641
 <p>
551
 A pastebin where the server has zero knowledge of the content being pasted.
642
 A pastebin where the server has zero knowledge of the content being pasted.
552
 </p>
643
 </p>
556
 </p>
647
 </p>
557
 </div>
648
 </div>
558
 </div>
649
 </div>
559
-<div id="outline-container-sec-34" class="outline-2">
560
-<h2 id="sec-34">Profanity</h2>
561
-<div class="outline-text-2" id="text-34">
650
+<div id="outline-container-org169bce5" class="outline-2">
651
+<h2 id="org169bce5">Profanity</h2>
652
+<div class="outline-text-2" id="text-org169bce5">
562
 <p>
653
 <p>
563
 A shell based XMPP client which you can run on the Freedombone server via ssh.
654
 A shell based XMPP client which you can run on the Freedombone server via ssh.
564
 </p>
655
 </p>
568
 </p>
659
 </p>
569
 </div>
660
 </div>
570
 </div>
661
 </div>
571
-<div id="outline-container-sec-35" class="outline-2">
572
-<h2 id="sec-35">Riot Web</h2>
573
-<div class="outline-text-2" id="text-35">
662
+<div id="outline-container-orgef8d37a" class="outline-2">
663
+<h2 id="orgef8d37a">Riot Web</h2>
664
+<div class="outline-text-2" id="text-orgef8d37a">
574
 <p>
665
 <p>
575
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
666
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
576
 </p>
667
 </p>
580
 </p>
671
 </p>
581
 </div>
672
 </div>
582
 </div>
673
 </div>
583
-<div id="outline-container-sec-36" class="outline-2">
584
-<h2 id="sec-36">SearX</h2>
585
-<div class="outline-text-2" id="text-36">
674
+<div id="outline-container-orgb2b8eaf" class="outline-2">
675
+<h2 id="orgb2b8eaf">Rocketchat</h2>
676
+<div class="outline-text-2" id="text-orgb2b8eaf">
677
+<p>
678
+A non-federated chat server (x86 systems only).
679
+</p>
680
+
681
+<p>
682
+<a href="./app_rocketchat.html">How to use it</a>
683
+</p>
684
+</div>
685
+</div>
686
+<div id="outline-container-org86dc8e9" class="outline-2">
687
+<h2 id="org86dc8e9">SearX</h2>
688
+<div class="outline-text-2" id="text-org86dc8e9">
586
 <p>
689
 <p>
587
 A metasearch engine for customised and private web searches.
690
 A metasearch engine for customised and private web searches.
588
 </p>
691
 </p>
592
 </p>
695
 </p>
593
 </div>
696
 </div>
594
 </div>
697
 </div>
595
-<div id="outline-container-sec-37" class="outline-2">
596
-<h2 id="sec-37">tt-rss</h2>
597
-<div class="outline-text-2" id="text-37">
698
+<div id="outline-container-orgd3988e5" class="outline-2">
699
+<h2 id="orgd3988e5">tt-rss</h2>
700
+<div class="outline-text-2" id="text-orgd3988e5">
598
 <p>
701
 <p>
599
 Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via an onion address. Have "<i>the right to read</i>" without the Surveillance State knowing what you're reading. Also available with a user interface suitable for viewing on mobile devices via a browser such as OrFox.
702
 Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via an onion address. Have "<i>the right to read</i>" without the Surveillance State knowing what you're reading. Also available with a user interface suitable for viewing on mobile devices via a browser such as OrFox.
600
 </p>
703
 </p>
604
 </p>
707
 </p>
605
 </div>
708
 </div>
606
 </div>
709
 </div>
607
-<div id="outline-container-sec-38" class="outline-2">
608
-<h2 id="sec-38">Syncthing</h2>
609
-<div class="outline-text-2" id="text-38">
710
+<div id="outline-container-org773fb88" class="outline-2">
711
+<h2 id="org773fb88">Syncthing</h2>
712
+<div class="outline-text-2" id="text-org773fb88">
610
 <p>
713
 <p>
611
 Possibly the best way to synchronise files across all of your devices. Once it has been set up it "just works" with no user intervention needed.
714
 Possibly the best way to synchronise files across all of your devices. Once it has been set up it "just works" with no user intervention needed.
612
 </p>
715
 </p>
616
 </p>
719
 </p>
617
 </div>
720
 </div>
618
 </div>
721
 </div>
619
-<div id="outline-container-sec-39" class="outline-2">
620
-<h2 id="sec-39">Tahoe-LAFS</h2>
621
-<div class="outline-text-2" id="text-39">
722
+<div id="outline-container-org6ad810d" class="outline-2">
723
+<h2 id="org6ad810d">Tahoe-LAFS</h2>
724
+<div class="outline-text-2" id="text-org6ad810d">
622
 <p>
725
 <p>
623
 Robust and encrypted storage of files on one or more server.
726
 Robust and encrypted storage of files on one or more server.
624
 </p>
727
 </p>
628
 </p>
731
 </p>
629
 </div>
732
 </div>
630
 </div>
733
 </div>
631
-<div id="outline-container-sec-40" class="outline-2">
632
-<h2 id="sec-40">Tox</h2>
633
-<div class="outline-text-2" id="text-40">
734
+<div id="outline-container-orgc866a19" class="outline-2">
735
+<h2 id="orgc866a19">Tox</h2>
736
+<div class="outline-text-2" id="text-orgc866a19">
634
 <p>
737
 <p>
635
 Client and bootstrap node for the Tox chat/VoIP system.
738
 Client and bootstrap node for the Tox chat/VoIP system.
636
 </p>
739
 </p>
640
 </p>
743
 </p>
641
 </div>
744
 </div>
642
 </div>
745
 </div>
643
-<div id="outline-container-sec-41" class="outline-2">
644
-<h2 id="sec-41">Turtl</h2>
645
-<div class="outline-text-2" id="text-41">
746
+<div id="outline-container-orge8c9d44" class="outline-2">
747
+<h2 id="orge8c9d44">Turtl</h2>
748
+<div class="outline-text-2" id="text-orge8c9d44">
646
 <p>
749
 <p>
647
 A system for privately creating and sharing notes and images, similar to Evernote but without the spying.
750
 A system for privately creating and sharing notes and images, similar to Evernote but without the spying.
648
 </p>
751
 </p>
652
 </p>
755
 </p>
653
 </div>
756
 </div>
654
 </div>
757
 </div>
655
-<div id="outline-container-sec-42" class="outline-2">
656
-<h2 id="sec-42">Vim</h2>
657
-<div class="outline-text-2" id="text-42">
758
+<div id="outline-container-org99b644d" class="outline-2">
759
+<h2 id="org99b644d">Vim</h2>
760
+<div class="outline-text-2" id="text-org99b644d">
658
 <p>
761
 <p>
659
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
762
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
660
 </p>
763
 </p>
661
 </div>
764
 </div>
662
 </div>
765
 </div>
663
 
766
 
664
-<div id="outline-container-sec-43" class="outline-2">
665
-<h2 id="sec-43">Virtual Private Network (VPN)</h2>
666
-<div class="outline-text-2" id="text-43">
767
+<div id="outline-container-org880c87c" class="outline-2">
768
+<h2 id="org880c87c">Virtual Private Network (VPN)</h2>
769
+<div class="outline-text-2" id="text-org880c87c">
667
 <p>
770
 <p>
668
 Set up a VPN on your server so that you can bypass local internet censorship.
771
 Set up a VPN on your server so that you can bypass local internet censorship.
669
 </p>
772
 </p>
673
 </p>
776
 </p>
674
 </div>
777
 </div>
675
 </div>
778
 </div>
676
-<div id="outline-container-sec-44" class="outline-2">
677
-<h2 id="sec-44">XMPP</h2>
678
-<div class="outline-text-2" id="text-44">
779
+<div id="outline-container-org6237f89" class="outline-2">
780
+<h2 id="org6237f89">XMPP</h2>
781
+<div class="outline-text-2" id="text-org6237f89">
679
 <p>
782
 <p>
680
 Chat server which can be used together with client such as Gajim or Conversations to provide end-to-end content security and also onion routed metadata security. Includes advanced features such as <i>client state notification</i> to save battery power on your mobile devices, support for seamless roaming between networks and <i>message carbons</i> so that you can receive the same messages while being simultaneously logged in to your account on more than one device.
783
 Chat server which can be used together with client such as Gajim or Conversations to provide end-to-end content security and also onion routed metadata security. Includes advanced features such as <i>client state notification</i> to save battery power on your mobile devices, support for seamless roaming between networks and <i>message carbons</i> so that you can receive the same messages while being simultaneously logged in to your account on more than one device.
681
 </p>
784
 </p>