0ef2f1f89d
Ran into this issue twice quite by accident with fat-fingering copy/paste on my phone. If there is any whitespace in front of or trailing after the lookup query, it returns an "Unexpected error". Stripping the string is the quick and dirty way to clean it. I hate modifying the same function argument name in place like that, but it is valid Python. If you want me to assign it to a separate variable and replace all the references of "query", let me know. Thanks! |
||
---|---|---|
alembic | ||
app | ||
data | ||
docs | ||
misc | ||
scripts | ||
tests | ||
.build.yml | ||
.dockerignore | ||
.flake8 | ||
.gitignore | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
README.md | ||
alembic.ini | ||
boussole.json | ||
docker-compose.yml | ||
poetry.lock | ||
pyproject.toml | ||
tasks.py |
README.md
microblog.pub
A self-hosted, single-user, ActivityPub powered microblog.
Instances in the wild:
- microblog.pub (follow to get updated about the project)
- hexa.ninja (theme customization example)
- testing.microblog.pub
There are still some rough edges, but the server is mostly functional.
Features
- Implements the ActivityPub server to server protocol
- Federate with all the other popular ActivityPub servers like Pleroma, PixelFed, PeerTube, Mastodon...
- Consume most of the content types available (notes, articles, videos, pictures...)
- Exposes your ActivityPub profile as a minimalist microblog
- Author notes in Markdown, with code highlighting support
- Dedicated section for articles/blog posts (enabled when the first article is posted)
- Lightweight
- Uses SQLite, and no external dependencies except Python 3.10+
- Can be deployed on small VPS
- Privacy-aware
- EXIF metadata (like GPS location) are stripped before storage
- Every media is proxied through the server
- Strict access control for your outbox enforced via HTTP signature
- No Javascript
- The UI is pure HTML/CSS
- Except tiny bits of hand-written JS in the note composer to insert emoji and add alt text to images
- IndieWeb citizen
- IndieAuth support (OAuth2 extension)
- Microformats everywhere
- Micropub support
- Sends and processes Webmentions
- RSS/Atom/JSON feed
- Easy to backup
- Everything is stored in the
data/
directory: config, uploads, secrets and the SQLite database.
- Everything is stored in the
Getting started
Check out the online documentation.
Credits
- Emoji from Twemoji
- Awesome custom goose emoji from @pamela@bsd.network
Contributing
All the development takes place on sourcehut, GitHub is only used as a mirror:
Contributions are welcomed, check out the documentation for more details.
License
The project is licensed under the GNU AGPL v3 LICENSE (see the LICENSE file).