No description
Find a file
2018-05-25 23:57:29 +02:00
config Initial import 2018-05-18 20:41:41 +02:00
data Add persistency to RabbitMQ via Docker 2018-05-21 13:00:17 +02:00
sass Initial import 2018-05-18 20:41:41 +02:00
static Fix the deploy build 2018-05-19 08:54:46 +02:00
templates Add theme color config item 2018-05-21 21:10:21 +02:00
tests Add persistency to RabbitMQ via Docker 2018-05-21 13:00:17 +02:00
utils Tweak the webfinger resolution 2018-05-25 23:57:29 +02:00
.dockerignore Tweak the Dockerfile 2018-05-21 12:30:55 +02:00
.env Tweak docker-compose to allow starting multiple instances 2018-05-21 11:53:58 +02:00
.gitignore Initial import 2018-05-18 20:41:41 +02:00
.travis.yml No data volumes for tests instances in Docker 2018-05-21 13:03:44 +02:00
activitypub.py Fix formatting 2018-05-21 17:29:31 +02:00
app.py Improve logging 2018-05-23 00:41:37 +02:00
config.py Tweak the webfinger resolution 2018-05-25 23:57:29 +02:00
dev-requirements.txt Fix dev requirements 2018-05-21 11:57:25 +02:00
docker-compose-dev.yml Initial import 2018-05-18 20:41:41 +02:00
docker-compose-tests.yml Improve the debug mode 2018-05-23 00:57:34 +02:00
docker-compose.yml Add persistency to RabbitMQ via Docker 2018-05-21 13:00:17 +02:00
Dockerfile Improve logging 2018-05-23 00:41:37 +02:00
LICENSE Initial import 2018-05-18 20:41:41 +02:00
Makefile Improve logging 2018-05-23 00:41:37 +02:00
README.md Tweak the webfinger resolution 2018-05-25 23:57:29 +02:00
requirements.txt Initial import 2018-05-18 20:41:41 +02:00
setup.cfg Initial import 2018-05-18 20:41:41 +02:00
tasks.py Initial import 2018-05-18 20:41:41 +02:00

microblog.pub

microblog.pub

Build Status License

A self-hosted, single-user, ActivityPub powered microblog.

Still in early development.

Features

  • Implements a basic ActivityPub server (with federation)
    • Compatible with Mastodon and others (Pleroma, Hubzilla...)
    • Also implements a remote follow compatible with Mastodon instances
  • Exposes your outbox as a basic microblog
  • Implements IndieAuth endpoints (authorization and token endpoint)
    • U2F support
    • You can use your ActivityPub identity to login to other websites/app
  • Admin UI with notifications and the stream of people you follow
  • Allows you to attach files to your notes
    • Privacy-aware image upload endpoint that strip EXIF meta data before storing the file
  • No JavaScript, that's it, even the admin UI is pure HTML/CSS
  • Easy to customize (the theme is written Sass)
    • mobile-friendly theme
    • with dark and light version
  • Microformats aware (exports h-feed, h-entry, h-cards, ...)
  • Exports RSS/Atom feeds
  • Comes with a tiny HTTP API to help posting new content and performing basic actions
  • Easy to "cache" (the external/public-facing microblog part)
    • With a good setup, cached content can be served most of the time
    • You can setup a "purge" hook to let you invalidate cache when the microblog was updated
  • Deployable with Docker

Running your instance

Installation

$ git clone
$ make css
$ cp -r config/me.sample.yml config/me.yml

Configuration

$ make password

Deployment

$ docker-compose up -d

Development

The most convenient way to hack on microblog.pub is to run the server locally, and run

# One-time setup
$ pip install -r requirements.txt
# Start the Celery worker, RabbitMQ and MongoDB
$ docker-compose -f docker-compose-dev.yml up -d
# Run the server locally
$ MICROBLOGPUB_DEBUG=1 FLASK_APP=app.py flask run -p 5005 --with-threads

Contributions

PRs are welcome, please open an issue to start a discussion before your start any work.