2018-05-18 13:41:41 -05:00
|
|
|
# microblog.pub
|
|
|
|
|
|
|
|
<p align="center">
|
|
|
|
<img
|
|
|
|
src="https://sos-ch-dk-2.exo.io/microblogpub/microblobpub.png"
|
|
|
|
width="200" height="200" border="0" alt="microblog.pub">
|
|
|
|
</p>
|
|
|
|
<p align="center">
|
|
|
|
<a href="https://travis-ci.org/tsileo/microblog.pub"><img src="https://travis-ci.org/tsileo/microblog.pub.svg?branch=master" alt="Build Status"></a>
|
2018-05-20 05:28:11 -05:00
|
|
|
<a href="https://github.com/tsileo/microblog.pub/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-AGPL_3.0-blue.svg?style=flat" alt="License"></a>
|
2018-05-18 13:41:41 -05:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="center">A self-hosted, single-user, <a href="https://activitypub.rocks">ActivityPub</a> powered microblog.</p>
|
|
|
|
|
2018-05-20 05:28:11 -05:00
|
|
|
**Still in early development.**
|
|
|
|
|
2018-05-18 13:41:41 -05:00
|
|
|
## Features
|
|
|
|
|
|
|
|
- Implements a basic [ActivityPub](https://activitypub.rocks/) server (with federation)
|
|
|
|
- Compatible with [Mastodon](https://github.com/tootsuite/mastodon) and others (Pleroma, Hubzilla...)
|
|
|
|
- Also implements a remote follow compatible with Mastodon instances
|
2018-05-20 05:28:11 -05:00
|
|
|
- Exposes your outbox as a basic microblog
|
|
|
|
- Implements [IndieAuth](https://indieauth.spec.indieweb.org/) endpoints (authorization and token endpoint)
|
2018-05-18 13:41:41 -05:00
|
|
|
- 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
|
2018-05-20 05:28:11 -05:00
|
|
|
- Allows you to attach files to your notes
|
|
|
|
- Privacy-aware image upload endpoint that strip EXIF meta data before storing the file
|
2018-05-18 13:41:41 -05:00
|
|
|
- No JavaScript, that's it, even the admin UI is pure HTML/CSS
|
|
|
|
- Easy to customize (the theme is written Sass)
|
|
|
|
- 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
|
2018-05-21 10:23:54 -05:00
|
|
|
- Easy to "cache" (the external/public-facing microblog part)
|
2018-05-21 10:24:38 -05:00
|
|
|
- With a good setup, cached content can be served most of the time
|
2018-05-21 10:23:54 -05:00
|
|
|
- You can setup a "purge" hook to let you invalidate cache when the microblog was updated
|
2018-05-18 13:41:41 -05:00
|
|
|
- Deployable with Docker
|
|
|
|
|
|
|
|
## Running your instance
|
|
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ git clone
|
|
|
|
$ make css
|
2018-05-20 05:28:11 -05:00
|
|
|
$ cp -r config/me.sample.yml config/me.yml
|
2018-05-18 13:41:41 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
### Configuration
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ make password
|
|
|
|
```
|
|
|
|
|
|
|
|
### Deployment
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ docker-compose up -d
|
|
|
|
```
|
|
|
|
|
|
|
|
## Development
|
|
|
|
|
|
|
|
The most convenient way to hack on microblog.pub is to run the server locally, and run
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
# 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
|
|
|
|
$ 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.
|