瀏覽代碼

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

Bob Mottram 7 年之前
父節點
當前提交
6bbd1ef5fd
共有 4 個檔案被更改,包括 150 行新增149 行删除
  1. 0
    4
      doc/EN/apps.org
  2. 0
    1
      src/freedombone-app-ghost
  3. 32
    14
      src/freedombone-app-pleroma
  4. 118
    130
      website/EN/apps.html

+ 0
- 4
doc/EN/apps.org 查看文件

132
 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.
132
 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.
133
 
133
 
134
 [[./app_pihole.html][How to use it]]
134
 [[./app_pihole.html][How to use it]]
135
-* Pleroma
136
-Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM.
137
-
138
-[[./app_pleroma.html][How to use it]]
139
 * PostActiv
135
 * PostActiv
140
 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.
136
 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.
141
 
137
 

+ 0
- 1
src/freedombone-app-ghost 查看文件

9
 #                    Freedom in the Cloud
9
 #                    Freedom in the Cloud
10
 #
10
 #
11
 # Ghost blog
11
 # Ghost blog
12
-# Only works with nodejs version ^6.9.0
13
 #
12
 #
14
 # License
13
 # License
15
 # =======
14
 # =======

+ 32
- 14
src/freedombone-app-pleroma 查看文件

11
 # Pleroma backend application
11
 # Pleroma backend application
12
 # https://git.pleroma.social/pleroma/pleroma/wikis/Installing-on-Debian-Based-Distributions
12
 # https://git.pleroma.social/pleroma/pleroma/wikis/Installing-on-Debian-Based-Distributions
13
 #
13
 #
14
+# Show stopper: This is dependent on https://placehold.it for avatar images,
15
+# so at present it's not usable until a first party placeholder image system
16
+# is included.
17
+#
18
+# There is also a possible issue with the chat system which uses an object called
19
+# "Agent" which may not be supported with the version of elixir within the
20
+# Debian package. This only applies if you're installing from the latest commit.
21
+#
14
 # License
22
 # License
15
 # =======
23
 # =======
16
 #
24
 #
17
-# Copyright (C) 2017 Bob Mottram <bob@freedombone.net>
25
+# Copyright (C) 2017-2018 Bob Mottram <bob@freedombone.net>
18
 #
26
 #
19
 # This program is free software: you can redistribute it and/or modify
27
 # This program is free software: you can redistribute it and/or modify
20
 # it under the terms of the GNU Affero General Public License as published by
28
 # it under the terms of the GNU Affero General Public License as published by
29
 # You should have received a copy of the GNU Affero General Public License
37
 # You should have received a copy of the GNU Affero General Public License
30
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
38
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
31
 
39
 
32
-VARIANTS='full full-vim social'
40
+VARIANTS=''
33
 
41
 
34
 IN_DEFAULT_INSTALL=0
42
 IN_DEFAULT_INSTALL=0
35
 SHOW_ON_ABOUT=1
43
 SHOW_ON_ABOUT=1
39
 PLEROMA_PORT=4000
47
 PLEROMA_PORT=4000
40
 PLEROMA_ONION_PORT=8011
48
 PLEROMA_ONION_PORT=8011
41
 PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
49
 PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
42
-PLEROMA_COMMIT='5c09d8d3f199a3f323471f9ba4578371226cd726'
50
+PLEROMA_COMMIT='c1fa1e8844c8eae1ad7638a2d7f9d00e8cd07ce8'
43
 PLEROMA_ADMIN_PASSWORD=
51
 PLEROMA_ADMIN_PASSWORD=
44
 PLEROMA_DIR=/etc/pleroma
52
 PLEROMA_DIR=/etc/pleroma
45
 PLEROMA_SECRET_KEY=""
53
 PLEROMA_SECRET_KEY=""
188
     #${PROJECT_NAME}-pass -u "$curr_username" -a pleroma -p "$new_user_password"
196
     #${PROJECT_NAME}-pass -u "$curr_username" -a pleroma -p "$new_user_password"
189
 }
197
 }
190
 
198
 
199
+function pleroma_create_database_failed {
200
+    run_system_query_postgresql "ALTER USER pleroma NOSUPERUSER;"
201
+    run_system_query_postgresql "ALTER USER pleroma NOCREATEDB;"
202
+}
203
+
191
 function pleroma_create_database {
204
 function pleroma_create_database {
192
     if [ -f $IMAGE_PASSWORD_FILE ]; then
205
     if [ -f $IMAGE_PASSWORD_FILE ]; then
193
         PLEROMA_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
206
         PLEROMA_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
215
     if [ ${#PLEROMA_SECRET_KEY} -lt 64 ]; then
228
     if [ ${#PLEROMA_SECRET_KEY} -lt 64 ]; then
216
         PLEROMA_SECRET_KEY="$(create_password 30)$(create_password 30)$(create_password 30)"
229
         PLEROMA_SECRET_KEY="$(create_password 30)$(create_password 30)$(create_password 30)"
217
         if [ ${#PLEROMA_SECRET_KEY} -lt 64 ]; then
230
         if [ ${#PLEROMA_SECRET_KEY} -lt 64 ]; then
218
-            run_system_query_postgresql "ALTER USER pleroma NOSUPERUSER;"
219
-            run_system_query_postgresql "ALTER USER pleroma NOCREATEDB;"
231
+            pleroma_create_database_failed
220
             echo $'Pleroma secret key not created'
232
             echo $'Pleroma secret key not created'
221
             exit 6782352
233
             exit 6782352
222
         fi
234
         fi
223
         write_config_param "PLEROMA_SECRET_KEY" "$PLEROMA_SECRET_KEY"
235
         write_config_param "PLEROMA_SECRET_KEY" "$PLEROMA_SECRET_KEY"
224
     fi
236
     fi
225
 
237
 
226
-    pleroma_secret=config/dev.secret.exs
227
-    cp config/dev.exs $pleroma_secret
238
+    if [ ! -d $PLEROMA_DIR/config ]; then
239
+        echo $"Missing directory $PLEROMA_DIR/config"
240
+        exit 7835393
241
+    fi
242
+    pleroma_secret=$PLEROMA_DIR/config/dev.secret.exs
243
+    if [ ! -f $PLEROMA_DIR/config/dev.exs ]; then
244
+        echo $"Did not find $PLEROMA_DIR/config/dev.exs"
245
+        exit 78923528
246
+    fi
247
+    cp $PLEROMA_DIR/config/dev.exs $pleroma_secret
228
     sed -i "s|username:.*|username: \"pleroma\",|g" $pleroma_secret
248
     sed -i "s|username:.*|username: \"pleroma\",|g" $pleroma_secret
229
     sed -i "s|password:.*|password: \"$PLEROMA_ADMIN_PASSWORD\",|g" $pleroma_secret
249
     sed -i "s|password:.*|password: \"$PLEROMA_ADMIN_PASSWORD\",|g" $pleroma_secret
230
     sed -i "s|database:.*|database: \"pleroma\",|g" $pleroma_secret
250
     sed -i "s|database:.*|database: \"pleroma\",|g" $pleroma_secret
244
     else
264
     else
245
         sed -i 's|pbkdf2_rounds.*|pbkdf2_rounds, 1|g' $pleroma_secret
265
         sed -i 's|pbkdf2_rounds.*|pbkdf2_rounds, 1|g' $pleroma_secret
246
     fi
266
     fi
267
+    sed -i 's|import_config|# import_config|g' $pleroma_secret
247
 
268
 
248
     cd $PLEROMA_DIR
269
     cd $PLEROMA_DIR
249
-    chown -R pleroma:pleroma *
270
+    chown -R pleroma:pleroma $PLEROMA_DIR/*
250
     sudo -u pleroma mix local.rebar --force
271
     sudo -u pleroma mix local.rebar --force
251
     if [ ! "$?" = "0" ]; then
272
     if [ ! "$?" = "0" ]; then
252
-        run_system_query_postgresql "ALTER USER pleroma NOSUPERUSER;"
253
-        run_system_query_postgresql "ALTER USER pleroma NOCREATEDB;"
273
+        pleroma_create_database_failed
254
         echo $'mix local.rebar failed'
274
         echo $'mix local.rebar failed'
255
         exit 73528562
275
         exit 73528562
256
     fi
276
     fi
259
     systemctl restart postgresql
279
     systemctl restart postgresql
260
     sudo -u pleroma mix ecto.create --force
280
     sudo -u pleroma mix ecto.create --force
261
     if [ ! "$?" = "0" ]; then
281
     if [ ! "$?" = "0" ]; then
262
-        run_system_query_postgresql "ALTER USER pleroma NOSUPERUSER;"
263
-        run_system_query_postgresql "ALTER USER pleroma NOCREATEDB;"
282
+        pleroma_create_database_failed
264
         echo $'mix ecto.create failed'
283
         echo $'mix ecto.create failed'
265
         exit 83653582
284
         exit 83653582
266
     fi
285
     fi
267
     sudo -u pleroma mix ecto.migrate --force
286
     sudo -u pleroma mix ecto.migrate --force
268
     if [ ! "$?" = "0" ]; then
287
     if [ ! "$?" = "0" ]; then
269
-        run_system_query_postgresql "ALTER USER pleroma NOSUPERUSER;"
270
-        run_system_query_postgresql "ALTER USER pleroma NOCREATEDB;"
288
+        pleroma_create_database_failed
271
         echo $'mix ecto.migrate failed'
289
         echo $'mix ecto.migrate failed'
272
         exit 73752573
290
         exit 73752573
273
     fi
291
     fi

+ 118
- 130
website/EN/apps.html 查看文件

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
-<!-- 2018-01-05 Fri 21:25 -->
6
+<!-- 2018-01-10 Wed 14:24 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
265
 </div>
265
 </div>
266
 
266
 
267
 
267
 
268
-<div id="outline-container-orge16af4e" class="outline-2">
269
-<h2 id="orge16af4e">Akaunting</h2>
270
-<div class="outline-text-2" id="text-orge16af4e">
268
+<div id="outline-container-org8e1c6de" class="outline-2">
269
+<h2 id="org8e1c6de">Akaunting</h2>
270
+<div class="outline-text-2" id="text-org8e1c6de">
271
 <p>
271
 <p>
272
 A web based accounts system for small businesses or freelancers.
272
 A web based accounts system for small businesses or freelancers.
273
 </p>
273
 </p>
277
 </p>
277
 </p>
278
 </div>
278
 </div>
279
 </div>
279
 </div>
280
-<div id="outline-container-org6efc751" class="outline-2">
281
-<h2 id="org6efc751">CryptPad</h2>
282
-<div class="outline-text-2" id="text-org6efc751">
280
+<div id="outline-container-org5781982" class="outline-2">
281
+<h2 id="org5781982">CryptPad</h2>
282
+<div class="outline-text-2" id="text-org5781982">
283
 <p>
283
 <p>
284
 Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.
284
 Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.
285
 </p>
285
 </p>
289
 </p>
289
 </p>
290
 </div>
290
 </div>
291
 </div>
291
 </div>
292
-<div id="outline-container-org62f6d93" class="outline-2">
293
-<h2 id="org62f6d93">DLNA</h2>
294
-<div class="outline-text-2" id="text-org62f6d93">
292
+<div id="outline-container-org634d134" class="outline-2">
293
+<h2 id="org634d134">DLNA</h2>
294
+<div class="outline-text-2" id="text-org634d134">
295
 <p>
295
 <p>
296
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
296
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
297
 </p>
297
 </p>
301
 </p>
301
 </p>
302
 </div>
302
 </div>
303
 </div>
303
 </div>
304
-<div id="outline-container-orgf0c5fe6" class="outline-2">
305
-<h2 id="orgf0c5fe6">Dokuwiki</h2>
306
-<div class="outline-text-2" id="text-orgf0c5fe6">
304
+<div id="outline-container-org3ef1ba1" class="outline-2">
305
+<h2 id="org3ef1ba1">Dokuwiki</h2>
306
+<div class="outline-text-2" id="text-org3ef1ba1">
307
 <p>
307
 <p>
308
 A databaseless wiki system.
308
 A databaseless wiki system.
309
 </p>
309
 </p>
313
 </p>
313
 </p>
314
 </div>
314
 </div>
315
 </div>
315
 </div>
316
-<div id="outline-container-org6d033b0" class="outline-2">
317
-<h2 id="org6d033b0">Emacs</h2>
318
-<div class="outline-text-2" id="text-org6d033b0">
316
+<div id="outline-container-orgd8f4217" class="outline-2">
317
+<h2 id="orgd8f4217">Emacs</h2>
318
+<div class="outline-text-2" id="text-orgd8f4217">
319
 <p>
319
 <p>
320
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
320
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
321
 </p>
321
 </p>
325
 </p>
325
 </p>
326
 </div>
326
 </div>
327
 </div>
327
 </div>
328
-<div id="outline-container-orgf1ad90c" class="outline-2">
329
-<h2 id="orgf1ad90c">Etherpad</h2>
330
-<div class="outline-text-2" id="text-orgf1ad90c">
328
+<div id="outline-container-orgf878069" class="outline-2">
329
+<h2 id="orgf878069">Etherpad</h2>
330
+<div class="outline-text-2" id="text-orgf878069">
331
 <p>
331
 <p>
332
 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.
332
 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.
333
 </p>
333
 </p>
337
 </p>
337
 </p>
338
 </div>
338
 </div>
339
 </div>
339
 </div>
340
-<div id="outline-container-orgd1c7a69" class="outline-2">
341
-<h2 id="orgd1c7a69">Federated wiki</h2>
342
-<div class="outline-text-2" id="text-orgd1c7a69">
340
+<div id="outline-container-org9a9c4f3" class="outline-2">
341
+<h2 id="org9a9c4f3">Federated wiki</h2>
342
+<div class="outline-text-2" id="text-org9a9c4f3">
343
 <p>
343
 <p>
344
 A new approach to creating wiki content.
344
 A new approach to creating wiki content.
345
 </p>
345
 </p>
349
 </p>
349
 </p>
350
 </div>
350
 </div>
351
 </div>
351
 </div>
352
-<div id="outline-container-orgdf26871" class="outline-2">
353
-<h2 id="orgdf26871">Friendica</h2>
354
-<div class="outline-text-2" id="text-orgdf26871">
352
+<div id="outline-container-org91b656b" class="outline-2">
353
+<h2 id="org91b656b">Friendica</h2>
354
+<div class="outline-text-2" id="text-org91b656b">
355
 <p>
355
 <p>
356
 Federated social network system.
356
 Federated social network system.
357
 </p>
357
 </p>
361
 </p>
361
 </p>
362
 </div>
362
 </div>
363
 </div>
363
 </div>
364
-<div id="outline-container-org0c18927" class="outline-2">
365
-<h2 id="org0c18927">Ghost</h2>
366
-<div class="outline-text-2" id="text-org0c18927">
364
+<div id="outline-container-org271eb94" class="outline-2">
365
+<h2 id="org271eb94">Ghost</h2>
366
+<div class="outline-text-2" id="text-org271eb94">
367
 <p>
367
 <p>
368
 Modern looking blogging system.
368
 Modern looking blogging system.
369
 </p>
369
 </p>
373
 </p>
373
 </p>
374
 </div>
374
 </div>
375
 </div>
375
 </div>
376
-<div id="outline-container-org6464a0f" class="outline-2">
377
-<h2 id="org6464a0f">GNU Social</h2>
378
-<div class="outline-text-2" id="text-org6464a0f">
376
+<div id="outline-container-orga389f87" class="outline-2">
377
+<h2 id="orga389f87">GNU Social</h2>
378
+<div class="outline-text-2" id="text-orga389f87">
379
 <p>
379
 <p>
380
 Federated social network based on the OStatus protocol. You can "<i>remote follow</i>" other users within the GNU Social federation.
380
 Federated social network based on the OStatus protocol. You can "<i>remote follow</i>" other users within the GNU Social federation.
381
 </p>
381
 </p>
385
 </p>
385
 </p>
386
 </div>
386
 </div>
387
 </div>
387
 </div>
388
-<div id="outline-container-orgc558982" class="outline-2">
389
-<h2 id="orgc558982">Gogs</h2>
390
-<div class="outline-text-2" id="text-orgc558982">
388
+<div id="outline-container-org25dbd8b" class="outline-2">
389
+<h2 id="org25dbd8b">Gogs</h2>
390
+<div class="outline-text-2" id="text-org25dbd8b">
391
 <p>
391
 <p>
392
 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.
392
 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.
393
 </p>
393
 </p>
397
 </p>
397
 </p>
398
 </div>
398
 </div>
399
 </div>
399
 </div>
400
-<div id="outline-container-org6c43921" class="outline-2">
401
-<h2 id="org6c43921">HTMLy</h2>
402
-<div class="outline-text-2" id="text-org6c43921">
400
+<div id="outline-container-orga0d0944" class="outline-2">
401
+<h2 id="orga0d0944">HTMLy</h2>
402
+<div class="outline-text-2" id="text-orga0d0944">
403
 <p>
403
 <p>
404
 Databaseless blogging system. Quite simple and with a markdown-like format.
404
 Databaseless blogging system. Quite simple and with a markdown-like format.
405
 </p>
405
 </p>
409
 </p>
409
 </p>
410
 </div>
410
 </div>
411
 </div>
411
 </div>
412
-<div id="outline-container-org7ac9b48" class="outline-2">
413
-<h2 id="org7ac9b48">Hubzilla</h2>
414
-<div class="outline-text-2" id="text-org7ac9b48">
412
+<div id="outline-container-orgaee8baf" class="outline-2">
413
+<h2 id="orgaee8baf">Hubzilla</h2>
414
+<div class="outline-text-2" id="text-orgaee8baf">
415
 <p>
415
 <p>
416
 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.
416
 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.
417
 </p>
417
 </p>
421
 </p>
421
 </p>
422
 </div>
422
 </div>
423
 </div>
423
 </div>
424
-<div id="outline-container-org7ca0a6c" class="outline-2">
425
-<h2 id="org7ca0a6c">Icecast media stream</h2>
426
-<div class="outline-text-2" id="text-org7ca0a6c">
424
+<div id="outline-container-org96c213d" class="outline-2">
425
+<h2 id="org96c213d">Icecast media stream</h2>
426
+<div class="outline-text-2" id="text-org96c213d">
427
 <p>
427
 <p>
428
 Make your own internet radio station.
428
 Make your own internet radio station.
429
 </p>
429
 </p>
433
 </p>
433
 </p>
434
 </div>
434
 </div>
435
 </div>
435
 </div>
436
-<div id="outline-container-org84ae949" class="outline-2">
437
-<h2 id="org84ae949">IRC Server (ngirc)</h2>
438
-<div class="outline-text-2" id="text-org84ae949">
436
+<div id="outline-container-org1b6fde5" class="outline-2">
437
+<h2 id="org1b6fde5">IRC Server (ngirc)</h2>
438
+<div class="outline-text-2" id="text-org1b6fde5">
439
 <p>
439
 <p>
440
 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.
440
 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.
441
 </p>
441
 </p>
445
 </p>
445
 </p>
446
 </div>
446
 </div>
447
 </div>
447
 </div>
448
-<div id="outline-container-orgf1eff7b" class="outline-2">
449
-<h2 id="orgf1eff7b">Jitsi Meet</h2>
450
-<div class="outline-text-2" id="text-orgf1eff7b">
448
+<div id="outline-container-org96e6f4f" class="outline-2">
449
+<h2 id="org96e6f4f">Jitsi Meet</h2>
450
+<div class="outline-text-2" id="text-org96e6f4f">
451
 <p>
451
 <p>
452
 Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.
452
 Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.
453
 </p>
453
 </p>
454
 </div>
454
 </div>
455
 </div>
455
 </div>
456
 
456
 
457
-<div id="outline-container-org35fd10e" class="outline-2">
458
-<h2 id="org35fd10e">KanBoard</h2>
459
-<div class="outline-text-2" id="text-org35fd10e">
457
+<div id="outline-container-orge07f1f9" class="outline-2">
458
+<h2 id="orge07f1f9">KanBoard</h2>
459
+<div class="outline-text-2" id="text-orge07f1f9">
460
 <p>
460
 <p>
461
 A simple kanban system for managing projects or TODO lists.
461
 A simple kanban system for managing projects or TODO lists.
462
 </p>
462
 </p>
466
 </p>
466
 </p>
467
 </div>
467
 </div>
468
 </div>
468
 </div>
469
-<div id="outline-container-orgce70d61" class="outline-2">
470
-<h2 id="orgce70d61">Key Server</h2>
471
-<div class="outline-text-2" id="text-orgce70d61">
469
+<div id="outline-container-orgd69a78b" class="outline-2">
470
+<h2 id="orgd69a78b">Key Server</h2>
471
+<div class="outline-text-2" id="text-orgd69a78b">
472
 <p>
472
 <p>
473
 An OpenPGP key server for storing and retrieving GPG public keys.
473
 An OpenPGP key server for storing and retrieving GPG public keys.
474
 </p>
474
 </p>
478
 </p>
478
 </p>
479
 </div>
479
 </div>
480
 </div>
480
 </div>
481
-<div id="outline-container-org92af635" class="outline-2">
482
-<h2 id="org92af635">Koel</h2>
483
-<div class="outline-text-2" id="text-org92af635">
481
+<div id="outline-container-org84e4e1c" class="outline-2">
482
+<h2 id="org84e4e1c">Koel</h2>
483
+<div class="outline-text-2" id="text-org84e4e1c">
484
 <p>
484
 <p>
485
 Access your music collection from any internet connected device.
485
 Access your music collection from any internet connected device.
486
 </p>
486
 </p>
490
 </p>
490
 </p>
491
 </div>
491
 </div>
492
 </div>
492
 </div>
493
-<div id="outline-container-org0a8722e" class="outline-2">
494
-<h2 id="org0a8722e">Lychee</h2>
495
-<div class="outline-text-2" id="text-org0a8722e">
493
+<div id="outline-container-org92b57ea" class="outline-2">
494
+<h2 id="org92b57ea">Lychee</h2>
495
+<div class="outline-text-2" id="text-org92b57ea">
496
 <p>
496
 <p>
497
 Make your photo albums available on the web.
497
 Make your photo albums available on the web.
498
 </p>
498
 </p>
502
 </p>
502
 </p>
503
 </div>
503
 </div>
504
 </div>
504
 </div>
505
-<div id="outline-container-orgdda9e48" class="outline-2">
506
-<h2 id="orgdda9e48">Mailpile</h2>
507
-<div class="outline-text-2" id="text-orgdda9e48">
505
+<div id="outline-container-orgeb1cdb7" class="outline-2">
506
+<h2 id="orgeb1cdb7">Mailpile</h2>
507
+<div class="outline-text-2" id="text-orgeb1cdb7">
508
 <p>
508
 <p>
509
 Modern email client which supports GPG encryption.
509
 Modern email client which supports GPG encryption.
510
 </p>
510
 </p>
514
 </p>
514
 </p>
515
 </div>
515
 </div>
516
 </div>
516
 </div>
517
-<div id="outline-container-org0e639e8" class="outline-2">
518
-<h2 id="org0e639e8">Matrix</h2>
519
-<div class="outline-text-2" id="text-org0e639e8">
517
+<div id="outline-container-org48106ac" class="outline-2">
518
+<h2 id="org48106ac">Matrix</h2>
519
+<div class="outline-text-2" id="text-org48106ac">
520
 <p>
520
 <p>
521
 Multi-user chat with some security and moderation controls.
521
 Multi-user chat with some security and moderation controls.
522
 </p>
522
 </p>
526
 </p>
526
 </p>
527
 </div>
527
 </div>
528
 </div>
528
 </div>
529
-<div id="outline-container-org67e6388" class="outline-2">
530
-<h2 id="org67e6388">Mediagoblin</h2>
531
-<div class="outline-text-2" id="text-org67e6388">
529
+<div id="outline-container-orgdb0e51d" class="outline-2">
530
+<h2 id="orgdb0e51d">Mediagoblin</h2>
531
+<div class="outline-text-2" id="text-orgdb0e51d">
532
 <p>
532
 <p>
533
 Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.
533
 Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.
534
 </p>
534
 </p>
538
 </p>
538
 </p>
539
 </div>
539
 </div>
540
 </div>
540
 </div>
541
-<div id="outline-container-org95ad392" class="outline-2">
542
-<h2 id="org95ad392">Mumble</h2>
543
-<div class="outline-text-2" id="text-org95ad392">
541
+<div id="outline-container-org12e0a7d" class="outline-2">
542
+<h2 id="org12e0a7d">Mumble</h2>
543
+<div class="outline-text-2" id="text-org12e0a7d">
544
 <p>
544
 <p>
545
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
545
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
546
 </p>
546
 </p>
550
 </p>
550
 </p>
551
 </div>
551
 </div>
552
 </div>
552
 </div>
553
-<div id="outline-container-org83f8149" class="outline-2">
554
-<h2 id="org83f8149">NextCloud</h2>
555
-<div class="outline-text-2" id="text-org83f8149">
553
+<div id="outline-container-org6d141d2" class="outline-2">
554
+<h2 id="org6d141d2">NextCloud</h2>
555
+<div class="outline-text-2" id="text-org6d141d2">
556
 <p>
556
 <p>
557
 Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.
557
 Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.
558
 </p>
558
 </p>
562
 </p>
562
 </p>
563
 </div>
563
 </div>
564
 </div>
564
 </div>
565
-<div id="outline-container-org34376ed" class="outline-2">
566
-<h2 id="org34376ed">PeerTube</h2>
567
-<div class="outline-text-2" id="text-org34376ed">
565
+<div id="outline-container-orgfbcc2bd" class="outline-2">
566
+<h2 id="orgfbcc2bd">PeerTube</h2>
567
+<div class="outline-text-2" id="text-orgfbcc2bd">
568
 <p>
568
 <p>
569
 Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better enables the streaming load to be shared across servers.
569
 Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better enables the streaming load to be shared across servers.
570
 </p>
570
 </p>
574
 </p>
574
 </p>
575
 </div>
575
 </div>
576
 </div>
576
 </div>
577
-<div id="outline-container-org5f60689" class="outline-2">
578
-<h2 id="org5f60689">PI-Hole</h2>
579
-<div class="outline-text-2" id="text-org5f60689">
577
+<div id="outline-container-org460d63a" class="outline-2">
578
+<h2 id="org460d63a">PI-Hole</h2>
579
+<div class="outline-text-2" id="text-org460d63a">
580
 <p>
580
 <p>
581
 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.
581
 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.
582
 </p>
582
 </p>
586
 </p>
586
 </p>
587
 </div>
587
 </div>
588
 </div>
588
 </div>
589
-<div id="outline-container-org701c17b" class="outline-2">
590
-<h2 id="org701c17b">Pleroma</h2>
591
-<div class="outline-text-2" id="text-org701c17b">
592
-<p>
593
-Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM.
594
-</p>
595
-
596
-<p>
597
-<a href="./app_pleroma.html">How to use it</a>
598
-</p>
599
-</div>
600
-</div>
601
-<div id="outline-container-org1b0cb48" class="outline-2">
602
-<h2 id="org1b0cb48">PostActiv</h2>
603
-<div class="outline-text-2" id="text-org1b0cb48">
589
+<div id="outline-container-org65deb16" class="outline-2">
590
+<h2 id="org65deb16">PostActiv</h2>
591
+<div class="outline-text-2" id="text-org65deb16">
604
 <p>
592
 <p>
605
 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.
593
 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.
606
 </p>
594
 </p>
610
 </p>
598
 </p>
611
 </div>
599
 </div>
612
 </div>
600
 </div>
613
-<div id="outline-container-org160c5ab" class="outline-2">
614
-<h2 id="org160c5ab">Profanity</h2>
615
-<div class="outline-text-2" id="text-org160c5ab">
601
+<div id="outline-container-org8852da5" class="outline-2">
602
+<h2 id="org8852da5">Profanity</h2>
603
+<div class="outline-text-2" id="text-org8852da5">
616
 <p>
604
 <p>
617
 A shell based XMPP client which you can run on the Freedombone server via ssh.
605
 A shell based XMPP client which you can run on the Freedombone server via ssh.
618
 </p>
606
 </p>
622
 </p>
610
 </p>
623
 </div>
611
 </div>
624
 </div>
612
 </div>
625
-<div id="outline-container-org9d02ce0" class="outline-2">
626
-<h2 id="org9d02ce0">Riot Web</h2>
627
-<div class="outline-text-2" id="text-org9d02ce0">
613
+<div id="outline-container-org262f5c6" class="outline-2">
614
+<h2 id="org262f5c6">Riot Web</h2>
615
+<div class="outline-text-2" id="text-org262f5c6">
628
 <p>
616
 <p>
629
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
617
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
630
 </p>
618
 </p>
634
 </p>
622
 </p>
635
 </div>
623
 </div>
636
 </div>
624
 </div>
637
-<div id="outline-container-org737de9a" class="outline-2">
638
-<h2 id="org737de9a">SearX</h2>
639
-<div class="outline-text-2" id="text-org737de9a">
625
+<div id="outline-container-org5c685c7" class="outline-2">
626
+<h2 id="org5c685c7">SearX</h2>
627
+<div class="outline-text-2" id="text-org5c685c7">
640
 <p>
628
 <p>
641
 A metasearch engine for customised and private web searches.
629
 A metasearch engine for customised and private web searches.
642
 </p>
630
 </p>
646
 </p>
634
 </p>
647
 </div>
635
 </div>
648
 </div>
636
 </div>
649
-<div id="outline-container-org13d4ded" class="outline-2">
650
-<h2 id="org13d4ded">tt-rss</h2>
651
-<div class="outline-text-2" id="text-org13d4ded">
637
+<div id="outline-container-org609aeef" class="outline-2">
638
+<h2 id="org609aeef">tt-rss</h2>
639
+<div class="outline-text-2" id="text-org609aeef">
652
 <p>
640
 <p>
653
 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.
641
 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.
654
 </p>
642
 </p>
658
 </p>
646
 </p>
659
 </div>
647
 </div>
660
 </div>
648
 </div>
661
-<div id="outline-container-org7dfad5f" class="outline-2">
662
-<h2 id="org7dfad5f">Syncthing</h2>
663
-<div class="outline-text-2" id="text-org7dfad5f">
649
+<div id="outline-container-orgf0d4a79" class="outline-2">
650
+<h2 id="orgf0d4a79">Syncthing</h2>
651
+<div class="outline-text-2" id="text-orgf0d4a79">
664
 <p>
652
 <p>
665
 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.
653
 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.
666
 </p>
654
 </p>
670
 </p>
658
 </p>
671
 </div>
659
 </div>
672
 </div>
660
 </div>
673
-<div id="outline-container-org1f099ea" class="outline-2">
674
-<h2 id="org1f099ea">Tahoe-LAFS</h2>
675
-<div class="outline-text-2" id="text-org1f099ea">
661
+<div id="outline-container-org91cbbcf" class="outline-2">
662
+<h2 id="org91cbbcf">Tahoe-LAFS</h2>
663
+<div class="outline-text-2" id="text-org91cbbcf">
676
 <p>
664
 <p>
677
 Robust and encrypted storage of files on one or more server.
665
 Robust and encrypted storage of files on one or more server.
678
 </p>
666
 </p>
682
 </p>
670
 </p>
683
 </div>
671
 </div>
684
 </div>
672
 </div>
685
-<div id="outline-container-org9b9d283" class="outline-2">
686
-<h2 id="org9b9d283">Tox</h2>
687
-<div class="outline-text-2" id="text-org9b9d283">
673
+<div id="outline-container-orgf95d31b" class="outline-2">
674
+<h2 id="orgf95d31b">Tox</h2>
675
+<div class="outline-text-2" id="text-orgf95d31b">
688
 <p>
676
 <p>
689
 Client and bootstrap node for the Tox chat/VoIP system.
677
 Client and bootstrap node for the Tox chat/VoIP system.
690
 </p>
678
 </p>
694
 </p>
682
 </p>
695
 </div>
683
 </div>
696
 </div>
684
 </div>
697
-<div id="outline-container-org85e51e9" class="outline-2">
698
-<h2 id="org85e51e9">Turtl</h2>
699
-<div class="outline-text-2" id="text-org85e51e9">
685
+<div id="outline-container-org20594a2" class="outline-2">
686
+<h2 id="org20594a2">Turtl</h2>
687
+<div class="outline-text-2" id="text-org20594a2">
700
 <p>
688
 <p>
701
 A system for privately creating and sharing notes and images, similar to Evernote but without the spying.
689
 A system for privately creating and sharing notes and images, similar to Evernote but without the spying.
702
 </p>
690
 </p>
706
 </p>
694
 </p>
707
 </div>
695
 </div>
708
 </div>
696
 </div>
709
-<div id="outline-container-orgb589515" class="outline-2">
710
-<h2 id="orgb589515">Vim</h2>
711
-<div class="outline-text-2" id="text-orgb589515">
697
+<div id="outline-container-orga4d94aa" class="outline-2">
698
+<h2 id="orga4d94aa">Vim</h2>
699
+<div class="outline-text-2" id="text-orga4d94aa">
712
 <p>
700
 <p>
713
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
701
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
714
 </p>
702
 </p>
715
 </div>
703
 </div>
716
 </div>
704
 </div>
717
 
705
 
718
-<div id="outline-container-org5ba4463" class="outline-2">
719
-<h2 id="org5ba4463">Virtual Private Network (VPN)</h2>
720
-<div class="outline-text-2" id="text-org5ba4463">
706
+<div id="outline-container-org83399c4" class="outline-2">
707
+<h2 id="org83399c4">Virtual Private Network (VPN)</h2>
708
+<div class="outline-text-2" id="text-org83399c4">
721
 <p>
709
 <p>
722
 Set up a VPN on your server so that you can bypass local internet censorship.
710
 Set up a VPN on your server so that you can bypass local internet censorship.
723
 </p>
711
 </p>
727
 </p>
715
 </p>
728
 </div>
716
 </div>
729
 </div>
717
 </div>
730
-<div id="outline-container-org4198c39" class="outline-2">
731
-<h2 id="org4198c39">XMPP</h2>
732
-<div class="outline-text-2" id="text-org4198c39">
718
+<div id="outline-container-org409bdd6" class="outline-2">
719
+<h2 id="org409bdd6">XMPP</h2>
720
+<div class="outline-text-2" id="text-org409bdd6">
733
 <p>
721
 <p>
734
 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.
722
 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.
735
 </p>
723
 </p>