浏览代码

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

Bob Mottram 6 年前
父节点
当前提交
b9875f94cb

+ 2
- 2
README.md 查看文件

@@ -4,11 +4,11 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
4 4
 
5 5
 You can run Freedombone on an old laptop or a single board computer. See the [list of installation methods](https://freedombone.net/installmethods.html). You can also use it to [set up a mesh network](https://freedombone.net/mesh.html) in your local area.
6 6
 
7
-Check out the [list of available apps](https://freedombone.net/apps.html) and [Frequently Asked Questions](https://freedombone.net/faq.html) section. Recent developments are also described on [the blog](https://blog.freedombone.net/tag/freedombone).
7
+Check out the [list of available apps](https://freedombone.net/apps.html) and [Frequently Asked Questions](https://freedombone.net/faq.html) section. Recent developments are also described on [the blog](https://blog.freedombone.net/tag/freedombone). You might also wish to know how to [backup and restore the system](https://freedombone.net/backups.html).
8 8
 
9 9
 Disk images which can be cloned straight to USB or microSD drives are [available here](https://freedombone.net/downloads/v31).
10 10
 
11
-If you find bugs, or want to add a new app to this system see the [Developers Guide](https://freedombone.net/devguide.html) and [Code of Conduct](https://freedombone.net/codeofconduct.html). There is a Matrix chat room available at *#fbone:matrix.freedombone.net* and an XMPP channel at *support@chat.freedombone.net*.
11
+If you find bugs, or want to add a new app to this system see the [Developers Guide](https://freedombone.net/devguide.html) and [Code of Conduct](https://freedombone.net/codeofconduct.html). There is a Matrix chat room available at *#fbone:matrix.freedombone.net* and an XMPP channel at *support@chat.freedombone.net*. The XMPP channel requires membership which you can ask for via [these contact details](https://freedombone.net/support.html).
12 12
 
13 13
 If you like this project and want to support continued development then [here's what to do](https://freedombone.net/support.html).
14 14
 

+ 4
- 1
doc/EN/app_syncthing.org 查看文件

@@ -39,7 +39,7 @@ In another terminal log into Freedombone:
39 39
 ssh username@domainname -p 2222
40 40
 #+END_SRC
41 41
 
42
-Then select *File Synchronization*.
42
+Then select *Run an App* and *syncthing*.
43 43
 
44 44
 #+attr_html: :width 80% :align center
45 45
 [[file:images/controlpanel/control_panel_file_sync.jpg]]
@@ -55,6 +55,9 @@ From the top menu select *Actions* and then *Show ID*, then copy the ID string (
55 55
 
56 56
 Now wait for a few minutes. Eventually you will see two messages appear within the browser asking if you want to add two new folders from the Freedombone server. Say yes to both, and specify *~/Sync* as the directory with your username and *~/SyncShared* as the shared directory. You can now copy files into your *~/Sync* directory and they will automatically be synced to the server. Those will be files which only you can access. If you copy files into *~/SyncShared* then they will also be available to any other users on the system.
57 57
 
58
+* Desktop app
59
+If you're running Arch/Parabola there is a package called [[https://github.com/syncthing/syncthing-gtk][syncthing-gtk]] which provides a GTK GUI and an icon indicating whether synchronization is happening. This can be more convenient than using the browser interface.
60
+
58 61
 * On Android
59 62
 Install Syncthing and Connectbot from F-droid.
60 63
 

+ 0
- 3
doc/EN/app_xmpp.org 查看文件

@@ -71,9 +71,6 @@ Enter your username (username@domainname) and password.
71 71
 
72 72
 Click on *Advanced* and make sure that *Encryption required* and *Ignore SSL certificate errors* are checked.  Ignoring the certificate errors will allow you to use the self-signed certificate created earlier.  Then click *Done* and set your Jabber account and Empathy to *On*.
73 73
 
74
-* Using Tor Messenger
75
-Tor Messenger is a messaging client which supports XMPP, and its onion routing enables you to protect the metadata of chat interactions to some extent by making it difficult for an adversary to know which server is talking to which. You can download Tor Messenger from [[https://torproject.org][torproject.org]] and the setup is pretty simple.
76
-
77 74
 * Using with Android/Conversations
78 75
 Install [[https://f-droid.org/][F-Droid]]
79 76
 

+ 2
- 2
doc/EN/index.org 查看文件

@@ -17,11 +17,11 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
17 17
 
18 18
 You can run Freedombone on an old laptop or a single board computer. See the [[./installmethods.html][list of installation methods]]. You can also use it to [[./mesh.html][set up a mesh network]] in your local area.
19 19
 
20
-Check out the [[./apps.html][list of available apps]] and [[./faq.html][Frequently Asked Questions]] section. Recent developments are also described on [[https://blog.freedombone.net/tag/freedombone][the blog]].
20
+Check out the [[./apps.html][list of available apps]] and [[./faq.html][Frequently Asked Questions]] section. Recent developments are also described on [[https://blog.freedombone.net/tag/freedombone][the blog]]. You might also wish to know how to [[./backups.html][backup and restore the system]].
21 21
 
22 22
 Disk images which can be cloned straight to USB or microSD drives are [[./downloads/v31][available here]].
23 23
 
24
-If you find bugs, or want to add a new app to this system see the [[./devguide.html][Developers Guide]] and [[./codeofconduct.html][Code of Conduct]]. There is a Matrix chat room available at *#fbone:matrix.freedombone.net* and an XMPP channel at *support@chat.freedombone.net*.
24
+If you find bugs, or want to add a new app to this system see the [[./devguide.html][Developers Guide]] and [[./codeofconduct.html][Code of Conduct]]. There is a Matrix chat room available at *#fbone:matrix.freedombone.net* and an XMPP channel at *support@chat.freedombone.net*. The XMPP channel requires membership which you can ask for via [[./support.html][these contact details]].
25 25
 
26 26
 If you like this project and want to support continued development then [[./support.html][here's what to do]].
27 27
 

+ 18
- 2
doc/EN/support.org 查看文件

@@ -15,13 +15,29 @@
15 15
 
16 16
 This site can also be accessed via a Tor browser at *http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion*
17 17
 
18
-*Email:* bob@freedombone.net
18
+*Email/XMPP:* bob@freedombone.net
19 19
 
20 20
 *PGP/GPG Public key:*
21
+#+BEGIN_SRC bash
22
+-----BEGIN PGP PUBLIC KEY BLOCK-----
23
+
24
+mDMEWZBueBYJKwYBBAHaRw8BAQdAKx1t6wL0RTuU6/IBjngMbVJJ3Wg/3UW73/PV
25
+I47xKTS0IUJvYiBNb3R0cmFtIDxib2JAZnJlZWRvbWJvbmUubmV0PoiQBBMWCAA4
26
+FiEEmruCwAq/OfgmgEh9zCU2GR+nwz8FAlmQbngCGwMFCwkIBwMFFQoJCAsFFgID
27
+AQACHgECF4AACgkQzCU2GR+nwz/9sAD/YgsHnVszHNz1zlVc5EgY1ByDupiJpHj0
28
+XsLYk3AbNRgBALn45RqgD4eWHpmOriH09H5Rc5V9iN4+OiGUn2AzJ6oHuDgEWZBu
29
+eBIKKwYBBAGXVQEFAQEHQPRBG2ZQJce475S3e0Dxeb0Fz5WdEu2q3GYLo4QG+4Ry
30
+AwEIB4h4BBgWCAAgFiEEmruCwAq/OfgmgEh9zCU2GR+nwz8FAlmQbngCGwwACgkQ
31
+zCU2GR+nwz+OswD+JOoyBku9FzuWoVoOevU2HH+bPOMDgY2OLnST9ZSyHkMBAMcK
32
+fnaZ2Wi050483Sj2RmQRpb99Dod7rVZTDtCqXk0J
33
+=gv5G
34
+-----END PGP PUBLIC KEY BLOCK-----
35
+#+END_SRC
36
+
21 37
 #+attr_html: :width 60% :align center
22 38
 [[file:images/pubkey.png]]
23 39
 
24
-*XMPP channel:* support@chat.freedombone.net
40
+*XMPP channel:* support@chat.freedombone.net (Requires membership. Ask via XMPP to *bob@freedombone.net*)
25 41
 
26 42
 *Matrix:* #fbone:matrix.freedombone.net
27 43
 

+ 1
- 1
src/freedombone-app-pleroma 查看文件

@@ -36,7 +36,7 @@ PLEROMA_CODE=
36 36
 PLEROMA_PORT=4000
37 37
 PLEROMA_ONION_PORT=8011
38 38
 PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
39
-PLEROMA_COMMIT='1d4bbec6b3239bb83b500a6a90e6686cb682cfac'
39
+PLEROMA_COMMIT='6b9a6838331210dd514d5ecda52783c183bd1bbf'
40 40
 PLEROMA_ADMIN_PASSWORD=
41 41
 PLEROMA_DIR=/etc/pleroma
42 42
 PLEROMA_SECRET_KEY=""

+ 13
- 20
src/freedombone-app-syncthing 查看文件

@@ -213,33 +213,26 @@ function run_client_syncthing {
213 213
     SYNCTHING_CONFIG_FILE=~/.syncthingids
214 214
     SYNCTHING_ID=$(cat ~/.syncthing-server-id)
215 215
 
216
+    W=(1 $"Show device ID for ${PROJECT_NAME}"
217
+       2 $"Add an ID for another machine or device"
218
+       3 $"Remove an ID for another machine or device"
219
+       4 $"Manually edit device IDs")
220
+
216 221
     while true
217 222
     do
218
-        data=$(mktemp 2>/dev/null)
219
-        dialog --backtitle $"Freedombone User Control Panel" \
220
-               --title $"File Synchronization" \
221
-               --radiolist $"Choose an operation:" 12 70 6 \
222
-               1 $"Show device ID for ${PROJECT_NAME}" off \
223
-               2 $"Add an ID for another machine or device" off \
224
-               3 $"Remove an ID for another machine or device" off \
225
-               4 $"Manually edit device IDs" off \
226
-               5 $"Back to main menu" on 2> "$data"
227
-        sel=$?
228
-        case $sel in
229
-            1) rm -f "$data"
230
-               break;;
231
-            255) rm -f "$data"
232
-                 break;;
233
-        esac
234
-        case $(cat "$data") in
223
+        # shellcheck disable=SC2068
224
+        selection=$(dialog --backtitle $"Freedombone User Control Panel" --title $"File Synchronization" --menu $"Choose an operation, or ESC for main menu:" 12 70 6 "${W[@]}" 3>&2 2>&1 1>&3)
225
+
226
+        if [ ! "$selection" ]; then
227
+           break
228
+        fi
229
+
230
+        case $selection in
235 231
             1) syncthing_show_id;;
236 232
             2) syncthing_add_id;;
237 233
             3) syncthing_remove_id;;
238 234
             4) syncthing_manual_edit;;
239
-            5) rm -f "$data"
240
-               break;;
241 235
         esac
242
-        rm -f "$data"
243 236
     done
244 237
 }
245 238
 

+ 9
- 16
src/freedombone-controlpanel-user 查看文件

@@ -812,7 +812,7 @@ function sign_keys {
812 812
 function menu_run_client_app {
813 813
     detect_installable_apps
814 814
 
815
-    applist=""
815
+    W=()
816 816
     appnames=()
817 817
     n=1
818 818
     app_index=0
@@ -821,7 +821,7 @@ function menu_run_client_app {
821 821
     do
822 822
         if [[ ${APPS_INSTALLED[$app_index]} != "0" ]]; then
823 823
             if [[ $(function_exists "run_client_${a}") == "1" ]]; then
824
-                applist="$applist $n $a off"
824
+                W+=("$n" "$a")
825 825
                 n=$((n+1))
826 826
                 appnames+=("$a")
827 827
             fi
@@ -831,24 +831,17 @@ function menu_run_client_app {
831 831
     if [ $n -le 1 ]; then
832 832
         return
833 833
     fi
834
-    backstr=$'Exit'
835
-    applist="$applist $n $backstr on"
836
-    appnames+=("Exit")
837 834
 
838 835
     # shellcheck disable=SC2086
839
-    choice=$(dialog --stdout --backtitle $"Freedombone" \
840
-                     --title $"Run an App" \
841
-                     --radiolist $'Choose:' \
842
-                     16 40 20 $applist)
836
+    selection=$(dialog --backtitle $"Freedombone" --title $"Run an App" --menu $"Choose an operation, or ESC for main menu:" 16 70 20 "${W[@]}" 3>&2 2>&1 1>&3)
843 837
 
844
-    # shellcheck disable=SC2181
845
-    if [ $? -eq 0 ]; then
846
-        app_index=$((choice-1))
847
-        chosen_app=${appnames[$app_index]}
848
-        if [[ $chosen_app != "Exit" ]]; then
849
-            "run_client_${chosen_app}"
850
-        fi
838
+    if [ ! "$selection" ]; then
839
+        return
851 840
     fi
841
+
842
+    app_index=$((selection-1))
843
+    chosen_app=${appnames[$app_index]}
844
+    "run_client_${chosen_app}"
852 845
 }
853 846
 
854 847
 function show_your_email_address {

+ 12
- 3
website/EN/app_syncthing.html 查看文件

@@ -4,7 +4,7 @@
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6 6
 <title></title>
7
-<!-- 2018-04-12 Thu 12:40 -->
7
+<!-- 2018-05-24 Thu 13:40 -->
8 8
 <meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9 9
 <meta  name="generator" content="Org-mode" />
10 10
 <meta  name="author" content="Bob Mottram" />
@@ -205,7 +205,7 @@ In another terminal log into Freedombone:
205 205
 </div>
206 206
 
207 207
 <p>
208
-Then select <b>File Synchronization</b>.
208
+Then select <b>Run an App</b> and <b>syncthing</b>.
209 209
 </p>
210 210
 
211 211
 
@@ -239,9 +239,18 @@ Now wait for a few minutes. Eventually you will see two messages appear within t
239 239
 </div>
240 240
 
241 241
 <div id="outline-container-sec-3" class="outline-2">
242
-<h2 id="sec-3">On Android</h2>
242
+<h2 id="sec-3">Desktop app</h2>
243 243
 <div class="outline-text-2" id="text-3">
244 244
 <p>
245
+If you're running Arch/Parabola there is a package called <a href="https://github.com/syncthing/syncthing-gtk">syncthing-gtk</a> which provides a GTK GUI and an icon indicating whether synchronization is happening. This can be more convenient than using the browser interface.
246
+</p>
247
+</div>
248
+</div>
249
+
250
+<div id="outline-container-sec-4" class="outline-2">
251
+<h2 id="sec-4">On Android</h2>
252
+<div class="outline-text-2" id="text-4">
253
+<p>
245 254
 Install Syncthing and Connectbot from F-droid.
246 255
 </p>
247 256
 

+ 2
- 11
website/EN/app_xmpp.html 查看文件

@@ -4,7 +4,7 @@
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6 6
 <title></title>
7
-<!-- 2018-04-12 Thu 12:45 -->
7
+<!-- 2018-05-24 Thu 21:10 -->
8 8
 <meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9 9
 <meta  name="generator" content="Org-mode" />
10 10
 <meta  name="author" content="Bob Mottram" />
@@ -279,18 +279,9 @@ Click on <b>Advanced</b> and make sure that <b>Encryption required</b> and <b>Ig
279 279
 </div>
280 280
 
281 281
 <div id="outline-container-sec-6" class="outline-2">
282
-<h2 id="sec-6">Using Tor Messenger</h2>
282
+<h2 id="sec-6">Using with Android/Conversations</h2>
283 283
 <div class="outline-text-2" id="text-6">
284 284
 <p>
285
-Tor Messenger is a messaging client which supports XMPP, and its onion routing enables you to protect the metadata of chat interactions to some extent by making it difficult for an adversary to know which server is talking to which. You can download Tor Messenger from <a href="https://torproject.org">torproject.org</a> and the setup is pretty simple.
286
-</p>
287
-</div>
288
-</div>
289
-
290
-<div id="outline-container-sec-7" class="outline-2">
291
-<h2 id="sec-7">Using with Android/Conversations</h2>
292
-<div class="outline-text-2" id="text-7">
293
-<p>
294 285
 Install <a href="https://f-droid.org/">F-Droid</a>
295 286
 </p>
296 287
 

+ 31
- 122
website/EN/index.html 查看文件

@@ -3,33 +3,26 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2018-05-13 Sun 11:58 -->
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="Freedombone project"
6
+<title></title>
7
+<!-- 2018-05-24 Thu 21:18 -->
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="Freedombone project"
13 12
  />
14
-<meta name="keywords" content="freedombone" />
13
+<meta  name="keywords" content="freedombone" />
15 14
 <style type="text/css">
16 15
  <!--/*--><![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; }
16
+  .title  { text-align: center; }
23 17
   .todo   { font-family: monospace; color: red; }
24
-  .done   { font-family: monospace; color: green; }
25
-  .priority { font-family: monospace; color: orange; }
18
+  .done   { color: green; }
26 19
   .tag    { background-color: #eee; font-family: monospace;
27 20
             padding: 2px; font-size: 80%; font-weight: normal; }
28 21
   .timestamp { color: #bebebe; }
29 22
   .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; }
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; }
33 26
   .underline { text-decoration: underline; }
34 27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35 28
   p.verse { margin-left: 3%; }
@@ -56,111 +49,27 @@
56 49
     border: 1px solid black;
57 50
   }
58 51
   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'; }
52
+  pre.src-sh:before    { content: 'sh'; }
53
+  pre.src-bash:before  { content: 'sh'; }
70 54
   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'; }
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'; }
151 59
 
152 60
   table { border-collapse:collapse; }
153 61
   caption.t-above { caption-side: top; }
154 62
   caption.t-bottom { caption-side: bottom; }
155 63
   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; }
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; }
162 70
   dt { font-weight: bold; }
163
-  .footpara { display: inline; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
164 73
   .footdef  { margin-bottom: 1em; }
165 74
   .figure { padding: 1em; }
166 75
   .figure p { text-align: center; }
@@ -180,7 +89,6 @@
180 89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
181 90
   .org-info-js_search-highlight
182 91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
-  .org-svg { width: 90%; }
184 92
   /*]]>*/-->
185 93
 </style>
186 94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
@@ -189,7 +97,7 @@
189 97
 @licstart  The following is the entire license notice for the
190 98
 JavaScript code in this tag.
191 99
 
192
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
100
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
193 101
 
194 102
 The JavaScript code in this tag is free software: you can
195 103
 redistribute it and/or modify it under the terms of the GNU
@@ -236,13 +144,14 @@ for the JavaScript code in this tag.
236 144
 <a name="top" id="top"></a>
237 145
 </div>
238 146
 <div id="content">
147
+<h1 class="title"></h1>
239 148
 
240 149
 <div class="figure">
241 150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
242 151
 </p>
243 152
 </div>
244 153
 
245
-<div class="org-center">
154
+<div class="center">
246 155
 <p>
247 156
 <a href="./release31.html">New release 3.1</a>
248 157
 </p>
@@ -257,7 +166,7 @@ You can run Freedombone on an old laptop or a single board computer. See the <a
257 166
 </p>
258 167
 
259 168
 <p>
260
-Check out the <a href="./apps.html">list of available apps</a> and <a href="./faq.html">Frequently Asked Questions</a> section. Recent developments are also described on <a href="https://blog.freedombone.net/tag/freedombone">the blog</a>.
169
+Check out the <a href="./apps.html">list of available apps</a> and <a href="./faq.html">Frequently Asked Questions</a> section. Recent developments are also described on <a href="https://blog.freedombone.net/tag/freedombone">the blog</a>. You might also wish to know how to <a href="./backups.html">backup and restore the system</a>.
261 170
 </p>
262 171
 
263 172
 <p>
@@ -265,7 +174,7 @@ Disk images which can be cloned straight to USB or microSD drives are <a href=".
265 174
 </p>
266 175
 
267 176
 <p>
268
-If you find bugs, or want to add a new app to this system see the <a href="./devguide.html">Developers Guide</a> and <a href="./codeofconduct.html">Code of Conduct</a>. There is a Matrix chat room available at <b>#fbone:matrix.freedombone.net</b> and an XMPP channel at <b>support@chat.freedombone.net</b>.
177
+If you find bugs, or want to add a new app to this system see the <a href="./devguide.html">Developers Guide</a> and <a href="./codeofconduct.html">Code of Conduct</a>. There is a Matrix chat room available at <b>#fbone:matrix.freedombone.net</b> and an XMPP channel at <b>support@chat.freedombone.net</b>. The XMPP channel requires membership which you can ask for via <a href="./support.html">these contact details</a>.
269 178
 </p>
270 179
 
271 180
 <p>

+ 80
- 154
website/EN/support.html 查看文件

@@ -3,33 +3,26 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2018-05-13 Sun 11:58 -->
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 support the Freedombone project"
6
+<title></title>
7
+<!-- 2018-05-24 Thu 21:42 -->
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 support the Freedombone project"
13 12
  />
14
-<meta name="keywords" content="freedombone, support" />
13
+<meta  name="keywords" content="freedombone, support" />
15 14
 <style type="text/css">
16 15
  <!--/*--><![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; }
16
+  .title  { text-align: center; }
23 17
   .todo   { font-family: monospace; color: red; }
24
-  .done   { font-family: monospace; color: green; }
25
-  .priority { font-family: monospace; color: orange; }
18
+  .done   { color: green; }
26 19
   .tag    { background-color: #eee; font-family: monospace;
27 20
             padding: 2px; font-size: 80%; font-weight: normal; }
28 21
   .timestamp { color: #bebebe; }
29 22
   .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; }
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; }
33 26
   .underline { text-decoration: underline; }
34 27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35 28
   p.verse { margin-left: 3%; }
@@ -56,111 +49,27 @@
56 49
     border: 1px solid black;
57 50
   }
58 51
   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'; }
52
+  pre.src-sh:before    { content: 'sh'; }
53
+  pre.src-bash:before  { content: 'sh'; }
70 54
   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'; }
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'; }
151 59
 
152 60
   table { border-collapse:collapse; }
153 61
   caption.t-above { caption-side: top; }
154 62
   caption.t-bottom { caption-side: bottom; }
155 63
   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; }
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; }
162 70
   dt { font-weight: bold; }
163
-  .footpara { display: inline; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
164 73
   .footdef  { margin-bottom: 1em; }
165 74
   .figure { padding: 1em; }
166 75
   .figure p { text-align: center; }
@@ -180,7 +89,6 @@
180 89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
181 90
   .org-info-js_search-highlight
182 91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
-  .org-svg { width: 90%; }
184 92
   /*]]>*/-->
185 93
 </style>
186 94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
@@ -189,7 +97,7 @@
189 97
 @licstart  The following is the entire license notice for the
190 98
 JavaScript code in this tag.
191 99
 
192
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
100
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
193 101
 
194 102
 The JavaScript code in this tag is free software: you can
195 103
 redistribute it and/or modify it under the terms of the GNU
@@ -236,30 +144,49 @@ for the JavaScript code in this tag.
236 144
 <a name="top" id="top"></a>
237 145
 </div>
238 146
 <div id="content">
147
+<h1 class="title"></h1>
239 148
 
240 149
 <div class="figure">
241 150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
242 151
 </p>
243 152
 </div>
244 153
 
245
-<div id="outline-container-org2a35610" class="outline-2">
246
-<h2 id="org2a35610">Support</h2>
154
+<div id="outline-container-sec-1" class="outline-2">
155
+<h2 id="sec-1">Support</h2>
247 156
 </div>
248 157
 
249
-<div id="outline-container-orge2e7a53" class="outline-2">
250
-<h2 id="orge2e7a53">Contact details</h2>
251
-<div class="outline-text-2" id="text-orge2e7a53">
158
+<div id="outline-container-sec-2" class="outline-2">
159
+<h2 id="sec-2">Contact details</h2>
160
+<div class="outline-text-2" id="text-2">
252 161
 <p>
253 162
 This site can also be accessed via a Tor browser at <b><a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a></b>
254 163
 </p>
255 164
 
256 165
 <p>
257
-<b>Email:</b> bob@freedombone.net
166
+<b>Email/XMPP:</b> bob@freedombone.net
258 167
 </p>
259 168
 
260 169
 <p>
261 170
 <b>PGP/GPG Public key:</b>
262 171
 </p>
172
+<div class="org-src-container">
173
+
174
+<pre class="src src-bash">-----BEGIN PGP PUBLIC KEY BLOCK-----
175
+
176
+mDMEWZBueBYJKwYBBAHaRw8BAQdAKx1t6wL0RTuU6/IBjngMbVJJ3Wg/3UW73/PV
177
+I47xKTS0IUJvYiBNb3R0cmFtIDxib2JAZnJlZWRvbWJvbmUubmV0PoiQBBMWCAA4
178
+FiEEmruCwAq/OfgmgEh9zCU2GR+nwz8FAlmQbngCGwMFCwkIBwMFFQoJCAsFFgID
179
+AQACHgECF4AACgkQzCU2GR+nwz/9sAD/YgsHnVszHNz1zlVc5EgY1ByDupiJpHj0
180
+XsLYk3AbNRgBALn45RqgD4eWHpmOriH09H5Rc5V9iN4+OiGUn2AzJ6oHuDgEWZBu
181
+eBIKKwYBBAGXVQEFAQEHQPRBG2ZQJce475S3e0Dxeb0Fz5WdEu2q3GYLo4QG+4Ry
182
+AwEIB4h4BBgWCAAgFiEEmruCwAq/OfgmgEh9zCU2GR+nwz8FAlmQbngCGwwACgkQ
183
+zCU2GR+nwz+OswD+JOoyBku9FzuWoVoOevU2HH+bPOMDgY2OLnST9ZSyHkMBAMcK
184
+fnaZ2Wi050483Sj2RmQRpb99Dod7rVZTDtCqXk0J
185
+=gv5G
186
+-----END PGP PUBLIC KEY BLOCK-----
187
+</pre>
188
+</div>
189
+
263 190
 
264 191
 <div class="figure">
265 192
 <p><img src="images/pubkey.png" alt="pubkey.png" width="60%" align="center" />
@@ -267,7 +194,7 @@ This site can also be accessed via a Tor browser at <b><a href="http://yjxlc3imv
267 194
 </div>
268 195
 
269 196
 <p>
270
-<b>XMPP channel:</b> support@chat.freedombone.net
197
+<b>XMPP channel:</b> support@chat.freedombone.net (Requires membership. Ask via XMPP to <b>bob@freedombone.net</b>)
271 198
 </p>
272 199
 
273 200
 <p>
@@ -280,22 +207,21 @@ This site can also be accessed via a Tor browser at <b><a href="http://yjxlc3imv
280 207
 </div>
281 208
 </div>
282 209
 
283
-<div id="outline-container-org6f7b25d" class="outline-2">
284
-<h2 id="org6f7b25d">Things which would be nice to have</h2>
285
-<div class="outline-text-2" id="text-org6f7b25d">
286
-</div>
287
-<div id="outline-container-orga0bd65e" class="outline-3">
288
-<h3 id="orga0bd65e">Ideas</h3>
289
-<div class="outline-text-3" id="text-orga0bd65e">
210
+<div id="outline-container-sec-3" class="outline-2">
211
+<h2 id="sec-3">Things which would be nice to have</h2>
212
+<div class="outline-text-2" id="text-3">
213
+</div><div id="outline-container-sec-3-1" class="outline-3">
214
+<h3 id="sec-3-1">Ideas</h3>
215
+<div class="outline-text-3" id="text-3-1">
290 216
 <p>
291 217
 Know of some fabulous web system which could run on Freedombone, but currently doesn't? Contact the above, and be prepared to make a compelling argument for why it should be included.
292 218
 </p>
293 219
 </div>
294 220
 </div>
295 221
 
296
-<div id="outline-container-orgc0b3a8b" class="outline-3">
297
-<h3 id="orgc0b3a8b">Money</h3>
298
-<div class="outline-text-3" id="text-orgc0b3a8b">
222
+<div id="outline-container-sec-3-2" class="outline-3">
223
+<h3 id="sec-3-2">Money</h3>
224
+<div class="outline-text-3" id="text-3-2">
299 225
 <p>
300 226
 At the present time this project is not seeking any funding. There is no crowdfunding campaign and no slick marketing video. Those aren't ruled out as future possibilities, but for now they're just not needed.
301 227
 </p>
@@ -306,35 +232,35 @@ If you find this project useful then you may wish to consider donating to <a hre
306 232
 </div>
307 233
 </div>
308 234
 
309
-<div id="outline-container-orgdb6bdb7" class="outline-3">
310
-<h3 id="orgdb6bdb7">Testing and reporting bugs</h3>
311
-<div class="outline-text-3" id="text-orgdb6bdb7">
235
+<div id="outline-container-sec-3-3" class="outline-3">
236
+<h3 id="sec-3-3">Testing and reporting bugs</h3>
237
+<div class="outline-text-3" id="text-3-3">
312 238
 <p>
313 239
 Testing of the install on different hardware. Also pentesting on test installations to find vulnerabilities.
314 240
 </p>
315 241
 </div>
316 242
 </div>
317 243
 
318
-<div id="outline-container-org422b096" class="outline-3">
319
-<h3 id="org422b096">Web design and artwork</h3>
320
-<div class="outline-text-3" id="text-org422b096">
244
+<div id="outline-container-sec-3-4" class="outline-3">
245
+<h3 id="sec-3-4">Web design and artwork</h3>
246
+<div class="outline-text-3" id="text-3-4">
321 247
 <p>
322 248
 A better design for this website would be nice to have. Photos, icons or other artwork are all welcome. I've always liked the cartoon artwork of the <a href="https://www.mediagoblin.org/">Mediagoblin</a> project, and attractive graphics can help to get people initially interested.
323 249
 </p>
324 250
 </div>
325 251
 </div>
326 252
 
327
-<div id="outline-container-orge5eac99" class="outline-3">
328
-<h3 id="orge5eac99">Howto videos</h3>
329
-<div class="outline-text-3" id="text-orge5eac99">
253
+<div id="outline-container-sec-3-5" class="outline-3">
254
+<h3 id="sec-3-5">Howto videos</h3>
255
+<div class="outline-text-3" id="text-3-5">
330 256
 <p>
331 257
 If you're good at making videos then a howto for installing Freedombone onto various types of hardware, or testing the mesh system in realistic/exotic scenarios would be good. You could even host videos on PeerTube or Mediagoblin.
332 258
 </p>
333 259
 </div>
334 260
 </div>
335
-<div id="outline-container-org1f0471f" class="outline-3">
336
-<h3 id="org1f0471f">More education and promotion</h3>
337
-<div class="outline-text-3" id="text-org1f0471f">
261
+<div id="outline-container-sec-3-6" class="outline-3">
262
+<h3 id="sec-3-6">More education and promotion</h3>
263
+<div class="outline-text-3" id="text-3-6">
338 264
 
339 265
 <div class="figure">
340 266
 <p><img src="./images/educate.png" alt="educate.png" width="50%" align="center" />
@@ -351,18 +277,18 @@ Raising awareness beyond the near zero current level, overcoming fear and parano
351 277
 </div>
352 278
 </div>
353 279
 
354
-<div id="outline-container-orgee84413" class="outline-3">
355
-<h3 id="orgee84413">Translations</h3>
356
-<div class="outline-text-3" id="text-orgee84413">
280
+<div id="outline-container-sec-3-7" class="outline-3">
281
+<h3 id="sec-3-7">Translations</h3>
282
+<div class="outline-text-3" id="text-3-7">
357 283
 <p>
358 284
 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>.
359 285
 </p>
360 286
 </div>
361 287
 </div>
362 288
 
363
-<div id="outline-container-orgf7fcec0" class="outline-3">
364
-<h3 id="orgf7fcec0">Packaging</h3>
365
-<div class="outline-text-3" id="text-orgf7fcec0">
289
+<div id="outline-container-sec-3-8" class="outline-3">
290
+<h3 id="sec-3-8">Packaging</h3>
291
+<div class="outline-text-3" id="text-3-8">
366 292
 <p>
367 293
 Helping to package GNU Social and Hubzilla for Debian would be beneficial.
368 294
 </p>