Przeglądaj źródła

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

Bob Mottram 7 lat temu
rodzic
commit
899f34805a

+ 6
- 0
doc/EN/app_pleroma.org Wyświetl plik

@@ -49,6 +49,12 @@ If you prefer a Tweetdeck-style user interface, similar to Mastodon, then once y
49 49
 [[file:images/pleromamastodon.jpg]]
50 50
 #+END_CENTER
51 51
 
52
+* Mobile apps
53
+It's also possible to use Mastodon apps together with Pleroma, such as Tusky, since it supports the Mastodon API. You may need to install *IcecatMobile* and set it as your default browser (under *Settings/Apps/Menu*) in order for the initial oauth registration process to work.
54
+
55
+#+BEGIN_CENTER
56
+[[file:images/tusky.jpg]]
57
+#+END_CENTER
52 58
 * Blocking controls
53 59
 #+BEGIN_CENTER
54 60
 [[file:images/controlpanel/control_panel_blocking.jpg]]

+ 2
- 4
doc/EN/apps.org Wyświetl plik

@@ -10,10 +10,6 @@
10 10
 [[file:images/logo.png]]
11 11
 #+END_CENTER
12 12
 
13
-#+begin_export html
14
-<center><h1>Apps</h1></center>
15
-#+end_export
16
-
17 13
 #+begin_quote
18 14
 "/In times of aggressive corporatization, increasing enclosure of communication spaces, and blanket surveillance, emancipatory communication practices appear to be particularly well suited to offer concrete alternatives to activists and citizens alike/" -- Stefania Milan
19 15
 #+end_quote
@@ -53,6 +49,8 @@ Extremely simple and distraction-free notes system.
53 49
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
54 50
 
55 51
 [[./app_emacs.html][How to use it]]
52
+* Email Server
53
+Since many apps require email registration an email server is installed by default. You can find advice on using the email system [[./usage_email.html][here]].
56 54
 * Etherpad
57 55
 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.
58 56
 

+ 7
- 7
doc/EN/fediverse.org Wyświetl plik

@@ -10,16 +10,14 @@
10 10
 [[file:images/logo.png]]
11 11
 #+END_CENTER
12 12
 
13
-#+BEGIN_EXPORT html
14
-<center>
15
-<h1>Homesteading the Fediverse</h1>
16
-</center>
17
-#+END_EXPORT
13
+#+BEGIN_CENTER
14
+*Homesteading the Fediverse*
15
+#+END_CENTER
18 16
 
19 17
 Some things you might want to know about the Fediverse:
20 18
 
21 19
 * Federation as a concept
22
-The political definition of a federation is "/a union of partially self-governing states or regions under a central (federal) government/". The fediverse isn't exactly like that, in that there is no federal government. However there are protocols which govern the communication between instances and that might be analogized to being a sort of elemantary constitution or mutual agreement binding all participants together. The protocols are merely ways of moving data around though, and don't impose any sort of moral code.
20
+The political definition of a federation is "/a union of partially self-governing states or regions under a central (federal) government/". The fediverse isn't exactly like that, in that there is no federal government. However there are protocols which govern the communication between instances and that might be analogized to being a sort of elementary constitution or mutual agreement binding all participants together. The protocols are merely ways of moving data around though, and don't impose any sort of moral code.
23 21
 * Keep the number of users on each server small
24 22
 The importance of this can't be overstated. Servers with lots of users always eventually have problems where the interests of the users are not the same as the interests of the server administrator. If you are the server administrator, or if there are only a small squad-size group of people on the server, then it's a lot easier to resolve differences and everyone's interests are likely to be similar.
25 23
 
@@ -33,7 +31,9 @@ Especially if other servers are publishing content which may not be legal in you
33 31
 Over time follows and blocking rules come to match the underlying social geography of affinity groups. Blocking will happen and users will move around or start new servers. Drama related to blocking will dissipate.
34 32
 
35 33
 * Keep your follows under the Dunbar number
36
-Keep the number of other users you're following and who are also active to under a couple of hundred. Any more than that and you'll just be overwhelmed by irrelevant stuff and whatever community you may have been part of will dissolve in a sea of entropy. There are no algorithmic timelines, and even if they're introduced then they create their own problems as an opaque form of censorship. _Real community happens at tribal scale_. It's something which people often don't like to admit because they get fixated upon bigger and bigger numbers, but it definitely seems to be true.
34
+Keep the number of other frequently active users you're following to under a couple of hundred. Your actual number of follows might be larger than this but could include users who rarely post anything.
35
+
36
+Once there are more than a couple of hundred highly active users in your timeline then you'll just be overwhelmed by irrelevant stuff and whatever community you may have been part of will be drowned in the entropy. There are no algorithmic timelines to hide posts, and even if they're introduced then they create their own problems as an opaque form of censorship. _Real community happens at tribal scale_. It's something which people often don't like to admit because they get fixated upon bigger and bigger numbers, but it definitely seems to be true.
37 37
 
38 38
 * Avoid big public servers
39 39
 It may seem like a good idea and it may seem like you're doing a service to the community by allowing random strangers to register, but servers with thousands of users only cause problems - social, administrative, financial and possibly also legal. The financial strain of running a powerful server with high reliability may be enough to encourage the administrator to begin pushing advertising onto the system, or sell user content, and then before you know it you have identical problems to Twitter. Instead try to encourage people to set up their own servers. Follow this principle and a lot of arguments and stress will be more easily avoided.

+ 10
- 9
doc/EN/index.org Wyświetl plik

@@ -19,25 +19,26 @@
19 19
 
20 20
 So you want to run your own internet services? Email, chat, VoIP, web sites, file synchronisation, wikis, blogs, social networks, media hosting, backups, VPN. Freedombone enables you to do all of that in a self-hosted way, where you keep control of your data and it resides in your own home.
21 21
 
22
-[[./homeserver.html][Here's how]].
22
+A list of other supported ARM boards [[./boards.html][can be found here]], or you can install onto an old laptop or netbook. Some installation instructions for different use cases are:
23 23
 
24
-And here's how [[./beaglebone.html][on a Beaglebone Black]]. A list of other supported ARM boards [[./boards.html][can be found here]].
25
-
26
-Or you can install [[./debianinstall.html][onto an existing Debian system]].
27
-
28
-If you have a single board ARM computer which isn't one of the officially supported ones, such as Raspberry Pi, then you may still be able to install [[./armbian.html][Freedombone with Armbian]].
29
-
30
-Want to make a community mesh network which can either be fully autonomous or connected to the internet? The [[./mesh.html][Freedombone Mesh]] is a wireless solution for networked communication that can be rapidly deployed in temporary, emergency or post-disaster situations where internet access is unavailable or compromised, or used as an infrastructural community service similar to [[https://en.wikipedia.org/wiki/Freifunk][Freifunk]].
24
+ * [[./homeserver.html][Typical installation]]
25
+ * Installing [[./beaglebone.html][on a Beaglebone Black]]
26
+ * Installing on an [[./debianinstall.html][existing Debian system]]
27
+ * Installing [[./armbian.html][on Armbian]], for unsupported ARM boards such as Raspberry Pi
28
+ * Creating a dedicated [[./socialinstance.html][fediverse instance]] for a single user or to host a community
29
+ * Deploying a [[./mesh.html][mesh network]] which can operate with or without the internet
31 30
 
32 31
 After installation it's possible that you might want some advice on how to run your system and set up apps to work nicely with it.
33 32
 
34 33
  * [[./domains.html][How to get a domain name]]
34
+ * [[./security.html][Improving security]]
35
+ * [[./users.html][Adding or removing users]]
35 36
  * [[./apps.html][Apps available on the system]]
36
- * [[./usage.html][General usage]]
37 37
  * [[./faq.html][Frequently Asked Questions]]
38 38
  * [[./mobile.html][Advice on setting up a mobile phone]]
39 39
  * [[./support.html][I like this project. How can I help to support it?]]
40 40
 
41
+
41 42
 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*.
42 43
 
43 44
 Ready made disk images which can be copied onto USB or microSD drives are [[./downloads/current][available here]].

+ 48
- 0
doc/EN/security.org Wyświetl plik

@@ -0,0 +1,48 @@
1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@freedombone.net
4
+#+KEYWORDS: freedombone, security, ssh, debian, beaglebone
5
+#+DESCRIPTION: Improving security
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+BEGIN_CENTER
10
+[[file:images/logo.png]]
11
+#+END_CENTER
12
+
13
+* Authentication with keys
14
+It's a lot more secure to log in to the Freedombone system using ssh keys rather than with a password. You can set that up by first running:
15
+
16
+#+begin_src bash
17
+freedombone-client
18
+#+end_src
19
+
20
+On your local system (i.e. whatever you're logging in to the Freedombone system from, typically a laptop). Then:
21
+
22
+#+begin_src
23
+ssh myusername@freedombone.local -p 2222
24
+#+end_src
25
+
26
+Select *Administrator controls* and re-enter your password, then *Manage Users* and *Change user ssh public key*. Copy and paste the ssh public keys which appeared after the *freedombone-client* command was run. Then go to *Security settings* and select *Allow ssh login with passwords* followed by *no*.
27
+
28
+You'll need to make sure that you have a copy of the ~/.ssh directory on your local system. You could just copy that directory to a USB drive and then keep that somewhere safe so that you can restore the keys if you need to.
29
+* Administrating the system via an onion address (Tor)
30
+You can also access your system via the Tor system using an onion address. To find out what the onion address for ssh access is you can do the following:
31
+
32
+#+BEGIN_SRC bash
33
+ssh username@freedombone.local -p 2222
34
+#+END_SRC
35
+
36
+Select /Administrator controls/ then select "About this system" and look for the onion address for ssh. You can then close the terminal and open another, then do the following on your local system:
37
+
38
+#+BEGIN_SRC bash
39
+freedombone-client
40
+#+END_SRC
41
+
42
+This will set up your ssh environment to be able to handle onion addresses. Then you can test ssh with:
43
+
44
+#+BEGIN_SRC bash
45
+ssh username@address.onion -p 2222
46
+#+END_SRC
47
+
48
+Subsequently even if dynamic DNS isn't working you may still be able to administer your system. Using the onion address also gives you some degree of protection against corporate or government metadata analysis, since it becomes more difficult to passively detect which systems are communicating.

+ 93
- 0
doc/EN/socialinstance.org Wyświetl plik

@@ -0,0 +1,93 @@
1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@freedombone.net
4
+#+KEYWORDS: freedombone, debian, social, fediverse, instance, pleroma, gnusocial, postactiv
5
+#+DESCRIPTION: Social Instance
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+BEGIN_CENTER
10
+[[file:images/logo.png]]
11
+#+END_CENTER
12
+
13
+#+BEGIN_EXPORT html
14
+<center>
15
+<h1>Social Instance</h1>
16
+</center>
17
+#+END_EXPORT
18
+
19
+A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
20
+
21
+ * An old laptop, capable of booting from USB
22
+ * A USB drive, preferably Sandisk and 16GB or larger
23
+ * An ethernet patch cable
24
+ * A domain name of your own
25
+ * A dynamic DNS account
26
+
27
+The installation process is the same as usual, with the only difference being that on initial setup it will go straight to the domain setup details for your instance. In summary:
28
+
29
+* Copy the image to the USB drive
30
+
31
+Substitute *sdX* with the device name for your USB drive.
32
+
33
+#+begin_src bash
34
+sudo apt-get install xz-utils wget
35
+wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz
36
+wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz.sig
37
+gpg --verify freedombone-pleroma-amd64.img.xz.sig
38
+unxz freedombone-pleroma-amd64.img.xz
39
+sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
40
+sudo dd bs=1M if=freedombone-pleroma-amd64.img of=/dev/sdX conv=fdatasync
41
+#+end_src
42
+
43
+Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.
44
+
45
+* Connect the laptop to your internet router
46
+
47
+Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
48
+
49
+#+BEGIN_CENTER
50
+[[file:images/laptop_router.jpg]]
51
+#+END_CENTER
52
+
53
+* Boot the laptop from the USB drive
54
+
55
+You may need to alter the BIOS settings to get this to work reliably.
56
+
57
+#+BEGIN_CENTER
58
+[[file:images/bios_boot_usb.jpg]]
59
+#+END_CENTER
60
+
61
+* Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop
62
+
63
+Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
64
+
65
+#+BEGIN_CENTER
66
+[[file:images/port_forwarding.png]]
67
+#+END_CENTER
68
+
69
+* From another machine ssh into the laptop
70
+
71
+#+begin_src bash
72
+ssh fbone@freedombone.local -p 2222
73
+#+END_SRC
74
+
75
+Or alternatively you can log in directly on the laptop. The initial username is *fbone* and the password is *freedombone*. You should make sure you write down or copy the new password when it is shown.
76
+
77
+* Follow the setup procedure
78
+
79
+Enter your user details, domain name and dynamic DNS settings.
80
+
81
+* When installation is complete
82
+
83
+Navigate to your domain and register a new user.
84
+
85
+#+BEGIN_CENTER
86
+[[file:images/pleroma_register.jpg]]
87
+#+END_CENTER
88
+
89
+More details about setting up and using Pleroma [[./app_pleroma.html][can be found here]].
90
+
91
+#+BEGIN_CENTER
92
+[[file:images/tusky.jpg]]
93
+#+END_CENTER

+ 7
- 251
doc/EN/usage_email.org Wyświetl plik

@@ -10,23 +10,17 @@
10 10
 [[file:images/logo.png]]
11 11
 #+END_CENTER
12 12
 
13
-#+BEGIN_EXPORT html
14
-<center>
15
-<h1>Email</h1>
16
-</center>
17
-#+END_EXPORT
18
-
19 13
 | [[Things to be aware of]]                           |
20 14
 | [[A technical note about email transport security]] |
21 15
 | [[Add a password to your GPG key]]                  |
22 16
 | [[Publishing your GPG public key]]                  |
23 17
 | [[Mutt email client]]                               |
24 18
 | [[Thunderbird/Icedove]]                             |
25
-| [[K9 Android client]]                               |
19
+| [[Android apps]]                                    |
26 20
 | [[Subscribing to mailing lists]]                    |
27 21
 | [[Adding email addresses to a group/folder]]        |
28 22
 | [[Ignoring incoming emails]]                        |
29
-| [[Your own mailing list]]                           |
23
+| [[Using I2P for email transport]]                   |
30 24
 
31 25
 * Things to be aware of
32 26
 Even though this system makes it easy to set up an email server, running your own email system is still not easy and this is mainly due to the huge amount of collatoral damage caused by spammers over a long period of time, which in turn is due to the inherent insecurity of email protocols which enabled spam to become a big problem. Email is still very popular though and most internet services require that you have an email address in order to register.
@@ -40,7 +34,7 @@ Port 465 is used for SMTP and this is supposedly deprecated for secure email. Ho
40 34
 From https://motherboard.vice.com/read/email-encryption-is-broken:
41 35
 
42 36
 #+BEGIN_QUOTE
43
-The researchers also uncovered mass scale attacks of STARTTLS sessions being stripped of their encryption. That attack itself isn't new: internet service providers sometimes do it to monitor users; organizations may use it to keep an eye on employees; or it may come from a malicious actor
37
+/The researchers also uncovered mass scale attacks of STARTTLS sessions being stripped of their encryption. That attack itself isn't new: internet service providers sometimes do it to monitor users; organizations may use it to keep an eye on employees; or it may come from a malicious actor/
44 38
 #+END_QUOTE
45 39
 * Add a password to your GPG key
46 40
 If you didn't use existing GPG keys during the Freedombone installation then you'll need to add a password to your newly generated private key. This is highly recommended. Go through the following sequence of commands to ssh into the Freedombone and then change your GPG password.
@@ -202,232 +196,8 @@ By default you won't be able to see any folders which you may have created earli
202 196
 
203 197
 Make sure that "*show only subscribed folders*" is not checked.  Then click the *ok* buttons.  Folders will be re-scanned, which may take some time depending upon how much email you have, but your folders will then appear.
204 198
 
205
-* K9 Android client
206
-*** A point about GPG on Android
207
-Before trying to set up email on Android you may want to consider whether you really need to do this. Android (and its variants) is not a particularly secure operating system and whether or not you wish to store GPG keys on it depends on your threat model and in what situations you'll be using your device.
208
-
209
-If you are going to use email on an Android device then ensure that you have full encryption enabled via the security settings, so that if you subsequently lose it, or if it gets stolen, the chances of encryption keys being exposed are minimised.
210
-*** Compiling the development version
211
-To get K9 working with Freedombone you'll need to install development versions of OpenKeychain and K9. At the time of writing the versions available in F-Droid do not support PGP/MIME or the "hidden recipient" feature of GPG. It is hoped that at some stage the patches will be integrated into the mainline or functionally equivalent changes made. Admittedly, this is not at all user friendly, but currently it's the only way to read Freedombone email on Android systems.
212
-
213
-Build script for OpenKeychain:
214
-
215
-#+BEGIN_SRC bash
216
-mkdir ~/develop
217
-cd ~/develop
218
-git clone https://github.com/bashrc/open-keychain
219
-cd open-keychain
220
-git checkout origin/bashrc/hidden-recipient-minimal
221
-git checkout -b bashrc/hidden-recipient-minimal
222
-cd tools
223
-nano build.sh
224
-#+END_SRC
225
-
226
-Then add the following:
227
-
228
-#+BEGIN_SRC bash
229
-#!/bin/bash
230
-
231
-# This script is intended to be used on Debian systems for building
232
-# the project. It has been tested with Debian 8
233
-
234
-USERNAME=$USER
235
-SIGNING_NAME='openkeychain'
236
-SDK_VERSION='r23.3.4'
237
-SDK_DIR=$HOME/android-sdk
238
-
239
-cd ..
240
-
241
-PROJECT_HOME=$(pwd)
242
-
243
-sudo apt-get install build-essential default-jdk \
244
-     lib32stdc++6 lib32z1 lib32z1-dev
245
-
246
-if [ ! -d $SDK_DIR ]; then
247
-    mkdir -p $SDK_DIR
248
-fi
249
-cd $SDK_DIR
250
-
251
-# download the SDK
252
-if [[ ! -f $SDK_DIR/android-sdk_$SDK_VERSION-linux.tgz ]]; then
253
-    wget https://dl.google.com/android/android-sdk_$SDK_VERSION-linux.tgz
254
-fi
255
-tar -xzvf android-sdk_$SDK_VERSION-linux.tgz
256
-SDK_DIR=$SDK_DIR/android-sdk-linux
257
-
258
-echo 'Check that you have the SDK tools installed for Android 22, SDK 21.1.2'
259
-
260
-export ANDROID_HOME=$SDK_DIR
261
-echo "sdk.dir=$SDK_DIR" > $ANDROID_HOME/local.properties
262
-export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
263
-
264
-cd $SDK_DIR/tools
265
-./android sdk
266
-
267
-if [ ! -f $SDK_DIR/tools/android ]; then
268
-    echo "$SDK_DIR/tools/android not found"
269
-    exit -1
270
-fi
271
-cd $SDK_DIR
272
-chmod -R 0755 $SDK_DIR
273
-chmod a+rx $SDK_DIR/tools
274
-
275
-# android sdk
276
-cd $PROJECT_HOME
277
-git submodule init && git submodule update
278
-
279
-if [ ! -f $SDK_DIR/tools/templates/gradle/wrapper/gradlew ]; then
280
-    echo "$SDK_DIR/tools/templates/gradle/wrapper/gradlew not found"
281
-    exit -2
282
-fi
283
-. $PROJECT_HOME/gradlew assembleDebug
284
-
285
-# cleaning up
286
-cd $PROJECT_HOME/OpenKeychain/build/outputs/apk
287
-if [ ! -f OpenKeychain-debug.apk ]; then
288
-    echo 'OpenKeychain-debug.apk was not found'
289
-    exit -3
290
-fi
291
-
292
-echo 'Build script ended successfully'
293
-echo -n 'apk is available at: '
294
-echo "$PROJECT_HOME/OpenKeychain/build/outputs/apk/OpenKeychain-debug.apk"
295
-exit 0
296
-#+END_SRC
297
-
298
-Save and exit with *CTRL-o*, *CTRL-x*.
299
-
300
-#+BEGIN_SRC bash
301
-chmod +x build.sh
302
-./build.sh
303
-#+END_SRC
304
-
305
-Build script for K9:
306
-
307
-#+BEGIN_SRC bash
308
-cd ~/develop
309
-git clone https://github.com/k9mail/k-9
310
-cd k-9
311
-cd tools
312
-nano build.sh
313
-#+END_SRC
314
-
315
-Then add the following:
316
-
317
-#+BEGIN_SRC bash
318
-#!/bin/bash
319
-
320
-# This script is intended to be used on Debian systems for building
321
-# the project. It has been tested with Debian 8
322
-
323
-USERNAME=$USER
324
-SIGNING_NAME='k-9'
325
-SDK_VERSION='r24.3.3'
326
-SDK_DIR=$HOME/android-sdk
327
-
328
-cd ..
329
-
330
-PROJECT_HOME=$(pwd)
331
-
332
-sudo apt-get install build-essential default-jdk \
333
-     lib32stdc++6 lib32z1 lib32z1-dev
334
-
335
-if [ ! -d $SDK_DIR ]; then
336
-    mkdir -p $SDK_DIR
337
-fi
338
-cd $SDK_DIR
339
-
340
-# download the SDK
341
-if [ ! -f $SDK_DIR/android-sdk_$SDK_VERSION-linux.tgz ]; then
342
-    wget https://dl.google.com/android/android-sdk_$SDK_VERSION-linux.tgz
343
-    tar -xzvf android-sdk_$SDK_VERSION-linux.tgz
344
-fi
345
-SDK_DIR=$SDK_DIR/android-sdk-linux
346
-
347
-echo 'Check that you have the SDK tools installed for Android 17, SDK 19.1'
348
-if [ ! -f $SDK_DIR/tools/android ]; then
349
-    echo "$SDK_DIR/tools/android not found"
350
-    exit -1
351
-fi
352
-cd $SDK_DIR
353
-chmod -R 0755 $SDK_DIR
354
-chmod a+rx $SDK_DIR/tools
355
-
356
-ANDROID_HOME=$SDK_DIR
357
-echo "sdk.dir=$SDK_DIR" > $ANDROID_HOME/local.properties
358
-PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
359
-
360
-android sdk
361
-cd $PROJECT_HOME
362
-
363
-if [ ! -f $SDK_DIR/tools/templates/gradle/wrapper/gradlew ]; then
364
-    echo "$SDK_DIR/tools/templates/gradle/wrapper/gradlew not found"
365
-    exit -2
366
-fi
367
-. $PROJECT_HOME/gradlew assembleDebug
368
-
369
-# cleaning up
370
-cd $PROJECT_HOME/k9mail/build/outputs/apk
371
-if [ ! -f k9mail-debug.apk ]; then
372
-    echo 'k9mail-debug.apk was not found'
373
-    exit -3
374
-fi
375
-echo 'Build script ended successfully'
376
-echo -n 'apk is available at: '
377
-echo "$PROJECT_HOME/k9mail/build/outputs/apk/k9mail-debug.apk"
378
-exit 0
379
-#+END_SRC
380
-
381
-Save and exit with *CTRL-o*, *CTRL-x*.
382
-
383
-#+BEGIN_SRC bash
384
-chmod +x build.sh
385
-./build.sh
386
-#+END_SRC
387
-
388
-*** Import your GPG key into OpenKeychain
389
-With your device connected to a laptop via USB cable and with USB debugging enabled on it:
390
-
391
-#+BEGIN_SRC bash
392
-ssh username@domainname -p 2222
393
-gpg --list-keys username@domainname
394
-gpg --output ~/public_key.gpg --armor --export KEY_ID
395
-gpg --output ~/private_key.gpg --armor --export-secret-key KEY_ID
396
-cat ~/public_key.gpg ~/private_key.gpg > ~/mygpgkey.asc
397
-exit
398
-scp -P 2222 username@domainname:/home/username/mygpgkey.asc ~/
399
-sudo apt-get install android-tools-adb
400
-push ~/mygpgkey.asc /sdcard/
401
-shred -zu ~/mygpgkey.asc
402
-#+END_SRC
403
-
404
-Then on your device select OpenKeychain and import your key from file.
405
-*** Incoming server settings
406
- * Select settings/account settings
407
- * Select Fetching mail/incoming server
408
- * Enter your username and password
409
- * IMAP server should be your domain name
410
- * Security: SSL/TLS (always)
411
- * Authentication: Plain
412
- * Port: 993
413
-*** Outgoing (SMTP) server settings
414
- * Select settings/account settings
415
- * Select Sending mail/outgoing server
416
- * Set SMTP server to your domain name
417
- * Set Security to SSL/TLS (always)
418
- * Set port to 465
419
- * Set authentication to PLAIN
420
- * Enter your username and password
421
- * Accept the SSL certificate
422
-*** Crypto settings
423
-Select *settings*, *Account settings*, *OpenKeychain* and then select your key and press *Allow*. You should now be able to decrypt emails by entering your GPG passphrase.
424
-
425
-You may also want to change the amount of time for which passwords are remembered, so that you don't need to enter your passphrase very often.
426
-*** Folders
427
-To view any new folders which you may have created using the /mailinglistrule/ script from your inbox press the *K9 icon* at the top left to access folders, then press the *menu button* and select *refresh folder list*.
428
-
429
-If your folder still doesn't show up then press the *menu button*, select *show folders* and select *all folders*.
430
-
199
+* Android apps
200
+Mobile devices have a reputation for being quite insecure, so it's recommended that you don't store emails or GPG keys on your phone. Instead [[./app_mailpile.html][install Mailpile]] and access your email via the webmail interface.
431 201
 * Subscribing to mailing lists
432 202
 To subscribe to a mailing list log in as your user (i.e. not the root user).
433 203
 
@@ -452,19 +222,5 @@ ssh username@domainname -p 2222
452 222
 #+END_SRC
453 223
 
454 224
 Select /Administrator controls/ then *Email filtering rules* then *Block/Unblock and email address* or *Block/Unblock email with subject line*. Also see the manpage for *freedombone-ignore*.
455
-* Your own mailing list
456
-If you want to set up a public mailing list then when installing the system remember to set the *PUBLIC_MAILING_LIST* variable within *freedombone.cfg* to the name of your list. The name should have no spaces in it. Public mailing lists are unencrypted so anyone will be able to read the contents, including non subscribers.
457
-
458
-To subscribe to your list send a cleartext email to:
459
-
460
-#+BEGIN_SRC bash
461
-mymailinglistname+subscribe@domainname
462
-#+END_SRC
463
-
464
-Tip: When using the Mutt email client if you want to send an email in cleartext then press *p* (for PGP) on the sending screen and select *clear*. Unsecure email is treated as being the exception rather than the default.
465
-
466
-#+BEGIN_EXPORT html
467
-<center>
468
-Return to the <a href="index.html">home page</a>
469
-</center>
470
-#+END_EXPORT
225
+* Using I2P for email transport
226
+For the most paranoid use cases it is also possible to use I2P as an email transport mechanism. This will of course require the people you're communicating with to have a similar setup in place. For details see the [[./app_bdsmail.html][bdsmail app]]. An advantage of this is that it's very unlikely that your email will get blocked. The disadvantage is that few others will be capable of receiving email this way, and it's only really usable via the Mutt email client.

+ 21
- 0
doc/EN/users.org Wyświetl plik

@@ -0,0 +1,21 @@
1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@freedombone.net
4
+#+KEYWORDS: freedombone, debian, beaglebone, users
5
+#+DESCRIPTION: Adding or removing users
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+BEGIN_CENTER
10
+[[file:images/logo.png]]
11
+#+END_CENTER
12
+
13
+Log into the system with:
14
+
15
+#+BEGIN_SRC bash
16
+ssh username@domainname -p 2222
17
+#+END_SRC
18
+
19
+Select *Administrator controls* then *User Management*.
20
+
21
+[[file:images/controlpanel/control_panel_manage_users.jpg]]

BIN
img/bbb3.png Wyświetl plik


BIN
img/bios_boot_usb.jpg Wyświetl plik


BIN
img/laptop_router.jpg Wyświetl plik


BIN
img/pleroma_register.jpg Wyświetl plik


BIN
img/port_forwarding.png Wyświetl plik


BIN
img/tusky.jpg Wyświetl plik


BIN
man/freedombone-image.1.gz Wyświetl plik


+ 6
- 0
src/freedombone Wyświetl plik

@@ -77,6 +77,12 @@ if [[ "$command_options" == "menuconfig-postactiv" ]]; then
77 77
     SOCIALINSTANCE='postactiv'
78 78
 fi
79 79
 
80
+if [[ "$command_options" == "menuconfig-pleroma" ]]; then
81
+    MINIMAL_INSTALL="yes"
82
+    ONION_ONLY="no"
83
+    SOCIALINSTANCE='pleroma'
84
+fi
85
+
80 86
 if [ ! "$CONFIGURATION_FILE" ]; then
81 87
     CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg"
82 88
 fi

+ 11
- 0
src/freedombone-app-gnusocial Wyświetl plik

@@ -611,6 +611,8 @@ function remove_gnusocial {
611 611
     if grep -q 'gnusocial-firewall' /etc/crontab; then
612 612
         sed -i '/gnusocial-firewall/d' /etc/crontab
613 613
     fi
614
+    sed -i 's|mysqli.allow_persistent.*|mysqli.allow_persistent = On|g' /etc/php/7.0/cli/php.ini
615
+    sed -i 's|mysqli.reconnect.*|mysqli.reconnect = Off|g' /etc/php/7.0/cli/php.ini
614 616
 
615 617
     function_check remove_ddns_domain
616 618
     remove_ddns_domain "$GNUSOCIAL_DOMAIN_NAME"
@@ -888,6 +890,15 @@ function install_gnusocial_main {
888 890
     # This improves performance
889 891
     sed -i "s|//\$config\\['db'\\]\\['schemacheck'\\].*|\$config\\['db'\\]\\['schemacheck'\\] = 'script';|g" "$gnusocial_config_file"
890 892
 
893
+    # remove the install script
894
+    if [ -f "/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/install.php" ]; then
895
+        rm "/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/install.php"
896
+    fi
897
+
898
+    # php configuration
899
+    sed -i 's|mysqli.allow_persistent.*|mysqli.allow_persistent = On|g' /etc/php/7.0/cli/php.ini
900
+    sed -i 's|mysqli.reconnect.*|mysqli.reconnect = On|g' /etc/php/7.0/cli/php.ini
901
+
891 902
     systemctl restart mariadb
892 903
     systemctl restart php7.0-fpm
893 904
     systemctl restart nginx

+ 4
- 26
src/freedombone-app-pleroma Wyświetl plik

@@ -47,7 +47,7 @@ PLEROMA_CODE=
47 47
 PLEROMA_PORT=4000
48 48
 PLEROMA_ONION_PORT=8011
49 49
 PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
50
-PLEROMA_COMMIT='b0d242cd9220c22c0af7c153182a51d8e40d34ba'
50
+PLEROMA_COMMIT='312a8783f8dbf563ea9d5af3cc7991ca553dc286'
51 51
 PLEROMA_ADMIN_PASSWORD=
52 52
 PLEROMA_DIR=/etc/pleroma
53 53
 PLEROMA_SECRET_KEY=""
@@ -769,6 +769,8 @@ function upgrade_pleroma {
769 769
     expire_pleroma_posts "$PLEROMA_DOMAIN_NAME" "$PLEROMA_EXPIRE_MONTHS"
770 770
     create_pleroma_blocklist
771 771
 
772
+    chown -R pleroma:pleroma $PLEROMA_DIR
773
+
772 774
     systemctl restart pleroma
773 775
 }
774 776
 
@@ -902,7 +904,7 @@ function remove_pleroma {
902 904
     rm /etc/systemd/system/pleroma.service
903 905
 
904 906
     userdel pleroma
905
-    #apt-get -yq remove esl-erlang elixir erlang-xmerl erlang-dev erlang-parsetools
907
+    #remove_elixir
906 908
 
907 909
     function_check remove_nodejs
908 910
     remove_nodejs pleroma-backend
@@ -936,30 +938,6 @@ function remove_pleroma {
936 938
     remove_ddns_domain "$PLEROMA_DOMAIN_NAME"
937 939
 }
938 940
 
939
-function install_elixir {
940
-    apt-get -yq install wget build-essential
941
-
942
-    if [ ! -d "$INSTALL_DIR" ]; then
943
-        mkdir -p "$INSTALL_DIR"
944
-    fi
945
-
946
-    cd "$INSTALL_DIR" || exit 768345274
947
-    erlang_package=erlang-solutions_1.0_all.deb
948
-    wget https://packages.erlang-solutions.com/$erlang_package
949
-    if [ ! -f "$INSTALL_DIR/$erlang_package" ]; then
950
-        exit 72853
951
-    fi
952
-    dpkg -i $erlang_package
953
-    apt-get -yq update
954
-    apt-get -yq install esl-erlang
955
-    apt-get -yq install elixir erlang-xmerl erlang-dev erlang-parsetools
956
-
957
-    if [ ! -f /usr/local/bin/mix ]; then
958
-        echo $'/usr/local/bin/mix not found after elixir installation'
959
-        exit 629352
960
-    fi
961
-}
962
-
963 941
 function install_pleroma {
964 942
     if [ ! $ONION_ONLY ]; then
965 943
         ONION_ONLY='no'

+ 9
- 0
src/freedombone-app-postactiv Wyświetl plik

@@ -624,6 +624,8 @@ function remove_postactiv {
624 624
     remove_backup_database_local postactiv
625 625
 
626 626
     sed -i '/postactiv-firewall/d' /etc/crontab
627
+    sed -i 's|mysqli.allow_persistent.*|mysqli.allow_persistent = On|g' /etc/php/7.0/cli/php.ini
628
+    sed -i 's|mysqli.reconnect.*|mysqli.reconnect = Off|g' /etc/php/7.0/cli/php.ini
627 629
 
628 630
     function_check remove_ddns_domain
629 631
     remove_ddns_domain "$POSTACTIV_DOMAIN_NAME"
@@ -653,6 +655,9 @@ function install_postactiv_main {
653 655
 
654 656
     apt-get -yq install php-gettext php-curl php-gd php-mysql git curl
655 657
     apt-get -yq install memcached php-memcached php-intl exiftool libfcgi0ldbl
658
+    apt-get -yq install php7.0-bcmath php7.0-curl php7.0-exif php7.0-gd
659
+    apt-get -yq install php7.0-intl php7.0-mbstring php7.0-mysqlnd
660
+    apt-get -yq install php7.0-opcache php7.0-readline php7.0-xmlwriter
656 661
 
657 662
     if [ ! -d "/var/www/$POSTACTIV_DOMAIN_NAME" ]; then
658 663
         mkdir "/var/www/$POSTACTIV_DOMAIN_NAME"
@@ -905,6 +910,10 @@ function install_postactiv_main {
905 910
         rm "/var/www/$POSTACTIV_DOMAIN_NAME/htdocs/install.php"
906 911
     fi
907 912
 
913
+    # php configuration
914
+    sed -i 's|mysqli.allow_persistent.*|mysqli.allow_persistent = On|g' /etc/php/7.0/cli/php.ini
915
+    sed -i 's|mysqli.reconnect.*|mysqli.reconnect = On|g' /etc/php/7.0/cli/php.ini
916
+
908 917
     systemctl restart mariadb
909 918
     systemctl restart php7.0-fpm
910 919
     systemctl restart nginx

+ 9
- 0
src/freedombone-config Wyświetl plik

@@ -1142,6 +1142,15 @@ function interactive_config {
1142 1142
         install_postactiv
1143 1143
     fi
1144 1144
 
1145
+    if [[ "$SOCIALINSTANCE" == 'pleroma' ]]; then
1146
+        PLEROMA_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
1147
+        PLEROMA_CODE=$DEFAULT_DOMAIN_CODE
1148
+        write_config_param "PLEROMA_DOMAIN_NAME" "$PLEROMA_DOMAIN_NAME"
1149
+        write_config_param "PLEROMA_CODE" "$PLEROMA_CODE"
1150
+        write_config_param "SOCIALINSTANCE" "$SOCIALINSTANCE"
1151
+        install_pleroma
1152
+    fi
1153
+
1145 1154
     # delete the temporary configuration file
1146 1155
     if [ -f temp.cfg ]; then
1147 1156
         shred -zu temp.cfg

+ 1
- 1
src/freedombone-image Wyświetl plik

@@ -563,7 +563,7 @@ if [[ $AMNESIC != 'no' ]]; then
563 563
     IMAGE_NAME="${IMAGE_NAME}-amnesic"
564 564
 fi
565 565
 
566
-if [[ "$SOCIALINSTANCE" == "gnusocial" || "$SOCIALINSTANCE" == "postactiv" ]]; then
566
+if [[ "$SOCIALINSTANCE" == "gnusocial" || "$SOCIALINSTANCE" == "postactiv" || "$SOCIALINSTANCE" == "pleroma" ]]; then
567 567
     IMAGE_NAME="${IMAGE_NAME}-${SOCIALINSTANCE}"
568 568
 fi
569 569
 

+ 11
- 9
src/freedombone-image-customise Wyświetl plik

@@ -395,14 +395,18 @@ EOF
395 395
             if [[ "$SOCIALINSTANCE" == "postactiv" ]]; then
396 396
                 echo "    ${PROJECT_NAME} menuconfig-postactiv" >> "$rootdir/root/.bashrc"
397 397
             else
398
-                if [[ "$ONION_ONLY" == "no" ]]; then
399
-                    if [[ "$MINIMAL_INSTALL" == "no" ]]; then
400
-                        echo "    ${PROJECT_NAME} menuconfig-full" >> "$rootdir/root/.bashrc"
398
+                if [[ "$SOCIALINSTANCE" == "pleroma" ]]; then
399
+                    echo "    ${PROJECT_NAME} menuconfig-pleroma" >> "$rootdir/root/.bashrc"
400
+                else
401
+                    if [[ "$ONION_ONLY" == "no" ]]; then
402
+                        if [[ "$MINIMAL_INSTALL" == "no" ]]; then
403
+                            echo "    ${PROJECT_NAME} menuconfig-full" >> "$rootdir/root/.bashrc"
404
+                        else
405
+                            echo "    ${PROJECT_NAME} menuconfig" >> "$rootdir/root/.bashrc"
406
+                        fi
401 407
                     else
402
-                        echo "    ${PROJECT_NAME} menuconfig" >> "$rootdir/root/.bashrc"
408
+                        echo "    ${PROJECT_NAME} menuconfig-onion" >> "$rootdir/root/.bashrc"
403 409
                     fi
404
-                else
405
-                    echo "    ${PROJECT_NAME} menuconfig-onion" >> "$rootdir/root/.bashrc"
406 410
                 fi
407 411
             fi
408 412
         fi
@@ -1917,8 +1921,6 @@ image_preinstall_repos() {
1917 1921
 
1918 1922
     if [[ "$SOCIALINSTANCE" == "pleroma" ]]; then
1919 1923
         git clone "$PLEROMA_REPO" "$rootdir/repos/pleroma"
1920
-        git clone "$QVITTER_THEME_REPO" "$rootdir/repos/qvitter"
1921
-        git clone "$PLEROMA_FRONTEND_REPO" "$rootdir/repos/pleroma-fe"
1922 1924
         return
1923 1925
     fi
1924 1926
 
@@ -1953,7 +1955,6 @@ image_preinstall_repos() {
1953 1955
     git clone "$HUBZILLA_REPO" "$rootdir/repos/hubzilla"
1954 1956
     git clone "$HUBZILLA_ADDONS_REPO" "$rootdir/repos/hubzilla-addons"
1955 1957
     git clone "$KOEL_REPO" "$rootdir/repos/koel"
1956
-    #git clone "$LIBREVAULT_REPO" "$rootdir/repos/librevault"
1957 1958
     git clone "$LYCHEE_REPO" "$rootdir/repos/lychee"
1958 1959
     git clone "$MAILPILE_REPO" "$rootdir/repos/mailpile"
1959 1960
     git clone "$MATRIX_REPO" "$rootdir/repos/matrix"
@@ -2161,6 +2162,7 @@ create_generic_image
2161 2162
 atheros_wifi
2162 2163
 continue_installation
2163 2164
 image_install_nodejs
2165
+image_install_elixir
2164 2166
 initialise_mesh
2165 2167
 configure_wifi
2166 2168
 configure_user_interface

+ 100
- 0
src/freedombone-utils-elixir Wyświetl plik

@@ -0,0 +1,100 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Elixir functions
12
+#
13
+# There's a problem with installing this onto mesh images, which is
14
+# that qemu appears to run out of RAM when using yarn to add webpack.
15
+#
16
+# License
17
+# =======
18
+#
19
+# Copyright (C) 2018 Bob Mottram <bob@freedombone.net>
20
+#
21
+# This program is free software: you can redistribute it and/or modify
22
+# it under the terms of the GNU Affero General Public License as published by
23
+# the Free Software Foundation, either version 3 of the License, or
24
+# (at your option) any later version.
25
+#
26
+# This program is distributed in the hope that it will be useful,
27
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
28
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29
+# GNU Affero General Public License for more details.
30
+#
31
+# You should have received a copy of the GNU Affero General Public License
32
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
33
+
34
+erlang_package='erlang-solutions_1.0_all.deb'
35
+
36
+function remove_elixir {
37
+    apt-get -yq remove elixir erlang-xmerl erlang-dev erlang-parsetools
38
+    apt-get -yq remove esl-erlang
39
+}
40
+
41
+function install_elixir {
42
+    if [ -f /usr/local/bin/mix ]; then
43
+        return
44
+    fi
45
+
46
+    apt-get -yq install wget build-essential
47
+
48
+    if [ ! -d "$INSTALL_DIR" ]; then
49
+        mkdir -p "$INSTALL_DIR"
50
+    fi
51
+
52
+    cd "$INSTALL_DIR" || exit 768345274
53
+    wget https://packages.erlang-solutions.com/$erlang_package
54
+    if [ ! -f "$INSTALL_DIR/$erlang_package" ]; then
55
+        exit 72853
56
+    fi
57
+    dpkg -i $erlang_package
58
+    apt-get -yq update
59
+    apt-get -yq install esl-erlang
60
+    apt-get -yq install elixir erlang-xmerl erlang-dev erlang-parsetools
61
+
62
+    if [ ! -f /usr/local/bin/mix ]; then
63
+        echo $'/usr/local/bin/mix not found after elixir installation'
64
+        exit 629352
65
+    fi
66
+}
67
+
68
+function image_install_elixir {
69
+    if [[ $VARIANT == "mesh"* ]]; then
70
+        return
71
+    fi
72
+
73
+    # shellcheck disable=SC2154
74
+    chroot "$rootdir" apt-get -yq install wget build-essential
75
+
76
+    if [ ! -d "$rootdir$INSTALL_DIR" ]; then
77
+        mkdir -p "$rootdir$INSTALL_DIR"
78
+    fi
79
+
80
+    { echo '#!/bin/bash';
81
+      echo "cd $INSTALL_DIR || exit 1";
82
+      echo "erlang_package=$erlang_package";
83
+      echo "wget https://packages.erlang-solutions.com/\$erlang_package";
84
+      echo "if [ ! -f \"$INSTALL_DIR/\$erlang_package\" ]; then";
85
+      echo '    exit 2';
86
+      echo 'fi';
87
+      echo "dpkg -i \$erlang_package"; } > "$rootdir/usr/bin/install_elixir"
88
+    chmod +x "$rootdir/usr/bin/install_elixir"
89
+    chroot "$rootdir" /usr/bin/install_elixir
90
+    chroot "$rootdir" apt-get -yq update
91
+    chroot "$rootdir" apt-get -yq install esl-erlang
92
+    chroot "$rootdir" apt-get -yq install elixir erlang-xmerl erlang-dev erlang-parsetools
93
+
94
+    if [ ! -f "$rootdir/usr/local/bin/mix" ]; then
95
+        echo $'/usr/local/bin/mix not found after elixir installation'
96
+        exit 629352
97
+    fi
98
+}
99
+
100
+# NOTE: deliberately no exit 0

+ 29
- 13
website/EN/app_pleroma.html Wyświetl plik

@@ -3,7 +3,7 @@
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-02-21 Wed 16:16 -->
6
+<!-- 2018-03-13 Tue 12:58 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -274,9 +274,9 @@ Some general advice about life in the fediverse <a href="./fediverse.html">can b
274 274
 </div>
275 275
 </div>
276 276
 
277
-<div id="outline-container-orgb538b49" class="outline-2">
278
-<h2 id="orgb538b49">Installation</h2>
279
-<div class="outline-text-2" id="text-orgb538b49">
277
+<div id="outline-container-org0494ed4" class="outline-2">
278
+<h2 id="org0494ed4">Installation</h2>
279
+<div class="outline-text-2" id="text-org0494ed4">
280 280
 <p>
281 281
 Log into your system with:
282 282
 </p>
@@ -296,9 +296,9 @@ Select <b>Add/Remove Apps</b> then <b>pleroma</b>. You will then be asked for a
296 296
 </div>
297 297
 </div>
298 298
 
299
-<div id="outline-container-org9e3d185" class="outline-2">
300
-<h2 id="org9e3d185">Initial setup</h2>
301
-<div class="outline-text-2" id="text-org9e3d185">
299
+<div id="outline-container-org264cd33" class="outline-2">
300
+<h2 id="org264cd33">Initial setup</h2>
301
+<div class="outline-text-2" id="text-org264cd33">
302 302
 <p>
303 303
 The first thing you'll need to do is register a new account. You can set your profile details and profile image by selecting the small settings icon to the right of your name.
304 304
 </p>
@@ -309,9 +309,9 @@ Once you have done that then you can disable further registrations from the <b>A
309 309
 </div>
310 310
 </div>
311 311
 
312
-<div id="outline-container-orgaceec12" class="outline-2">
313
-<h2 id="orgaceec12">Mastodon user interface</h2>
314
-<div class="outline-text-2" id="text-orgaceec12">
312
+<div id="outline-container-org3b7289f" class="outline-2">
313
+<h2 id="org3b7289f">Mastodon user interface</h2>
314
+<div class="outline-text-2" id="text-org3b7289f">
315 315
 <p>
316 316
 If you prefer a Tweetdeck-style user interface, similar to Mastodon, then once you have registered an account navigate to <b>/yourpleromadomainname/web</b> and log in.
317 317
 </p>
@@ -326,9 +326,25 @@ If you prefer a Tweetdeck-style user interface, similar to Mastodon, then once y
326 326
 </div>
327 327
 </div>
328 328
 
329
-<div id="outline-container-org9162549" class="outline-2">
330
-<h2 id="org9162549">Blocking controls</h2>
331
-<div class="outline-text-2" id="text-org9162549">
329
+<div id="outline-container-orgb42a82b" class="outline-2">
330
+<h2 id="orgb42a82b">Mobile apps</h2>
331
+<div class="outline-text-2" id="text-orgb42a82b">
332
+<p>
333
+It's also possible to use Mastodon apps together with Pleroma, such as Tusky, since it supports the Mastodon API. You may need to install <b>IcecatMobile</b> and set it as your default browser (under <b>Settings/Apps/Menu</b>) in order for the initial oauth registration process to work.
334
+</p>
335
+
336
+<div class="org-center">
337
+
338
+<div class="figure">
339
+<p><img src="images/tusky.jpg" alt="tusky.jpg" />
340
+</p>
341
+</div>
342
+</div>
343
+</div>
344
+</div>
345
+<div id="outline-container-orgf39f4e5" class="outline-2">
346
+<h2 id="orgf39f4e5">Blocking controls</h2>
347
+<div class="outline-text-2" id="text-orgf39f4e5">
332 348
 <div class="org-center">
333 349
 
334 350
 <div class="figure">

+ 167
- 252
website/EN/apps.html Wyświetl plik

@@ -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-02-21 Wed 15:05 -->
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"
6
+<title></title>
7
+<!-- 2018-03-10 Sat 21:13 -->
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"
13 12
  />
14
-<meta name="keywords" content="freedombone, apps" />
13
+<meta  name="keywords" content="freedombone, apps" />
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,7 +144,8 @@ for the JavaScript code in this tag.
236 144
 <a name="top" id="top"></a>
237 145
 </div>
238 146
 <div id="content">
239
-<div class="org-center">
147
+<h1 class="title"></h1>
148
+<div class="center">
240 149
 
241 150
 <div class="figure">
242 151
 <p><img src="images/logo.png" alt="logo.png" />
@@ -244,8 +153,6 @@ for the JavaScript code in this tag.
244 153
 </div>
245 154
 </div>
246 155
 
247
-<center><h1>Apps</h1></center>
248
-
249 156
 <blockquote>
250 157
 <p>
251 158
 "<i>In times of aggressive corporatization, increasing enclosure of communication spaces, and blanket surveillance, emancipatory communication practices appear to be particularly well suited to offer concrete alternatives to activists and citizens alike</i>" &#x2013; Stefania Milan
@@ -256,7 +163,7 @@ for the JavaScript code in this tag.
256 163
 The base install of the system just contains an email server and Mutt client, but not much else. In addition from within the <b>Administrator control panel</b> under <b>Add/remove apps</b> the following are installable. This list only applies on the home server version, with the mesh network version having a different and smaller set of apps.
257 164
 </p>
258 165
 
259
-<div class="org-center">
166
+<div class="center">
260 167
 
261 168
 <div class="figure">
262 169
 <p><img src="images/controlpanel/control_panel_apps.jpg" alt="control_panel_apps.jpg" />
@@ -265,9 +172,9 @@ The base install of the system just contains an email server and Mutt client, bu
265 172
 </div>
266 173
 
267 174
 
268
-<div id="outline-container-orga565b08" class="outline-2">
269
-<h2 id="orga565b08">Akaunting</h2>
270
-<div class="outline-text-2" id="text-orga565b08">
175
+<div id="outline-container-sec-1" class="outline-2">
176
+<h2 id="sec-1">Akaunting</h2>
177
+<div class="outline-text-2" id="text-1">
271 178
 <p>
272 179
 A web based accounts system for small businesses or freelancers.
273 180
 </p>
@@ -277,9 +184,9 @@ A web based accounts system for small businesses or freelancers.
277 184
 </p>
278 185
 </div>
279 186
 </div>
280
-<div id="outline-container-orga6c3fd1" class="outline-2">
281
-<h2 id="orga6c3fd1">BDS Mail</h2>
282
-<div class="outline-text-2" id="text-orga6c3fd1">
187
+<div id="outline-container-sec-2" class="outline-2">
188
+<h2 id="sec-2">BDS Mail</h2>
189
+<div class="outline-text-2" id="text-2">
283 190
 <p>
284 191
 It's like ordinary email, but with <a href="https://en.wikipedia.org/wiki/I2P">i2p</a> as the transport mechanism.
285 192
 </p>
@@ -289,9 +196,9 @@ It's like ordinary email, but with <a href="https://en.wikipedia.org/wiki/I2P">i
289 196
 </p>
290 197
 </div>
291 198
 </div>
292
-<div id="outline-container-org38c41a8" class="outline-2">
293
-<h2 id="org38c41a8">CryptPad</h2>
294
-<div class="outline-text-2" id="text-org38c41a8">
199
+<div id="outline-container-sec-3" class="outline-2">
200
+<h2 id="sec-3">CryptPad</h2>
201
+<div class="outline-text-2" id="text-3">
295 202
 <p>
296 203
 Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.
297 204
 </p>
@@ -301,9 +208,9 @@ Collaborate on editing documents, presentations and source code, or vote on thin
301 208
 </p>
302 209
 </div>
303 210
 </div>
304
-<div id="outline-container-org2b6d6ac" class="outline-2">
305
-<h2 id="org2b6d6ac">DLNA</h2>
306
-<div class="outline-text-2" id="text-org2b6d6ac">
211
+<div id="outline-container-sec-4" class="outline-2">
212
+<h2 id="sec-4">DLNA</h2>
213
+<div class="outline-text-2" id="text-4">
307 214
 <p>
308 215
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
309 216
 </p>
@@ -313,9 +220,9 @@ Enables you to use the system as a music server which any DLNA compatible device
313 220
 </p>
314 221
 </div>
315 222
 </div>
316
-<div id="outline-container-org6bd9e13" class="outline-2">
317
-<h2 id="org6bd9e13">Dokuwiki</h2>
318
-<div class="outline-text-2" id="text-org6bd9e13">
223
+<div id="outline-container-sec-5" class="outline-2">
224
+<h2 id="sec-5">Dokuwiki</h2>
225
+<div class="outline-text-2" id="text-5">
319 226
 <p>
320 227
 A databaseless wiki system.
321 228
 </p>
@@ -325,9 +232,9 @@ A databaseless wiki system.
325 232
 </p>
326 233
 </div>
327 234
 </div>
328
-<div id="outline-container-orgfb65777" class="outline-2">
329
-<h2 id="orgfb65777">Edith</h2>
330
-<div class="outline-text-2" id="text-orgfb65777">
235
+<div id="outline-container-sec-6" class="outline-2">
236
+<h2 id="sec-6">Edith</h2>
237
+<div class="outline-text-2" id="text-6">
331 238
 <p>
332 239
 Extremely simple and distraction-free notes system.
333 240
 </p>
@@ -337,9 +244,9 @@ Extremely simple and distraction-free notes system.
337 244
 </p>
338 245
 </div>
339 246
 </div>
340
-<div id="outline-container-orga976ffd" class="outline-2">
341
-<h2 id="orga976ffd">Emacs</h2>
342
-<div class="outline-text-2" id="text-orga976ffd">
247
+<div id="outline-container-sec-7" class="outline-2">
248
+<h2 id="sec-7">Emacs</h2>
249
+<div class="outline-text-2" id="text-7">
343 250
 <p>
344 251
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
345 252
 </p>
@@ -349,9 +256,17 @@ If you use the Mutt client to read your email then this will set it up to use em
349 256
 </p>
350 257
 </div>
351 258
 </div>
352
-<div id="outline-container-orgb91b541" class="outline-2">
353
-<h2 id="orgb91b541">Etherpad</h2>
354
-<div class="outline-text-2" id="text-orgb91b541">
259
+<div id="outline-container-sec-8" class="outline-2">
260
+<h2 id="sec-8">Email Server</h2>
261
+<div class="outline-text-2" id="text-8">
262
+<p>
263
+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>.
264
+</p>
265
+</div>
266
+</div>
267
+<div id="outline-container-sec-9" class="outline-2">
268
+<h2 id="sec-9">Etherpad</h2>
269
+<div class="outline-text-2" id="text-9">
355 270
 <p>
356 271
 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.
357 272
 </p>
@@ -361,9 +276,9 @@ Collaborate on creating documents in real time. Maybe you're planning a holiday
361 276
 </p>
362 277
 </div>
363 278
 </div>
364
-<div id="outline-container-org78a1e7a" class="outline-2">
365
-<h2 id="org78a1e7a">Federated wiki</h2>
366
-<div class="outline-text-2" id="text-org78a1e7a">
279
+<div id="outline-container-sec-10" class="outline-2">
280
+<h2 id="sec-10">Federated wiki</h2>
281
+<div class="outline-text-2" id="text-10">
367 282
 <p>
368 283
 A new approach to creating wiki content.
369 284
 </p>
@@ -373,9 +288,9 @@ A new approach to creating wiki content.
373 288
 </p>
374 289
 </div>
375 290
 </div>
376
-<div id="outline-container-org61b2eec" class="outline-2">
377
-<h2 id="org61b2eec">Friendica</h2>
378
-<div class="outline-text-2" id="text-org61b2eec">
291
+<div id="outline-container-sec-11" class="outline-2">
292
+<h2 id="sec-11">Friendica</h2>
293
+<div class="outline-text-2" id="text-11">
379 294
 <p>
380 295
 Federated social network system.
381 296
 </p>
@@ -385,9 +300,9 @@ Federated social network system.
385 300
 </p>
386 301
 </div>
387 302
 </div>
388
-<div id="outline-container-org6909894" class="outline-2">
389
-<h2 id="org6909894">Ghost</h2>
390
-<div class="outline-text-2" id="text-org6909894">
303
+<div id="outline-container-sec-12" class="outline-2">
304
+<h2 id="sec-12">Ghost</h2>
305
+<div class="outline-text-2" id="text-12">
391 306
 <p>
392 307
 Modern looking blogging system.
393 308
 </p>
@@ -397,9 +312,9 @@ Modern looking blogging system.
397 312
 </p>
398 313
 </div>
399 314
 </div>
400
-<div id="outline-container-orgd3295e2" class="outline-2">
401
-<h2 id="orgd3295e2">GNU Social</h2>
402
-<div class="outline-text-2" id="text-orgd3295e2">
315
+<div id="outline-container-sec-13" class="outline-2">
316
+<h2 id="sec-13">GNU Social</h2>
317
+<div class="outline-text-2" id="text-13">
403 318
 <p>
404 319
 Federated social network based on the OStatus protocol. You can "<i>remote follow</i>" other users within the GNU Social federation.
405 320
 </p>
@@ -409,9 +324,9 @@ Federated social network based on the OStatus protocol. You can "<i>remote follo
409 324
 </p>
410 325
 </div>
411 326
 </div>
412
-<div id="outline-container-orgf9c3325" class="outline-2">
413
-<h2 id="orgf9c3325">Gogs</h2>
414
-<div class="outline-text-2" id="text-orgf9c3325">
327
+<div id="outline-container-sec-14" class="outline-2">
328
+<h2 id="sec-14">Gogs</h2>
329
+<div class="outline-text-2" id="text-14">
415 330
 <p>
416 331
 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 332
 </p>
@@ -421,9 +336,9 @@ Lightweight git project hosting system. You can mirror projects from Github, or
421 336
 </p>
422 337
 </div>
423 338
 </div>
424
-<div id="outline-container-orgfde0d6d" class="outline-2">
425
-<h2 id="orgfde0d6d">HTMLy</h2>
426
-<div class="outline-text-2" id="text-orgfde0d6d">
339
+<div id="outline-container-sec-15" class="outline-2">
340
+<h2 id="sec-15">HTMLy</h2>
341
+<div class="outline-text-2" id="text-15">
427 342
 <p>
428 343
 Databaseless blogging system. Quite simple and with a markdown-like format.
429 344
 </p>
@@ -433,9 +348,9 @@ Databaseless blogging system. Quite simple and with a markdown-like format.
433 348
 </p>
434 349
 </div>
435 350
 </div>
436
-<div id="outline-container-org28717c9" class="outline-2">
437
-<h2 id="org28717c9">Hubzilla</h2>
438
-<div class="outline-text-2" id="text-org28717c9">
351
+<div id="outline-container-sec-16" class="outline-2">
352
+<h2 id="sec-16">Hubzilla</h2>
353
+<div class="outline-text-2" id="text-16">
439 354
 <p>
440 355
 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 356
 </p>
@@ -445,9 +360,9 @@ Web publishing platform with social network like features and good privacy contr
445 360
 </p>
446 361
 </div>
447 362
 </div>
448
-<div id="outline-container-org8b67211" class="outline-2">
449
-<h2 id="org8b67211">Icecast media stream</h2>
450
-<div class="outline-text-2" id="text-org8b67211">
363
+<div id="outline-container-sec-17" class="outline-2">
364
+<h2 id="sec-17">Icecast media stream</h2>
365
+<div class="outline-text-2" id="text-17">
451 366
 <p>
452 367
 Make your own internet radio station.
453 368
 </p>
@@ -457,9 +372,9 @@ Make your own internet radio station.
457 372
 </p>
458 373
 </div>
459 374
 </div>
460
-<div id="outline-container-org620e0a2" class="outline-2">
461
-<h2 id="org620e0a2">IRC Server (ngirc)</h2>
462
-<div class="outline-text-2" id="text-org620e0a2">
375
+<div id="outline-container-sec-18" class="outline-2">
376
+<h2 id="sec-18">IRC Server (ngirc)</h2>
377
+<div class="outline-text-2" id="text-18">
463 378
 <p>
464 379
 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 380
 </p>
@@ -469,18 +384,18 @@ Run your own IRC chat channel which can be secured with a password and accessibl
469 384
 </p>
470 385
 </div>
471 386
 </div>
472
-<div id="outline-container-orgaf23bf9" class="outline-2">
473
-<h2 id="orgaf23bf9">Jitsi Meet</h2>
474
-<div class="outline-text-2" id="text-orgaf23bf9">
387
+<div id="outline-container-sec-19" class="outline-2">
388
+<h2 id="sec-19">Jitsi Meet</h2>
389
+<div class="outline-text-2" id="text-19">
475 390
 <p>
476 391
 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 392
 </p>
478 393
 </div>
479 394
 </div>
480 395
 
481
-<div id="outline-container-org24aec82" class="outline-2">
482
-<h2 id="org24aec82">KanBoard</h2>
483
-<div class="outline-text-2" id="text-org24aec82">
396
+<div id="outline-container-sec-20" class="outline-2">
397
+<h2 id="sec-20">KanBoard</h2>
398
+<div class="outline-text-2" id="text-20">
484 399
 <p>
485 400
 A simple kanban system for managing projects or TODO lists.
486 401
 </p>
@@ -490,9 +405,9 @@ A simple kanban system for managing projects or TODO lists.
490 405
 </p>
491 406
 </div>
492 407
 </div>
493
-<div id="outline-container-org45a3c93" class="outline-2">
494
-<h2 id="org45a3c93">Key Server</h2>
495
-<div class="outline-text-2" id="text-org45a3c93">
408
+<div id="outline-container-sec-21" class="outline-2">
409
+<h2 id="sec-21">Key Server</h2>
410
+<div class="outline-text-2" id="text-21">
496 411
 <p>
497 412
 An OpenPGP key server for storing and retrieving GPG public keys.
498 413
 </p>
@@ -502,9 +417,9 @@ An OpenPGP key server for storing and retrieving GPG public keys.
502 417
 </p>
503 418
 </div>
504 419
 </div>
505
-<div id="outline-container-org0a24944" class="outline-2">
506
-<h2 id="org0a24944">Koel</h2>
507
-<div class="outline-text-2" id="text-org0a24944">
420
+<div id="outline-container-sec-22" class="outline-2">
421
+<h2 id="sec-22">Koel</h2>
422
+<div class="outline-text-2" id="text-22">
508 423
 <p>
509 424
 Access your music collection from any internet connected device.
510 425
 </p>
@@ -514,9 +429,9 @@ Access your music collection from any internet connected device.
514 429
 </p>
515 430
 </div>
516 431
 </div>
517
-<div id="outline-container-org3a2e6f7" class="outline-2">
518
-<h2 id="org3a2e6f7">Lychee</h2>
519
-<div class="outline-text-2" id="text-org3a2e6f7">
432
+<div id="outline-container-sec-23" class="outline-2">
433
+<h2 id="sec-23">Lychee</h2>
434
+<div class="outline-text-2" id="text-23">
520 435
 <p>
521 436
 Make your photo albums available on the web.
522 437
 </p>
@@ -526,9 +441,9 @@ Make your photo albums available on the web.
526 441
 </p>
527 442
 </div>
528 443
 </div>
529
-<div id="outline-container-org2ce1251" class="outline-2">
530
-<h2 id="org2ce1251">Mailpile</h2>
531
-<div class="outline-text-2" id="text-org2ce1251">
444
+<div id="outline-container-sec-24" class="outline-2">
445
+<h2 id="sec-24">Mailpile</h2>
446
+<div class="outline-text-2" id="text-24">
532 447
 <p>
533 448
 Modern email client which supports GPG encryption.
534 449
 </p>
@@ -538,9 +453,9 @@ Modern email client which supports GPG encryption.
538 453
 </p>
539 454
 </div>
540 455
 </div>
541
-<div id="outline-container-orgc7cd13f" class="outline-2">
542
-<h2 id="orgc7cd13f">Matrix</h2>
543
-<div class="outline-text-2" id="text-orgc7cd13f">
456
+<div id="outline-container-sec-25" class="outline-2">
457
+<h2 id="sec-25">Matrix</h2>
458
+<div class="outline-text-2" id="text-25">
544 459
 <p>
545 460
 Multi-user chat with some security and moderation controls.
546 461
 </p>
@@ -550,9 +465,9 @@ Multi-user chat with some security and moderation controls.
550 465
 </p>
551 466
 </div>
552 467
 </div>
553
-<div id="outline-container-orgddb22c7" class="outline-2">
554
-<h2 id="orgddb22c7">Mediagoblin</h2>
555
-<div class="outline-text-2" id="text-orgddb22c7">
468
+<div id="outline-container-sec-26" class="outline-2">
469
+<h2 id="sec-26">Mediagoblin</h2>
470
+<div class="outline-text-2" id="text-26">
556 471
 <p>
557 472
 Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.
558 473
 </p>
@@ -562,9 +477,9 @@ Publicly host video and audio files so that you don't need to use YouTube/Vimeo/
562 477
 </p>
563 478
 </div>
564 479
 </div>
565
-<div id="outline-container-org3443452" class="outline-2">
566
-<h2 id="org3443452">Mumble</h2>
567
-<div class="outline-text-2" id="text-org3443452">
480
+<div id="outline-container-sec-27" class="outline-2">
481
+<h2 id="sec-27">Mumble</h2>
482
+<div class="outline-text-2" id="text-27">
568 483
 <p>
569 484
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
570 485
 </p>
@@ -574,9 +489,9 @@ The popular VoIP and text chat system. Say goodbye to old-fashioned telephony co
574 489
 </p>
575 490
 </div>
576 491
 </div>
577
-<div id="outline-container-org41c4d06" class="outline-2">
578
-<h2 id="org41c4d06">NextCloud</h2>
579
-<div class="outline-text-2" id="text-org41c4d06">
492
+<div id="outline-container-sec-28" class="outline-2">
493
+<h2 id="sec-28">NextCloud</h2>
494
+<div class="outline-text-2" id="text-28">
580 495
 <p>
581 496
 Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.
582 497
 </p>
@@ -586,9 +501,9 @@ Store files on your server and sync them with laptops or mobile devices. Include
586 501
 </p>
587 502
 </div>
588 503
 </div>
589
-<div id="outline-container-org0b5e2de" class="outline-2">
590
-<h2 id="org0b5e2de">PeerTube</h2>
591
-<div class="outline-text-2" id="text-org0b5e2de">
504
+<div id="outline-container-sec-29" class="outline-2">
505
+<h2 id="sec-29">PeerTube</h2>
506
+<div class="outline-text-2" id="text-29">
592 507
 <p>
593 508
 Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better enables the streaming load to be shared across servers.
594 509
 </p>
@@ -598,9 +513,9 @@ Peer-to-peer video hosting. Similar to Mediagoblin, but the P2P aspect better en
598 513
 </p>
599 514
 </div>
600 515
 </div>
601
-<div id="outline-container-orgbc69da3" class="outline-2">
602
-<h2 id="orgbc69da3">PI-Hole</h2>
603
-<div class="outline-text-2" id="text-orgbc69da3">
516
+<div id="outline-container-sec-30" class="outline-2">
517
+<h2 id="sec-30">PI-Hole</h2>
518
+<div class="outline-text-2" id="text-30">
604 519
 <p>
605 520
 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 521
 </p>
@@ -610,9 +525,9 @@ The black hole for web adverts. Block adverts at the domain name level within yo
610 525
 </p>
611 526
 </div>
612 527
 </div>
613
-<div id="outline-container-orgae7a92d" class="outline-2">
614
-<h2 id="orgae7a92d">Pleroma</h2>
615
-<div class="outline-text-2" id="text-orgae7a92d">
528
+<div id="outline-container-sec-31" class="outline-2">
529
+<h2 id="sec-31">Pleroma</h2>
530
+<div class="outline-text-2" id="text-31">
616 531
 <p>
617 532
 Fediverse instance which is compatible with GNU Social and Mastodon, and suited for systems without much RAM or CPU resource.
618 533
 </p>
@@ -622,9 +537,9 @@ Fediverse instance which is compatible with GNU Social and Mastodon, and suited
622 537
 </p>
623 538
 </div>
624 539
 </div>
625
-<div id="outline-container-org94767b4" class="outline-2">
626
-<h2 id="org94767b4">PostActiv</h2>
627
-<div class="outline-text-2" id="text-org94767b4">
540
+<div id="outline-container-sec-32" class="outline-2">
541
+<h2 id="sec-32">PostActiv</h2>
542
+<div class="outline-text-2" id="text-32">
628 543
 <p>
629 544
 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 545
 </p>
@@ -634,9 +549,9 @@ An alternative federated social networking system compatible with GNU Social, Pl
634 549
 </p>
635 550
 </div>
636 551
 </div>
637
-<div id="outline-container-org0ba2849" class="outline-2">
638
-<h2 id="org0ba2849">PrivateBin</h2>
639
-<div class="outline-text-2" id="text-org0ba2849">
552
+<div id="outline-container-sec-33" class="outline-2">
553
+<h2 id="sec-33">PrivateBin</h2>
554
+<div class="outline-text-2" id="text-33">
640 555
 <p>
641 556
 A pastebin where the server has zero knowledge of the content being pasted.
642 557
 </p>
@@ -646,9 +561,9 @@ A pastebin where the server has zero knowledge of the content being pasted.
646 561
 </p>
647 562
 </div>
648 563
 </div>
649
-<div id="outline-container-orgcd96abb" class="outline-2">
650
-<h2 id="orgcd96abb">Profanity</h2>
651
-<div class="outline-text-2" id="text-orgcd96abb">
564
+<div id="outline-container-sec-34" class="outline-2">
565
+<h2 id="sec-34">Profanity</h2>
566
+<div class="outline-text-2" id="text-34">
652 567
 <p>
653 568
 A shell based XMPP client which you can run on the Freedombone server via ssh.
654 569
 </p>
@@ -658,9 +573,9 @@ A shell based XMPP client which you can run on the Freedombone server via ssh.
658 573
 </p>
659 574
 </div>
660 575
 </div>
661
-<div id="outline-container-orgb9c3c0b" class="outline-2">
662
-<h2 id="orgb9c3c0b">Riot Web</h2>
663
-<div class="outline-text-2" id="text-orgb9c3c0b">
576
+<div id="outline-container-sec-35" class="outline-2">
577
+<h2 id="sec-35">Riot Web</h2>
578
+<div class="outline-text-2" id="text-35">
664 579
 <p>
665 580
 A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.
666 581
 </p>
@@ -670,9 +585,9 @@ A browser based user interface for the Matrix federated communications system, i
670 585
 </p>
671 586
 </div>
672 587
 </div>
673
-<div id="outline-container-orgd05631d" class="outline-2">
674
-<h2 id="orgd05631d">SearX</h2>
675
-<div class="outline-text-2" id="text-orgd05631d">
588
+<div id="outline-container-sec-36" class="outline-2">
589
+<h2 id="sec-36">SearX</h2>
590
+<div class="outline-text-2" id="text-36">
676 591
 <p>
677 592
 A metasearch engine for customised and private web searches.
678 593
 </p>
@@ -682,9 +597,9 @@ A metasearch engine for customised and private web searches.
682 597
 </p>
683 598
 </div>
684 599
 </div>
685
-<div id="outline-container-org2a1819a" class="outline-2">
686
-<h2 id="org2a1819a">tt-rss</h2>
687
-<div class="outline-text-2" id="text-org2a1819a">
600
+<div id="outline-container-sec-37" class="outline-2">
601
+<h2 id="sec-37">tt-rss</h2>
602
+<div class="outline-text-2" id="text-37">
688 603
 <p>
689 604
 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.
690 605
 </p>
@@ -694,9 +609,9 @@ Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via a
694 609
 </p>
695 610
 </div>
696 611
 </div>
697
-<div id="outline-container-org7325a35" class="outline-2">
698
-<h2 id="org7325a35">Syncthing</h2>
699
-<div class="outline-text-2" id="text-org7325a35">
612
+<div id="outline-container-sec-38" class="outline-2">
613
+<h2 id="sec-38">Syncthing</h2>
614
+<div class="outline-text-2" id="text-38">
700 615
 <p>
701 616
 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.
702 617
 </p>
@@ -706,9 +621,9 @@ Possibly the best way to synchronise files across all of your devices. Once it h
706 621
 </p>
707 622
 </div>
708 623
 </div>
709
-<div id="outline-container-orge582914" class="outline-2">
710
-<h2 id="orge582914">Tahoe-LAFS</h2>
711
-<div class="outline-text-2" id="text-orge582914">
624
+<div id="outline-container-sec-39" class="outline-2">
625
+<h2 id="sec-39">Tahoe-LAFS</h2>
626
+<div class="outline-text-2" id="text-39">
712 627
 <p>
713 628
 Robust and encrypted storage of files on one or more server.
714 629
 </p>
@@ -718,9 +633,9 @@ Robust and encrypted storage of files on one or more server.
718 633
 </p>
719 634
 </div>
720 635
 </div>
721
-<div id="outline-container-org0f44920" class="outline-2">
722
-<h2 id="org0f44920">Tox</h2>
723
-<div class="outline-text-2" id="text-org0f44920">
636
+<div id="outline-container-sec-40" class="outline-2">
637
+<h2 id="sec-40">Tox</h2>
638
+<div class="outline-text-2" id="text-40">
724 639
 <p>
725 640
 Client and bootstrap node for the Tox chat/VoIP system.
726 641
 </p>
@@ -730,9 +645,9 @@ Client and bootstrap node for the Tox chat/VoIP system.
730 645
 </p>
731 646
 </div>
732 647
 </div>
733
-<div id="outline-container-org9e5e0ed" class="outline-2">
734
-<h2 id="org9e5e0ed">Turtl</h2>
735
-<div class="outline-text-2" id="text-org9e5e0ed">
648
+<div id="outline-container-sec-41" class="outline-2">
649
+<h2 id="sec-41">Turtl</h2>
650
+<div class="outline-text-2" id="text-41">
736 651
 <p>
737 652
 A system for privately creating and sharing notes and images, similar to Evernote but without the spying.
738 653
 </p>
@@ -742,18 +657,18 @@ A system for privately creating and sharing notes and images, similar to Evernot
742 657
 </p>
743 658
 </div>
744 659
 </div>
745
-<div id="outline-container-org47df89a" class="outline-2">
746
-<h2 id="org47df89a">Vim</h2>
747
-<div class="outline-text-2" id="text-org47df89a">
660
+<div id="outline-container-sec-42" class="outline-2">
661
+<h2 id="sec-42">Vim</h2>
662
+<div class="outline-text-2" id="text-42">
748 663
 <p>
749 664
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
750 665
 </p>
751 666
 </div>
752 667
 </div>
753 668
 
754
-<div id="outline-container-org1ae77f6" class="outline-2">
755
-<h2 id="org1ae77f6">Virtual Private Network (VPN)</h2>
756
-<div class="outline-text-2" id="text-org1ae77f6">
669
+<div id="outline-container-sec-43" class="outline-2">
670
+<h2 id="sec-43">Virtual Private Network (VPN)</h2>
671
+<div class="outline-text-2" id="text-43">
757 672
 <p>
758 673
 Set up a VPN on your server so that you can bypass local internet censorship.
759 674
 </p>
@@ -763,9 +678,9 @@ Set up a VPN on your server so that you can bypass local internet censorship.
763 678
 </p>
764 679
 </div>
765 680
 </div>
766
-<div id="outline-container-org293b43b" class="outline-2">
767
-<h2 id="org293b43b">XMPP</h2>
768
-<div class="outline-text-2" id="text-org293b43b">
681
+<div id="outline-container-sec-44" class="outline-2">
682
+<h2 id="sec-44">XMPP</h2>
683
+<div class="outline-text-2" id="text-44">
769 684
 <p>
770 685
 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.
771 686
 </p>

+ 62
- 147
website/EN/fediverse.html Wyświetl plik

@@ -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-02-21 Wed 14:52 -->
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="Homesteading the Fediverse"
6
+<title></title>
7
+<!-- 2018-03-10 Sat 20:00 -->
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="Homesteading the Fediverse"
13 12
  />
14
-<meta name="keywords" content="freedombone, homestead, fediverse" />
13
+<meta  name="keywords" content="freedombone, homestead, fediverse" />
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,7 +144,8 @@ for the JavaScript code in this tag.
236 144
 <a name="top" id="top"></a>
237 145
 </div>
238 146
 <div id="content">
239
-<div class="org-center">
147
+<h1 class="title"></h1>
148
+<div class="center">
240 149
 
241 150
 <div class="figure">
242 151
 <p><img src="images/logo.png" alt="logo.png" />
@@ -244,77 +153,83 @@ for the JavaScript code in this tag.
244 153
 </div>
245 154
 </div>
246 155
 
247
-<center>
248
-<h1>Homesteading the Fediverse</h1>
249
-</center>
156
+<div class="center">
157
+<p>
158
+<b>Homesteading the Fediverse</b>
159
+</p>
160
+</div>
250 161
 
251 162
 <p>
252 163
 Some things you might want to know about the Fediverse:
253 164
 </p>
254 165
 
255
-<div id="outline-container-org0e5c3f9" class="outline-2">
256
-<h2 id="org0e5c3f9">Federation as a concept</h2>
257
-<div class="outline-text-2" id="text-org0e5c3f9">
166
+<div id="outline-container-sec-1" class="outline-2">
167
+<h2 id="sec-1">Federation as a concept</h2>
168
+<div class="outline-text-2" id="text-1">
258 169
 <p>
259
-The political definition of a federation is "<i>a union of partially self-governing states or regions under a central (federal) government</i>". The fediverse isn't exactly like that, in that there is no federal government. However there are protocols which govern the communication between instances and that might be analogized to being a sort of elemantary constitution or mutual agreement binding all participants together. The protocols are merely ways of moving data around though, and don't impose any sort of moral code.
170
+The political definition of a federation is "<i>a union of partially self-governing states or regions under a central (federal) government</i>". The fediverse isn't exactly like that, in that there is no federal government. However there are protocols which govern the communication between instances and that might be analogized to being a sort of elementary constitution or mutual agreement binding all participants together. The protocols are merely ways of moving data around though, and don't impose any sort of moral code.
260 171
 </p>
261 172
 </div>
262 173
 </div>
263
-<div id="outline-container-org90385ba" class="outline-2">
264
-<h2 id="org90385ba">Keep the number of users on each server small</h2>
265
-<div class="outline-text-2" id="text-org90385ba">
174
+<div id="outline-container-sec-2" class="outline-2">
175
+<h2 id="sec-2">Keep the number of users on each server small</h2>
176
+<div class="outline-text-2" id="text-2">
266 177
 <p>
267 178
 The importance of this can't be overstated. Servers with lots of users always eventually have problems where the interests of the users are not the same as the interests of the server administrator. If you are the server administrator, or if there are only a small squad-size group of people on the server, then it's a lot easier to resolve differences and everyone's interests are likely to be similar.
268 179
 </p>
269 180
 </div>
270 181
 </div>
271 182
 
272
-<div id="outline-container-org1f1a75f" class="outline-2">
273
-<h2 id="org1f1a75f">Drama will happen</h2>
274
-<div class="outline-text-2" id="text-org1f1a75f">
183
+<div id="outline-container-sec-3" class="outline-2">
184
+<h2 id="sec-3">Drama will happen</h2>
185
+<div class="outline-text-2" id="text-3">
275 186
 <p>
276 187
 It's inevitable in any social network, but fortunately your options for dealing with it are better than they are in the giant proprietary monoliths. In the proprietary world Google or Facebook don't give a damn about the fate of individual users. On a server with a small number of users if you're getting griefed then the administrator is likely to care and be able to do something about it.
277 188
 </p>
278 189
 </div>
279 190
 </div>
280 191
 
281
-<div id="outline-container-org249f254" class="outline-2">
282
-<h2 id="org249f254">Don't be afraid to block</h2>
283
-<div class="outline-text-2" id="text-org249f254">
192
+<div id="outline-container-sec-4" class="outline-2">
193
+<h2 id="sec-4">Don't be afraid to block</h2>
194
+<div class="outline-text-2" id="text-4">
284 195
 <p>
285 196
 Especially if other servers are publishing content which may not be legal in your jurisdiction then don't be afraid to use domain or user blocking from the <b>Administrator control panel</b>. The same applies if users on other servers are trying to harass you. Blocking creates politics and drama but <span class="underline">this is a feature not a bug</span>. It allows you to craft your own distinct community and user experience while also existing in the wider federation. It's hard to do this on sites like Twitter or Facebook. Try to keep blocking to a minimum though and avoid doing it for insubstantial reasons. If you have other users on your server then publish the blocked domains list somewhere they can see. That avoids disappointment and enables you to have a discussion about the validity of blocking decisions.
286 197
 </p>
287 198
 </div>
288 199
 </div>
289 200
 
290
-<div id="outline-container-org16e1345" class="outline-2">
291
-<h2 id="org16e1345">Network structure maps on to social structure</h2>
292
-<div class="outline-text-2" id="text-org16e1345">
201
+<div id="outline-container-sec-5" class="outline-2">
202
+<h2 id="sec-5">Network structure maps on to social structure</h2>
203
+<div class="outline-text-2" id="text-5">
293 204
 <p>
294 205
 Over time follows and blocking rules come to match the underlying social geography of affinity groups. Blocking will happen and users will move around or start new servers. Drama related to blocking will dissipate.
295 206
 </p>
296 207
 </div>
297 208
 </div>
298 209
 
299
-<div id="outline-container-orga5968b2" class="outline-2">
300
-<h2 id="orga5968b2">Keep your follows under the Dunbar number</h2>
301
-<div class="outline-text-2" id="text-orga5968b2">
210
+<div id="outline-container-sec-6" class="outline-2">
211
+<h2 id="sec-6">Keep your follows under the Dunbar number</h2>
212
+<div class="outline-text-2" id="text-6">
213
+<p>
214
+Keep the number of other frequently active users you're following to under a couple of hundred. Your actual number of follows might be larger than this but could include users who rarely post anything.
215
+</p>
216
+
302 217
 <p>
303
-Keep the number of other users you're following and who are also active to under a couple of hundred. Any more than that and you'll just be overwhelmed by irrelevant stuff and whatever community you may have been part of will dissolve in a sea of entropy. There are no algorithmic timelines, and even if they're introduced then they create their own problems as an opaque form of censorship. <span class="underline">Real community happens at tribal scale</span>. It's something which people often don't like to admit because they get fixated upon bigger and bigger numbers, but it definitely seems to be true.
218
+Once there are more than a couple of hundred highly active users in your timeline then you'll just be overwhelmed by irrelevant stuff and whatever community you may have been part of will be drowned in the entropy. There are no algorithmic timelines to hide posts, and even if they're introduced then they create their own problems as an opaque form of censorship. <span class="underline">Real community happens at tribal scale</span>. It's something which people often don't like to admit because they get fixated upon bigger and bigger numbers, but it definitely seems to be true.
304 219
 </p>
305 220
 </div>
306 221
 </div>
307 222
 
308
-<div id="outline-container-orgc8c8b40" class="outline-2">
309
-<h2 id="orgc8c8b40">Avoid big public servers</h2>
310
-<div class="outline-text-2" id="text-orgc8c8b40">
223
+<div id="outline-container-sec-7" class="outline-2">
224
+<h2 id="sec-7">Avoid big public servers</h2>
225
+<div class="outline-text-2" id="text-7">
311 226
 <p>
312 227
 It may seem like a good idea and it may seem like you're doing a service to the community by allowing random strangers to register, but servers with thousands of users only cause problems - social, administrative, financial and possibly also legal. The financial strain of running a powerful server with high reliability may be enough to encourage the administrator to begin pushing advertising onto the system, or sell user content, and then before you know it you have identical problems to Twitter. Instead try to encourage people to set up their own servers. Follow this principle and a lot of arguments and stress will be more easily avoided.
313 228
 </p>
314 229
 
315 230
 
316 231
 
317
-<div class="org-center">
232
+<div class="center">
318 233
 <p>
319 234
 This site can also be accessed via a Tor browser at <a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a>. This documentation is under the <a href="https://www.gnu.org/licenses/fdl-1.3.txt">GNU Free Documentation License version 1.3</a>
320 235
 </p>

+ 13
- 18
website/EN/index.html Wyświetl plik

@@ -3,7 +3,7 @@
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-02-04 Sun 21:09 -->
6
+<!-- 2018-03-13 Tue 12:38 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -258,24 +258,17 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
258 258
 </p>
259 259
 
260 260
 <p>
261
-<a href="./homeserver.html">Here's how</a>.
261
+A list of other supported ARM boards <a href="./boards.html">can be found here</a>, or you can install onto an old laptop or netbook. Some installation instructions for different use cases are:
262 262
 </p>
263 263
 
264
-<p>
265
-And here's how <a href="./beaglebone.html">on a Beaglebone Black</a>. A list of other supported ARM boards <a href="./boards.html">can be found here</a>.
266
-</p>
267
-
268
-<p>
269
-Or you can install <a href="./debianinstall.html">onto an existing Debian system</a>.
270
-</p>
271
-
272
-<p>
273
-If you have a single board ARM computer which isn't one of the officially supported ones, such as Raspberry Pi, then you may still be able to install <a href="./armbian.html">Freedombone with Armbian</a>.
274
-</p>
275
-
276
-<p>
277
-Want to make a community mesh network which can either be fully autonomous or connected to the internet? The <a href="./mesh.html">Freedombone Mesh</a> is a wireless solution for networked communication that can be rapidly deployed in temporary, emergency or post-disaster situations where internet access is unavailable or compromised, or used as an infrastructural community service similar to <a href="https://en.wikipedia.org/wiki/Freifunk">Freifunk</a>.
278
-</p>
264
+<ul class="org-ul">
265
+<li><a href="./homeserver.html">Typical installation</a></li>
266
+<li>Installing <a href="./beaglebone.html">on a Beaglebone Black</a></li>
267
+<li>Installing on an <a href="./debianinstall.html">existing Debian system</a></li>
268
+<li>Installing <a href="./armbian.html">on Armbian</a>, for unsupported ARM boards such as Raspberry Pi</li>
269
+<li>Creating a dedicated <a href="./socialinstance.html">fediverse instance</a> for a single user or to host a community</li>
270
+<li>Deploying a <a href="./mesh.html">mesh network</a> which can operate with or without the internet</li>
271
+</ul>
279 272
 
280 273
 <p>
281 274
 After installation it's possible that you might want some advice on how to run your system and set up apps to work nicely with it.
@@ -283,13 +276,15 @@ After installation it's possible that you might want some advice on how to run y
283 276
 
284 277
 <ul class="org-ul">
285 278
 <li><a href="./domains.html">How to get a domain name</a></li>
279
+<li><a href="./security.html">Improving security</a></li>
280
+<li><a href="./users.html">Adding or removing users</a></li>
286 281
 <li><a href="./apps.html">Apps available on the system</a></li>
287
-<li><a href="./usage.html">General usage</a></li>
288 282
 <li><a href="./faq.html">Frequently Asked Questions</a></li>
289 283
 <li><a href="./mobile.html">Advice on setting up a mobile phone</a></li>
290 284
 <li><a href="./support.html">I like this project. How can I help to support it?</a></li>
291 285
 </ul>
292 286
 
287
+
293 288
 <p>
294 289
 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>.
295 290
 </p>

+ 250
- 0
website/EN/security.html Wyświetl plik

@@ -0,0 +1,250 @@
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
+<title></title>
7
+<!-- 2018-03-10 Sat 20:54 -->
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="Improving security"
12
+ />
13
+<meta  name="keywords" content="freedombone, security, ssh, debian, beaglebone" />
14
+<style type="text/css">
15
+ <!--/*--><![CDATA[/*><!--*/
16
+  .title  { text-align: center; }
17
+  .todo   { font-family: monospace; color: red; }
18
+  .done   { color: green; }
19
+  .tag    { background-color: #eee; font-family: monospace;
20
+            padding: 2px; font-size: 80%; font-weight: normal; }
21
+  .timestamp { color: #bebebe; }
22
+  .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; }
26
+  .underline { text-decoration: underline; }
27
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
+  p.verse { margin-left: 3%; }
29
+  pre {
30
+    border: 1px solid #ccc;
31
+    box-shadow: 3px 3px 3px #eee;
32
+    padding: 8pt;
33
+    font-family: monospace;
34
+    overflow: auto;
35
+    margin: 1.2em;
36
+  }
37
+  pre.src {
38
+    position: relative;
39
+    overflow: visible;
40
+    padding-top: 1.2em;
41
+  }
42
+  pre.src:before {
43
+    display: none;
44
+    position: absolute;
45
+    background-color: white;
46
+    top: -10px;
47
+    right: 10px;
48
+    padding: 3px;
49
+    border: 1px solid black;
50
+  }
51
+  pre.src:hover:before { display: inline;}
52
+  pre.src-sh:before    { content: 'sh'; }
53
+  pre.src-bash:before  { content: 'sh'; }
54
+  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'; }
59
+
60
+  table { border-collapse:collapse; }
61
+  caption.t-above { caption-side: top; }
62
+  caption.t-bottom { caption-side: bottom; }
63
+  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; }
70
+  dt { font-weight: bold; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
73
+  .footdef  { margin-bottom: 1em; }
74
+  .figure { padding: 1em; }
75
+  .figure p { text-align: center; }
76
+  .inlinetask {
77
+    padding: 10px;
78
+    border: 2px solid gray;
79
+    margin: 10px;
80
+    background: #ffffcc;
81
+  }
82
+  #org-div-home-and-up
83
+   { text-align: right; font-size: 70%; white-space: nowrap; }
84
+  textarea { overflow-x: auto; }
85
+  .linenr { font-size: smaller }
86
+  .code-highlighted { background-color: #ffff00; }
87
+  .org-info-js_info-navigation { border-style: none; }
88
+  #org-info-js_console-label
89
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
+  .org-info-js_search-highlight
91
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
92
+  /*]]>*/-->
93
+</style>
94
+<link rel="stylesheet" type="text/css" href="freedombone.css" />
95
+<script type="text/javascript">
96
+/*
97
+@licstart  The following is the entire license notice for the
98
+JavaScript code in this tag.
99
+
100
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
101
+
102
+The JavaScript code in this tag is free software: you can
103
+redistribute it and/or modify it under the terms of the GNU
104
+General Public License (GNU GPL) as published by the Free Software
105
+Foundation, either version 3 of the License, or (at your option)
106
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
107
+without even the implied warranty of MERCHANTABILITY or FITNESS
108
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
109
+
110
+As additional permission under GNU GPL version 3 section 7, you
111
+may distribute non-source (e.g., minimized or compacted) forms of
112
+that code without the copy of the GNU GPL normally required by
113
+section 4, provided you include this license notice and a URL
114
+through which recipients can access the Corresponding Source.
115
+
116
+
117
+@licend  The above is the entire license notice
118
+for the JavaScript code in this tag.
119
+*/
120
+<!--/*--><![CDATA[/*><!--*/
121
+ function CodeHighlightOn(elem, id)
122
+ {
123
+   var target = document.getElementById(id);
124
+   if(null != target) {
125
+     elem.cacheClassElem = elem.className;
126
+     elem.cacheClassTarget = target.className;
127
+     target.className = "code-highlighted";
128
+     elem.className   = "code-highlighted";
129
+   }
130
+ }
131
+ function CodeHighlightOff(elem, id)
132
+ {
133
+   var target = document.getElementById(id);
134
+   if(elem.cacheClassElem)
135
+     elem.className = elem.cacheClassElem;
136
+   if(elem.cacheClassTarget)
137
+     target.className = elem.cacheClassTarget;
138
+ }
139
+/*]]>*///-->
140
+</script>
141
+</head>
142
+<body>
143
+<div id="preamble" class="status">
144
+<a name="top" id="top"></a>
145
+</div>
146
+<div id="content">
147
+<h1 class="title"></h1>
148
+<div class="center">
149
+
150
+<div class="figure">
151
+<p><img src="images/logo.png" alt="logo.png" />
152
+</p>
153
+</div>
154
+</div>
155
+
156
+<div id="outline-container-sec-1" class="outline-2">
157
+<h2 id="sec-1">Authentication with keys</h2>
158
+<div class="outline-text-2" id="text-1">
159
+<p>
160
+It's a lot more secure to log in to the Freedombone system using ssh keys rather than with a password. You can set that up by first running:
161
+</p>
162
+
163
+<div class="org-src-container">
164
+
165
+<pre class="src src-bash">freedombone-client
166
+</pre>
167
+</div>
168
+
169
+<p>
170
+On your local system (i.e. whatever you're logging in to the Freedombone system from, typically a laptop). Then:
171
+</p>
172
+
173
+<pre class="example">
174
+ssh myusername@freedombone.local -p 2222
175
+</pre>
176
+
177
+<p>
178
+Select <b>Administrator controls</b> and re-enter your password, then <b>Manage Users</b> and <b>Change user ssh public key</b>. Copy and paste the ssh public keys which appeared after the <b>freedombone-client</b> command was run. Then go to <b>Security settings</b> and select <b>Allow ssh login with passwords</b> followed by <b>no</b>.
179
+</p>
180
+
181
+<p>
182
+You'll need to make sure that you have a copy of the ~/.ssh directory on your local system. You could just copy that directory to a USB drive and then keep that somewhere safe so that you can restore the keys if you need to.
183
+</p>
184
+</div>
185
+</div>
186
+<div id="outline-container-sec-2" class="outline-2">
187
+<h2 id="sec-2">Administrating the system via an onion address (Tor)</h2>
188
+<div class="outline-text-2" id="text-2">
189
+<p>
190
+You can also access your system via the Tor system using an onion address. To find out what the onion address for ssh access is you can do the following:
191
+</p>
192
+
193
+<div class="org-src-container">
194
+
195
+<pre class="src src-bash">ssh username@freedombone.local -p 2222
196
+</pre>
197
+</div>
198
+
199
+<p>
200
+Select <i>Administrator controls</i> then select "About this system" and look for the onion address for ssh. You can then close the terminal and open another, then do the following on your local system:
201
+</p>
202
+
203
+<div class="org-src-container">
204
+
205
+<pre class="src src-bash">freedombone-client
206
+</pre>
207
+</div>
208
+
209
+<p>
210
+This will set up your ssh environment to be able to handle onion addresses. Then you can test ssh with:
211
+</p>
212
+
213
+<div class="org-src-container">
214
+
215
+<pre class="src src-bash">ssh username@address.onion -p 2222
216
+</pre>
217
+</div>
218
+
219
+<p>
220
+Subsequently even if dynamic DNS isn't working you may still be able to administer your system. Using the onion address also gives you some degree of protection against corporate or government metadata analysis, since it becomes more difficult to passively detect which systems are communicating.
221
+</p>
222
+</div>
223
+</div>
224
+</div>
225
+<div id="postamble" class="status">
226
+
227
+<style type="text/css">
228
+.back-to-top {
229
+    position: fixed;
230
+    bottom: 2em;
231
+    right: 0px;
232
+    text-decoration: none;
233
+    color: #000000;
234
+    background-color: rgba(235, 235, 235, 0.80);
235
+    font-size: 12px;
236
+    padding: 1em;
237
+    display: none;
238
+}
239
+
240
+.back-to-top:hover {
241
+    background-color: rgba(135, 135, 135, 0.50);
242
+}
243
+</style>
244
+
245
+<div class="back-to-top">
246
+<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
247
+</div>
248
+</div>
249
+</body>
250
+</html>

+ 419
- 0
website/EN/socialinstance.html Wyświetl plik

@@ -0,0 +1,419 @@
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-03-13 Tue 12: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="Social Instance"
13
+ />
14
+<meta name="keywords" content="freedombone, debian, social, fediverse, instance, pleroma, gnusocial, postactiv" />
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
+<div class="org-center">
240
+
241
+<div class="figure">
242
+<p><img src="images/logo.png" alt="logo.png" />
243
+</p>
244
+</div>
245
+</div>
246
+
247
+<center>
248
+<h1>Social Instance</h1>
249
+</center>
250
+
251
+<p>
252
+A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
253
+</p>
254
+
255
+<ul class="org-ul">
256
+<li>An old laptop, capable of booting from USB</li>
257
+<li>A USB drive, preferably Sandisk and 16GB or larger</li>
258
+<li>An ethernet patch cable</li>
259
+<li>A domain name of your own</li>
260
+<li>A dynamic DNS account</li>
261
+</ul>
262
+
263
+<p>
264
+The installation process is the same as usual, with the only difference being that on initial setup it will go straight to the domain setup details for your instance. In summary:
265
+</p>
266
+
267
+<div id="outline-container-orga9aa61d" class="outline-2">
268
+<h2 id="orga9aa61d">Copy the image to the USB drive</h2>
269
+<div class="outline-text-2" id="text-orga9aa61d">
270
+<p>
271
+Substitute <b>sdX</b> with the device name for your USB drive.
272
+</p>
273
+
274
+<div class="org-src-container">
275
+<pre class="src src-bash">sudo apt-get install xz-utils wget
276
+wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz
277
+wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz.sig
278
+gpg --verify freedombone-pleroma-amd64.img.xz.sig
279
+unxz freedombone-pleroma-amd64.img.xz
280
+sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
281
+sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-pleroma-amd64.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
282
+</pre>
283
+</div>
284
+
285
+<p>
286
+Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.
287
+</p>
288
+</div>
289
+</div>
290
+
291
+<div id="outline-container-org4454ad3" class="outline-2">
292
+<h2 id="org4454ad3">Connect the laptop to your internet router</h2>
293
+<div class="outline-text-2" id="text-org4454ad3">
294
+<p>
295
+Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
296
+</p>
297
+
298
+<div class="org-center">
299
+
300
+<div class="figure">
301
+<p><img src="images/laptop_router.jpg" alt="laptop_router.jpg" />
302
+</p>
303
+</div>
304
+</div>
305
+</div>
306
+</div>
307
+
308
+<div id="outline-container-orgd646ced" class="outline-2">
309
+<h2 id="orgd646ced">Boot the laptop from the USB drive</h2>
310
+<div class="outline-text-2" id="text-orgd646ced">
311
+<p>
312
+You may need to alter the BIOS settings to get this to work reliably.
313
+</p>
314
+
315
+<div class="org-center">
316
+
317
+<div class="figure">
318
+<p><img src="images/bios_boot_usb.jpg" alt="bios_boot_usb.jpg" />
319
+</p>
320
+</div>
321
+</div>
322
+</div>
323
+</div>
324
+
325
+<div id="outline-container-orgfc4d060" class="outline-2">
326
+<h2 id="orgfc4d060">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
327
+<div class="outline-text-2" id="text-orgfc4d060">
328
+<p>
329
+Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
330
+</p>
331
+
332
+<div class="org-center">
333
+
334
+<div class="figure">
335
+<p><img src="images/port_forwarding.png" alt="port_forwarding.png" />
336
+</p>
337
+</div>
338
+</div>
339
+</div>
340
+</div>
341
+
342
+<div id="outline-container-org1de31c9" class="outline-2">
343
+<h2 id="org1de31c9">From another machine ssh into the laptop</h2>
344
+<div class="outline-text-2" id="text-org1de31c9">
345
+<div class="org-src-container">
346
+<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
347
+</pre>
348
+</div>
349
+
350
+<p>
351
+Or alternatively you can log in directly on the laptop. The initial username is <b>fbone</b> and the password is <b>freedombone</b>. You should make sure you write down or copy the new password when it is shown.
352
+</p>
353
+</div>
354
+</div>
355
+
356
+<div id="outline-container-org73f6c40" class="outline-2">
357
+<h2 id="org73f6c40">Follow the setup procedure</h2>
358
+<div class="outline-text-2" id="text-org73f6c40">
359
+<p>
360
+Enter your user details, domain name and dynamic DNS settings.
361
+</p>
362
+</div>
363
+</div>
364
+
365
+<div id="outline-container-org0c76d5c" class="outline-2">
366
+<h2 id="org0c76d5c">When installation is complete</h2>
367
+<div class="outline-text-2" id="text-org0c76d5c">
368
+<p>
369
+Navigate to your domain and register a new user.
370
+</p>
371
+
372
+<div class="org-center">
373
+
374
+<div class="figure">
375
+<p><img src="images/pleroma_register.jpg" alt="pleroma_register.jpg" />
376
+</p>
377
+</div>
378
+</div>
379
+
380
+<p>
381
+More details about setting up and using Pleroma <a href="./app_pleroma.html">can be found here</a>.
382
+</p>
383
+
384
+<div class="org-center">
385
+
386
+<div class="figure">
387
+<p><img src="images/tusky.jpg" alt="tusky.jpg" />
388
+</p>
389
+</div>
390
+</div>
391
+</div>
392
+</div>
393
+</div>
394
+<div id="postamble" class="status">
395
+
396
+<style type="text/css">
397
+.back-to-top {
398
+    position: fixed;
399
+    bottom: 2em;
400
+    right: 0px;
401
+    text-decoration: none;
402
+    color: #000000;
403
+    background-color: rgba(235, 235, 235, 0.80);
404
+    font-size: 12px;
405
+    padding: 1em;
406
+    display: none;
407
+}
408
+
409
+.back-to-top:hover {
410
+    background-color: rgba(135, 135, 135, 0.50);
411
+}
412
+</style>
413
+
414
+<div class="back-to-top">
415
+<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
416
+</div>
417
+</div>
418
+</body>
419
+</html>

+ 153
- 542
website/EN/usage_email.html
Plik diff jest za duży
Wyświetl plik


+ 201
- 0
website/EN/users.html Wyświetl plik

@@ -0,0 +1,201 @@
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
+<title></title>
7
+<!-- 2018-03-10 Sat 20:58 -->
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="Adding or removing users"
12
+ />
13
+<meta  name="keywords" content="freedombone, debian, beaglebone, users" />
14
+<style type="text/css">
15
+ <!--/*--><![CDATA[/*><!--*/
16
+  .title  { text-align: center; }
17
+  .todo   { font-family: monospace; color: red; }
18
+  .done   { color: green; }
19
+  .tag    { background-color: #eee; font-family: monospace;
20
+            padding: 2px; font-size: 80%; font-weight: normal; }
21
+  .timestamp { color: #bebebe; }
22
+  .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; }
26
+  .underline { text-decoration: underline; }
27
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
+  p.verse { margin-left: 3%; }
29
+  pre {
30
+    border: 1px solid #ccc;
31
+    box-shadow: 3px 3px 3px #eee;
32
+    padding: 8pt;
33
+    font-family: monospace;
34
+    overflow: auto;
35
+    margin: 1.2em;
36
+  }
37
+  pre.src {
38
+    position: relative;
39
+    overflow: visible;
40
+    padding-top: 1.2em;
41
+  }
42
+  pre.src:before {
43
+    display: none;
44
+    position: absolute;
45
+    background-color: white;
46
+    top: -10px;
47
+    right: 10px;
48
+    padding: 3px;
49
+    border: 1px solid black;
50
+  }
51
+  pre.src:hover:before { display: inline;}
52
+  pre.src-sh:before    { content: 'sh'; }
53
+  pre.src-bash:before  { content: 'sh'; }
54
+  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'; }
59
+
60
+  table { border-collapse:collapse; }
61
+  caption.t-above { caption-side: top; }
62
+  caption.t-bottom { caption-side: bottom; }
63
+  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; }
70
+  dt { font-weight: bold; }
71
+  .footpara:nth-child(2) { display: inline; }
72
+  .footpara { display: block; }
73
+  .footdef  { margin-bottom: 1em; }
74
+  .figure { padding: 1em; }
75
+  .figure p { text-align: center; }
76
+  .inlinetask {
77
+    padding: 10px;
78
+    border: 2px solid gray;
79
+    margin: 10px;
80
+    background: #ffffcc;
81
+  }
82
+  #org-div-home-and-up
83
+   { text-align: right; font-size: 70%; white-space: nowrap; }
84
+  textarea { overflow-x: auto; }
85
+  .linenr { font-size: smaller }
86
+  .code-highlighted { background-color: #ffff00; }
87
+  .org-info-js_info-navigation { border-style: none; }
88
+  #org-info-js_console-label
89
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
+  .org-info-js_search-highlight
91
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
92
+  /*]]>*/-->
93
+</style>
94
+<link rel="stylesheet" type="text/css" href="freedombone.css" />
95
+<script type="text/javascript">
96
+/*
97
+@licstart  The following is the entire license notice for the
98
+JavaScript code in this tag.
99
+
100
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
101
+
102
+The JavaScript code in this tag is free software: you can
103
+redistribute it and/or modify it under the terms of the GNU
104
+General Public License (GNU GPL) as published by the Free Software
105
+Foundation, either version 3 of the License, or (at your option)
106
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
107
+without even the implied warranty of MERCHANTABILITY or FITNESS
108
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
109
+
110
+As additional permission under GNU GPL version 3 section 7, you
111
+may distribute non-source (e.g., minimized or compacted) forms of
112
+that code without the copy of the GNU GPL normally required by
113
+section 4, provided you include this license notice and a URL
114
+through which recipients can access the Corresponding Source.
115
+
116
+
117
+@licend  The above is the entire license notice
118
+for the JavaScript code in this tag.
119
+*/
120
+<!--/*--><![CDATA[/*><!--*/
121
+ function CodeHighlightOn(elem, id)
122
+ {
123
+   var target = document.getElementById(id);
124
+   if(null != target) {
125
+     elem.cacheClassElem = elem.className;
126
+     elem.cacheClassTarget = target.className;
127
+     target.className = "code-highlighted";
128
+     elem.className   = "code-highlighted";
129
+   }
130
+ }
131
+ function CodeHighlightOff(elem, id)
132
+ {
133
+   var target = document.getElementById(id);
134
+   if(elem.cacheClassElem)
135
+     elem.className = elem.cacheClassElem;
136
+   if(elem.cacheClassTarget)
137
+     target.className = elem.cacheClassTarget;
138
+ }
139
+/*]]>*///-->
140
+</script>
141
+</head>
142
+<body>
143
+<div id="preamble" class="status">
144
+<a name="top" id="top"></a>
145
+</div>
146
+<div id="content">
147
+<h1 class="title"></h1>
148
+<div class="center">
149
+
150
+<div class="figure">
151
+<p><img src="images/logo.png" alt="logo.png" />
152
+</p>
153
+</div>
154
+</div>
155
+
156
+<p>
157
+Log into the system with:
158
+</p>
159
+
160
+<div class="org-src-container">
161
+
162
+<pre class="src src-bash">ssh username@domainname -p 2222
163
+</pre>
164
+</div>
165
+
166
+<p>
167
+Select <b>Administrator controls</b> then <b>User Management</b>.
168
+</p>
169
+
170
+
171
+<div class="figure">
172
+<p><img src="images/controlpanel/control_panel_manage_users.jpg" alt="control_panel_manage_users.jpg" />
173
+</p>
174
+</div>
175
+</div>
176
+<div id="postamble" class="status">
177
+
178
+<style type="text/css">
179
+.back-to-top {
180
+    position: fixed;
181
+    bottom: 2em;
182
+    right: 0px;
183
+    text-decoration: none;
184
+    color: #000000;
185
+    background-color: rgba(235, 235, 235, 0.80);
186
+    font-size: 12px;
187
+    padding: 1em;
188
+    display: none;
189
+}
190
+
191
+.back-to-top:hover {
192
+    background-color: rgba(135, 135, 135, 0.50);
193
+}
194
+</style>
195
+
196
+<div class="back-to-top">
197
+<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
198
+</div>
199
+</div>
200
+</body>
201
+</html>