pub, a tiny ActivityPub to Mastodon bridge
What is pub?
pub
is an ActivityPub host intended for a single actor.
To interact with ActivityPub, pub
implements the Mastodon1 api for use with various apps.
pub
is not intended to host an ActivityPub community, rather it is aimed at enabling someone who owns their own domain, and thus controls their identity, to participate in the fediverse.
What doesn't it do?
pub
doesn't have much of a web interface beyond what ActivityPub requires, you're expected to interact with it via a Mastodon compatible app.
Getting started
Warning: pub
is still in development, if it breaks, you can keep the pieces.
Pre-requisites
Installation (MySQL/MariaDB)
Create a database and user for pub
:
CREATE DATABASE pub;
CREATE USER 'pub'@'localhost' IDENTIFIED BY 'pub';
GRANT ALL PRIVILEGES ON pub.* TO 'pub'@'localhost';
Install pub
:
For Mysql/MariaDB
go install -tags mysql github.com/davecheney/pub@latest
For Sqlite
go install -tags sqlite github.com/davecheney/pub@latest
Create/migrate the database:
pub --dsn 'pub:pub@/pub' auto-migrate
Setup
Create an instance for pub
:
pub --dsn 'pub:pub@/pub' create-instance --domain domain.com --title "Something cool" --description "Something witty" --admin-email [email protected]
This will create an instance, and an admin account for that instance.
Create your first user
pub --dsn 'pub:pub@/pub' create-account --email [email protected] --name you --domain domain.com --password sssh
This will create an account for you to act as acct:[email protected]
Running
Start pub
:
pub --log-http --dsn 'pub:pub@/pub' serve
Getting online
pub
doesn't have a web interface, so you'll need to use a Mastodon app to interact with it.
You'll need to put pub
behind a reverse proxy, and configure the reverse proxy to forward requests to pub
.
TLS is also required, so you'll need to configure TLS for your reverse proxy, probably using Let's Encrypt.
See the examples directory for sample configurations for nginx.
Acknowledgements
pub
would not be possible without these amazing projects:
Contribution policy
pub
is currently open to code contributions for bug fixes only.
This may change in the future, but at the moment please do not send pull requests with new features.
If you have a feature request, or a bug report, please open an issue.
If you're really adventurous, you can contact me via @[email protected]
.
Thank you in advance for your understanding.
Footnotes
-
Mastodon is a trademark of Mastodon gGmbh.
pub
is not affiliated with Mastodon gGmbH.pub
is not a Mastodon server.↩