Home
Softono

Pubgate

Open source BSD-3-Clause Python
115
Stars
8
Forks
18
Issues
8
Watchers
3 years
Last Commit

 About Pubgate

Lightweight ActivityPub federator

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Pubgate?

We provide expert installation service for this software. Our team will install, configure, and secure Pubgate on your server. plans start at just $30.

python_version

Asyncronous Lightweight ActivityPub API / CMS

Implements both the client-to-server(C2S) API and the federated server-to-server(S2S) API.

  • S2S compatible with Mastodon, Pixelfed, Pleroma and microblog.pub

Can do create / delete / un-/follow users / share / like / undo

The idea is to develop PubGate as CMS, which could be used same as WordPress - easy install on cheap hosting with customization by installing plugins and choosing themes. As far as it based on asynchronous python framework, which provides non-blocking delivery of AP objects to other instances, it supposed to be light and fast.

Support extensions (collects blueprints and tasks):

API documentation

Overview swagger docs example

More details at Postman documenter or download latest Postman collection

Deploy

Docker

Install Docker + Docker Compose

Shell

git clone https://github.com/autogestion/pubgate.git
cp -r config/extensions_sample_conf.cfg config/conf.cfg
Check/Edit config/conf.cfg to change setup of your instance

(registration status, title and description for UI App)

Then, instance could be started

domain=put-your-domain-here.com docker-compose up -d

This will install PubGate with extensions (marked * in list ). For custom configuration edit requirements/extensions.txt and config/conf.cfg . To install federator without extensions, empty requirements/extensions.txt and use config/base_sample_conf.cfg

Manual deploy on Android device

Guide from @traumschule

Could be used for manual install on Ubuntu/Debian as well

Install dory mongodb server and termux

In termux:

pkg install git python make
git clone https://github.com/autogestion/pubgate
pip install -r requirements/base.txt
pip install -r requirements/extensions.txt
cp config/extensions_sample_conf.cfg config/conf.cfg

edit config/conf.cfg and change example.com to ip address and https to http (for dev instance)

python run_api.py

Tests

python -m pytest tests/