Sign inSign up

sorpaas/microblogpub

By sorpaas

•Updated over 5 years ago

Image
1

192

sorpaas/microblogpub repository overview

⁠microblog.pub

microblog.pub

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

Build Status #microblog.pub on Matrix License Code style: black

Still in early development/I do not recommend to run an instance yet.

⁠Features

  • Implements a basic ActivityPub⁠ server (with federation)
    • S2S (Server to Server) and C2S (Client to Server) protocols
    • Compatible with Mastodon⁠ and others (Pleroma⁠, Misskey, Plume, PixelFed, Hubzilla...)
  • Exposes your outbox as a basic microblog
    • Support all content types from the Fediverse (Note, Article, Page, Video, Image, Question...)
    • Markdown support
    • Server-side code syntax highlighting
  • Comes with an admin UI with notifications and the stream of people you follow
    • Private "bookmark" support
    • List support
    • Allows you to attach files to your notes
    • Custom emojis support
  • Cares about your privacy
    • The image upload endpoint strips EXIF meta data before storing the file
    • Every attachment/media is cached (or proxied) by the server
  • No JavaScript, that's it. Even the admin UI is pure HTML/CSS
    • (well except for the Emoji picker within the admin, but it's only few line of hand-written JavaScript)
  • Easy to customize (the theme is written Sass)
    • mobile-friendly theme
    • with dark and light version
  • IndieWeb citizen
    • Microformats aware (exports h-feed, h-entry, h-cards, ...)
      • Export a feed in the HTML that is WebSub compatible
    • Partial Micropub⁠ support (implementation report⁠)
    • Implements IndieAuth⁠ endpoints (authorization and token endpoint)
      • You can use your ActivityPub identity to login to other websites/app (with U2F support)
    • Send Webmentions⁠ to linked website (only for public notes)
    • Exports RSS/Atom/JSON⁠ feeds
    • You stream/timeline is also available in an (authenticated) JSON feed
  • Comes with a tiny HTTP API to help posting new content and and read your inbox/notifications
  • Deployable with Docker (Docker compose for everything: dev, test and deployment)
  • Focused on testing

⁠User Guide

Remember that microblog.pub is still in early development.

The easiest and recommended way to run microblog.pub in production is to use the provided docker-compose config.

First install Docker⁠ and Docker Compose⁠. Python is not needed on the host system.

Note that all the generated data (config included) will be stored on the host (i.e. not only in Docker) in config/ and data/.

⁠Installation
$ git clone https://github.com/tsileo/microblog.pub
$ cd microblog.pub
$ make config

Once the initial configuration is done, you can still tweak the config by editing config/me.yml directly.

⁠Deployment

To spawn the docker-compose project (running this command will also update microblog.pub to latest and restart everything if it's already running):

$ make run

By default, the server will listen on localhost:5005 (http://localhost:5005⁠ should work if you're running locally).

For production, you need to setup a reverse proxy (nginx, caddy) to forward your domain to the local server (and check certbot⁠ for getting a free TLS certificate).

⁠Backup

The easiest way to backup all of your data is to backup the microblog.pub/ directory directly (that's what I do and I have been able to restore super easily). It should be safe to copy the directory while the Docker compose project is running.

⁠Development

The project requires Python3.7+.

The most convenient way to hack on microblog.pub is to run the Python server on the host directly, and evetything else in Docker.

# One-time setup (in a new virtual env)
$ pip install -r requirements.txt
# Start MongoDB and poussetaches
$ make poussetaches
$ env POUSSETACHES_AUTH_KEY="<secret-key>" docker-compose -f docker-compose-dev.yml up -d
# Run the server locally
$ FLASK_DEBUG=1 MICROBLOGPUB_DEBUG=1 FLASK_APP=app.py POUSSETACHES_AUTH_KEY="<secret-key>" flask run -p 5005 --with-threads

⁠Contributions

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

Tag summary

Content type

Image

Digest

Size

391.7 MB

Last updated

over 5 years ago

docker pull sorpaas/microblogpub