From 537248dbd738fbbacb517317ab56245b3f5d7e53 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 7 Nov 2017 22:22:37 +0000 Subject: [PATCH 1/3] Set encryption rounds low for use on low power devices --- src/freedombone-app-pleroma | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/freedombone-app-pleroma b/src/freedombone-app-pleroma index fef6e695..1b04c883 100755 --- a/src/freedombone-app-pleroma +++ b/src/freedombone-app-pleroma @@ -234,6 +234,11 @@ function pleroma_create_database { sed -i 's|watchers: []|watchers: [],|g' $pleroma_secret sed -i "/watchers: []/a url: [host: \"$PLEROMA_DOMAIN_NAME\", scheme: \"https\", port: 443]" $pleroma_secret sed -i 's|url: | url: |g' $pleroma_secret + if ! grep -q "pbkdf2_rounds" $pleroma_secret; then + sed -i '/config :logger/a config :comeonin, :pbkdf2_rounds, 1' $pleroma_secret + else + sed -i 's|pbkdf2_rounds.*|pbkdf2_rounds, 1|g' $pleroma_secret + fi cd $PLEROMA_DIR chown -R pleroma:pleroma * From 4a39e740b83166c18b95be827730754cf8b71bee Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 8 Nov 2017 12:54:36 +0000 Subject: [PATCH 2/3] Handle onion installs of pleroma --- src/freedombone-app-pleroma | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/freedombone-app-pleroma b/src/freedombone-app-pleroma index 1b04c883..31db299f 100755 --- a/src/freedombone-app-pleroma +++ b/src/freedombone-app-pleroma @@ -232,7 +232,11 @@ function pleroma_create_database { sed -i "/Pleroma.Web.Endpoint/a pubsub: [name: Pleroma.Web.PubSub, adapter: Phoenix.PubSub.PG2]," $pleroma_secret sed -i 's|pubsub: | pubsub: |g' $pleroma_secret sed -i 's|watchers: []|watchers: [],|g' $pleroma_secret - sed -i "/watchers: []/a url: [host: \"$PLEROMA_DOMAIN_NAME\", scheme: \"https\", port: 443]" $pleroma_secret + if [[ $ONION_ONLY == 'no' ]]; then + sed -i "/watchers: []/a url: [host: \"$PLEROMA_DOMAIN_NAME\", scheme: \"https\", port: 443]" $pleroma_secret + else + sed -i "/watchers: []/a url: [host: \"$PLEROMA_ONION_HOSTNAME\", scheme: \"http\", port: 80]" $pleroma_secret + fi sed -i 's|url: | url: |g' $pleroma_secret if ! grep -q "pbkdf2_rounds" $pleroma_secret; then sed -i '/config :logger/a config :comeonin, :pbkdf2_rounds, 1' $pleroma_secret @@ -455,6 +459,7 @@ function restore_local_pleroma { temp_restore_dir=/root/temppleroma pleroma_dir=$PLEROMA_DIR + PLEROMA_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_pleroma/hostname) function_check pleroma_create_database pleroma_create_database @@ -506,6 +511,7 @@ function restore_remote_pleroma { temp_restore_dir=/root/temppleroma pleroma_dir=$PLEROMA_DIR + PLEROMA_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_pleroma/hostname) function_check pleroma_create_database pleroma_create_database From 6e48db7f0f44674e4c14d2c310168cbe83532116 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 8 Nov 2017 14:35:39 +0000 Subject: [PATCH 3/3] Add pleroma documentation --- doc/EN/app_pleroma.org | 39 +++++ doc/EN/apps.org | 12 +- img/pleroma.jpg | Bin 0 -> 50632 bytes website/EN/app_pleroma.html | 323 ++++++++++++++++++++++++++++++++++++ website/EN/apps.html | 230 +++++++++++++------------ 5 files changed, 491 insertions(+), 113 deletions(-) create mode 100644 doc/EN/app_pleroma.org create mode 100644 img/pleroma.jpg create mode 100644 website/EN/app_pleroma.html diff --git a/doc/EN/app_pleroma.org b/doc/EN/app_pleroma.org new file mode 100644 index 00000000..5bdfcb04 --- /dev/null +++ b/doc/EN/app_pleroma.org @@ -0,0 +1,39 @@ +#+TITLE: +#+AUTHOR: Bob Mottram +#+EMAIL: bob@freedombone.net +#+KEYWORDS: freedombone, pleroma +#+DESCRIPTION: How to use Pleroma +#+OPTIONS: ^:nil toc:nil +#+HTML_HEAD: + +#+BEGIN_CENTER +[[file:images/logo.png]] +#+END_CENTER + +#+BEGIN_EXPORT html +
+

Pleroma

+
+#+END_EXPORT + +Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM. + +#+BEGIN_CENTER +[[file:images/pleroma.jpg]] +#+END_CENTER + +* Installation +Log into your system with: + +#+begin_src bash +ssh myusername@mydomain -p 2222 +#+end_src + +Using cursor keys, space bar and Enter key select *Administrator controls* and type in your password. + +Select *Add/Remove Apps* then *pleroma*. You will then be asked for a domain name and if you are using FreeDNS also the code for the domain which can be found under *Dynamic DNS* on the FreeDNS site (the random string from "/quick cron example/" which appears after /update.php?/ and before />>/). For more details on obtaining a domain and making it accessible via dynamic DNS see the [[./faq.html][FAQ]]. Typically the domain name you use will be a subdomain, such as /pleroma.mydomainname.net/. It will need to be a domain which you have bought somewhere and own and not one of the FreeDNS subdomains, otherwise you won't be able to get a SSL/TLS certificate for it. + +* Initial setup +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. + +Once you have done that then you can disable further registrations from the *Administrator control panel* by going to *App Settings* then *pleroma* then *Disable new account registrations*. This may take a while because the app gets recompiled afterwards. diff --git a/doc/EN/apps.org b/doc/EN/apps.org index d46d7daf..326a3cac 100644 --- a/doc/EN/apps.org +++ b/doc/EN/apps.org @@ -53,7 +53,7 @@ Modern looking blogging system. [[./app_ghost.html][How to use it]] * GNU Social -Federated social network. You can "/remote follow/" other users within the GNU Social federation. +Federated social network based on the OStatus protocol. You can "/remote follow/" other users within the GNU Social federation. [[./app_gnusocial.html][How to use it]] * Gogs @@ -115,10 +115,14 @@ Store files on your server and sync them with laptops or mobile devices. Include 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. [[./app_pihole.html][How to use it]] -* PostActiv -An alternative federated social networking system compatible with GNU Social. It includes some optimisations and fixes currently not available within the main GNU Social project. +* Pleroma +Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM. -[[./app_postactiv.html][How to use it]] +[[./app_pleroma.html][How to use it]] +* PostActiv +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. + +[[./app_postactiv.html][How to use it] * Profanity A shell based XMPP client which you can run on the Freedombone server via ssh. diff --git a/img/pleroma.jpg b/img/pleroma.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6bd9416fdb43374f59219ae3f3cd3c791f269c6 GIT binary patch literal 50632 zcmc$`1zc3m-#@ybC?O!Nq|%LmbScdui*$o@cehGO%Tm(P4FXb2DcuMQE+HVzE}hcc zHNJ|!`@6sAdH(l#-8&r4ygxagGiT1soS6fcuUmNI`k${sU$%P7Y>vwueIUj~?>N2(Yn>Yl+K%o~o*; za*OF1>na<`tEeh{cY=b0i%W<{$UsEIpv240tMorkm#qLibkw?QtJhHQ0H}B<*YHp- z+W}+%6u>oPv?zez3H91_6to*Rk;1#*1<3SU1OT8QrD&IvfLqs40I0XG-9~b@A6=3E zcj5KqcsTJRxlU6rM|>QHyI0MK?Q9O5^Aie}%4Ddyo?n%qLH1!8V%k-D@S%ihFYBR< zSAV4V_B99150stc^b%NI3kH2m{)hkoMHLwz3BK1XD+OkMITVEOZRLyVKhY}NU+J@J z;#nDLziRg1#Heron~J~GnEz+$Kegfau2`X>1wFq)UV+Mzzlm!(AAVy10G)(@?Vcp6 z#|NJ-KsOAF6GIT#4d#B$ z#PUZ1f8Z;}Jp1s!@lJC@J_vBEG?zX#;%@f>;nowOz2KL1VJlnYo> zba^qCUa^!xZN~Scs~+#ekzG@MsbZeh ze9@=B{U8Bf{2TN?w96aOlEa8)YV#h#WZ9UTfM4}^Pt!Mam57*Jl=kf(-9L!s-fxUD z(iW7L9eAr9C+!~|ik9JFNRelUOqQRI6)h$Pz90rs0y+1UTl_;4welYW0Dyw^4+a2O zSVccgDnH{)N1>K{g?|$RRT2gN-chM4y%IZfRcBw0oUZX?*IVS%uE1)wnGU31!@`i$CLV_ z-}qYY+oaX_Sbm(iJ0IV_pQ8yuDcC`&dpGwkCpV> z5`d!h2je6>N8yrs1ONy=DM7Zz=g1P3JRkg#Uqy_6+B5 zxcocML0%VHK@t+Zrl^a5{gEKxCf3g=eCGC~{!<-$nc=?$0EqRxD9$g+_7IM{ z6RBf1JdKkZOY%$G+p7=%TnkEEPR`dq7TUNXK{KvUTSk|y7-Wy9YNp0;v zbp^j?H&Oo6wSCvnvd@Q~P#${NF0JI6N$7D}*T$Nstn7p<+_?8$EGUcY142Lm96Tm| z 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 + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+

logo.png +

+
+
+ +
+

Pleroma

+
+ +

+Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM. +

+ +
+ +
+

pleroma.jpg +

+
+
+ +
+

Installation

+
+

+Log into your system with: +

+ +
+
ssh myusername@mydomain -p 2222
+
+
+ +

+Using cursor keys, space bar and Enter key select Administrator controls and type in your password. +

+ +

+Select Add/Remove Apps then pleroma. You will then be asked for a domain name and if you are using FreeDNS also the code for the domain which can be found under Dynamic DNS on the FreeDNS site (the random string from "quick cron example" which appears after update.php? and before >>). For more details on obtaining a domain and making it accessible via dynamic DNS see the FAQ. Typically the domain name you use will be a subdomain, such as pleroma.mydomainname.net. It will need to be a domain which you have bought somewhere and own and not one of the FreeDNS subdomains, otherwise you won't be able to get a SSL/TLS certificate for it. +

+
+
+ +
+

Initial setup

+
+

+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. +

+ +

+Once you have done that then you can disable further registrations from the Administrator control panel by going to App Settings then pleroma then Disable new account registrations. This may take a while because the app gets recompiled afterwards. +

+
+
+
+
+ + + + +
+ + diff --git a/website/EN/apps.html b/website/EN/apps.html index 843c3e34..0f1ef236 100644 --- a/website/EN/apps.html +++ b/website/EN/apps.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -264,9 +264,9 @@ The base install of the system just contains an email server and Mutt client, bu -
-

CryptPad

-
+
+

CryptPad

+

Collaborate on editing documents, presentations and source code, or vote on things. All with a good level of security.

@@ -276,9 +276,9 @@ Collaborate on editing documents, presentations and source code, or vote on thin

-
-

DLNA

-
+
+

DLNA

+

Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.

@@ -288,9 +288,9 @@ Enables you to use the system as a music server which any DLNA compatible device

-
-

Dokuwiki

-
+
+

Dokuwiki

+

A databaseless wiki system.

@@ -300,9 +300,9 @@ A databaseless wiki system.

-
-

Emacs

-
+
+

Emacs

+

If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.

@@ -312,9 +312,9 @@ If you use the Mutt client to read your email then this will set it up to use em

-
-

Etherpad

-
+
+

Etherpad

+

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.

@@ -324,9 +324,9 @@ Collaborate on creating documents in real time. Maybe you're planning a holiday

-
-

Friendica

-
+
+

Friendica

+

Federated social network system.

@@ -336,9 +336,9 @@ Federated social network system.

-
-

Ghost

-
+
+

Ghost

+

Modern looking blogging system.

@@ -348,11 +348,11 @@ Modern looking blogging system.

-
-

GNU Social

-
+
+

GNU Social

+

-Federated social network. You can "remote follow" other users within the GNU Social federation. +Federated social network based on the OStatus protocol. You can "remote follow" other users within the GNU Social federation.

@@ -360,9 +360,9 @@ Federated social network. You can "remote follow" other users within the

-
-

Gogs

-
+
+

Gogs

+

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 fork-and-pull workflow. If you can use Github then you can also use Gogs.

@@ -372,9 +372,9 @@ Lightweight git project hosting system. You can mirror projects from Github, or

-
-

HTMLy

-
+
+

HTMLy

+

Databaseless blogging system. Quite simple and with a markdown-like format.

@@ -384,9 +384,9 @@ Databaseless blogging system. Quite simple and with a markdown-like format.

-
-

Hubzilla

-
+
+

Hubzilla

+

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.

@@ -396,9 +396,9 @@ Web publishing platform with social network like features and good privacy contr

-
-

IRC Server (ngirc)

-
+
+

IRC Server (ngirc)

+

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.

@@ -408,18 +408,18 @@ Run your own IRC chat channel which can be secured with a password and accessibl

-
-

Jitsi Meet

-
+
+

Jitsi Meet

+

Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.

-
-

KanBoard

-
+
+

KanBoard

+

A simple kanban system for managing projects or TODO lists.

@@ -429,9 +429,9 @@ A simple kanban system for managing projects or TODO lists.

-
-

Key Server

-
+
+

Key Server

+

An OpenPGP key server for storing and retrieving GPG public keys.

@@ -441,9 +441,9 @@ An OpenPGP key server for storing and retrieving GPG public keys.

-
-

Koel

-
+
+

Koel

+

Access your music collection from any internet connected device.

@@ -453,9 +453,9 @@ Access your music collection from any internet connected device.

-
-

Lychee

-
+
+

Lychee

+

Make your photo albums available on the web.

@@ -465,9 +465,9 @@ Make your photo albums available on the web.

-
-

Mailpile

-
+
+

Mailpile

+

Modern email client which supports GPG encryption.

@@ -477,9 +477,9 @@ Modern email client which supports GPG encryption.

-
-

Matrix

-
+
+

Matrix

+

Multi-user chat with some security and moderation controls.

@@ -489,9 +489,9 @@ Multi-user chat with some security and moderation controls.

-
-

Mediagoblin

-
+
+

Mediagoblin

+

Publicly host video and audio files so that you don't need to use YouTube/Vimeo/etc.

@@ -501,9 +501,9 @@ Publicly host video and audio files so that you don't need to use YouTube/Vimeo/

-
-

Mumble

-
+
+

Mumble

+

The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.

@@ -513,9 +513,9 @@ The popular VoIP and text chat system. Say goodbye to old-fashioned telephony co

-
-

NextCloud

-
+
+

NextCloud

+

Store files on your server and sync them with laptops or mobile devices. Includes many plugins including videoconferencing and collaborative document editing.

@@ -525,9 +525,9 @@ Store files on your server and sync them with laptops or mobile devices. Include

-
-

PI-Hole

-
+
+

PI-Hole

+

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.

@@ -537,21 +537,33 @@ The black hole for web adverts. Block adverts at the domain name level within yo

-
-

PostActiv

-
+
+

Pleroma

+

-An alternative federated social networking system compatible with GNU Social. It includes some optimisations and fixes currently not available within the main GNU Social project. +Pleroma is an OStatus-compatible social networking server, compatible with GNU Social, PostActiv and Mastodon. It is high-performance and so is especially well suited for running on low power single board computers without much RAM.

-How to use it +How to use it

-
-

Profanity

-
+
+

PostActiv

+
+

+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. +

+ +

+[[./app_postactiv.html][How to use it] +

+
+
+
+

Profanity

+

A shell based XMPP client which you can run on the Freedombone server via ssh.

@@ -561,9 +573,9 @@ A shell based XMPP client which you can run on the Freedombone server via ssh.

-
-

Riot Web

-
+
+

Riot Web

+

A browser based user interface for the Matrix federated communications system, including WebRTC audio and video chat.

@@ -573,9 +585,9 @@ A browser based user interface for the Matrix federated communications system, i

-
-

SearX

-
+
+

SearX

+

A metasearch engine for customised and private web searches.

@@ -585,9 +597,9 @@ A metasearch engine for customised and private web searches.

-
-

tt-rss

-
+
+

tt-rss

+

Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via an onion address. Have "the right to read" 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.

@@ -597,9 +609,9 @@ Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via a

-
-

Syncthing

-
+
+

Syncthing

+

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.

@@ -609,9 +621,9 @@ Possibly the best way to synchronise files across all of your devices. Once it h

-
-

Tahoe-LAFS

-
+
+

Tahoe-LAFS

+

Robust and encrypted storage of files on one or more server.

@@ -621,9 +633,9 @@ Robust and encrypted storage of files on one or more server.

-
-

Tox

-
+
+

Tox

+

Client and bootstrap node for the Tox chat/VoIP system.

@@ -633,9 +645,9 @@ Client and bootstrap node for the Tox chat/VoIP system.

-
-

Turtl

-
+
+

Turtl

+

A system for privately creating and sharing notes and images, similar to Evernote but without the spying.

@@ -645,18 +657,18 @@ A system for privately creating and sharing notes and images, similar to Evernot

-
-

Vim

-
+
+

Vim

+

If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.

-
-

Virtual Private Network (VPN)

-
+
+

Virtual Private Network (VPN)

+

Set up a VPN on your server so that you can bypass local internet censorship.

@@ -666,9 +678,9 @@ Set up a VPN on your server so that you can bypass local internet censorship.

-
-

XMPP

-
+
+

XMPP

+

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 client state notification to save battery power on your mobile devices, support for seamless roaming between networks and message carbons so that you can receive the same messages while being simultaneously logged in to your account on more than one device.