All Projects → musingstudio → pherephone

musingstudio / pherephone

Licence: AGPL-3.0 license
An ActivityPub server that reblogs all the statuses of certain actors.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to pherephone

gotosocial
Golang fediverse server.
Stars: ✭ 400 (+1718.18%)
Mutual labels:  federation, activitystreams, activitypub
hanatachi
Hanatachi is a free, open-source social network server for federated blogging
Stars: ✭ 18 (-18.18%)
Mutual labels:  federation, activitystreams, activitypub
Plume
Federated blogging application, thanks to ActivityPub (now on https://git.joinplu.me/ — this is just a mirror)
Stars: ✭ 1,615 (+7240.91%)
Mutual labels:  federation, activitystreams, activitypub
pylodon
Flask-based ActivityPub server
Stars: ✭ 86 (+290.91%)
Mutual labels:  federation, activitystreams, activitypub
The Federation.info
Statistics hub for the Fediverse
Stars: ✭ 101 (+359.09%)
Mutual labels:  federation, activitypub
writefreely
A clean, Markdown-based publishing platform made for writers. Write together and build a community.
Stars: ✭ 2,866 (+12927.27%)
Mutual labels:  federation, activitypub
Reel2bits
Self-hosted Soundtracks and Podcasts sharing, with ActivityPub federation.
Stars: ✭ 128 (+481.82%)
Mutual labels:  federation, activitypub
Mobilizon
Gather, organize and mobilize yourselves with a convivial, ethical, and emancipating tool.
Stars: ✭ 164 (+645.45%)
Mutual labels:  federation, activitypub
Social
🎉 Social can be used for work, or to connect to the fediverse!
Stars: ✭ 302 (+1272.73%)
Mutual labels:  federation, activitypub
Misskey
🌎 An interplanetary microblogging platform 🚀
Stars: ✭ 2,244 (+10100%)
Mutual labels:  federation, activitypub
Pump.io
Social server with an ActivityStreams API
Stars: ✭ 2,091 (+9404.55%)
Mutual labels:  federation, activitystreams
Federation
Python library for abstracting social federation protocols
Stars: ✭ 93 (+322.73%)
Mutual labels:  federation, activitypub
Forgefed
An extension to ActivityPub for web-based Git services federation.
Stars: ✭ 874 (+3872.73%)
Mutual labels:  federation, activitypub
bookwyrm
Social reading and reviewing, decentralized with ActivityPub
Stars: ✭ 1,499 (+6713.64%)
Mutual labels:  federation, activitypub
Bookwyrm
Social reading and reviewing, decentralized with ActivityPub
Stars: ✭ 483 (+2095.45%)
Mutual labels:  federation, activitypub
Dolphin
🐬 A Lightweight ActivityPub Server
Stars: ✭ 158 (+618.18%)
Mutual labels:  federation, activitypub
cherrypick
🌎 A interplanetary communication platform 🚀
Stars: ✭ 40 (+81.82%)
Mutual labels:  federation, activitypub
beep-beep
Fictional p2p protocol
Stars: ✭ 34 (+54.55%)
Mutual labels:  federation, activitypub
Pixelfed
Photo Sharing. For Everyone.
Stars: ✭ 3,237 (+14613.64%)
Mutual labels:  federation, activitypub
Socialhome
A federated social home
Stars: ✭ 282 (+1181.82%)
Mutual labels:  federation, activitypub

Pherephone

A Pherephonon in Greek is someone who doesn't have his own voice and just repeats things other said. Pherephone is an ActivityPub relay. You set it up to follow a few accounts and it Announces everything they post.

How to run

Download the binary, edit config.ini and actors.json to your liking and run it. For the time being only the ActivityPub actor endpoint is supported. Usually the url of the user profile page will work. If it doesn't you will have to find it out using webfinger yourself. Here is an example on how to find my actor endpoint on fosstodon.

https://fosstodon.org/.well-known/webfinger?resource=acct:[email protected]

There's a -debug flag if you want more verbose output.

Actors configuration

{
    "writefreelyAndFriends" : {
        "summary": "a list of favorite writers",
        "follow": [
            "https://write.as/api/collections/blog",
            "https://writing.exchange/users/write_as"
        ]
    },
    "all_about_qwazix" : {
        "summary": "wanna stalk me?",
        "follow": [
            "https://pixelfed.social/users/qwazix",
            "https://print3d.social/users/qwazix",
            "https://mixt.qwazix.com/api/collections/qwazix",
            "https://fosstodon.org/api/collections/qwazix"
        ]
    }
}

Pherephone will create the accounts [email protected] and [email protected] and follow the users listed under each one. If you want to unfollow someone just remove any entry. Unfortunately json doesn't support comments so you'll have to delete it altogether. Mind the commas (there's no comma after the last entry)

Web server configuration and https

You will probably want to run it behind a reverse proxy with a Let's Encrypt certificate.

Here's the configuration for apache. You can find similar nginx configuration in the writefreely documentation

<VirtualHost *:443>
    ServerAdmin [email protected]
    ProxyRequests off
    DocumentRoot /var/www
    ProxyPreserveHost On

    ServerName pherephone.example.com

    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

    SSLEngine on
	SSLCertificateFile "/etc/letsencrypt/live/pherephone.example.com/fullchain.pem"
	SSLCertificateKeyFile "/etc/letsencrypt/live/pherephone.example.com/privkey.pem"

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    <Location />
        ProxyPass http://localhost:8081/
        ProxyPassReverse http://localhost:8081/
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

General Configuration

There are four configuration values in Pherephone

[general]

baseURL = https://example.com
storage = storage ; can be relative or absolute path
userAgent = "pherephone"
announce_replies = false ; whether to boost replies of followers by default

The baseURL which is, erm, self-explanatory. Set it to your (sub)domain. storage which is the path where pherephone will save its data. Pherephone only uses json files in a directory structure to save its data. userAgent just sets the user agent string reported by the software announce_replies controls whether pherephone will boost everything the actors it follows post or only original posts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].