openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
- Python 48.7%
- HTML 29.5%
- CSS 13.1%
- JavaScript 8.7%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| openwrite | ||
| tests | ||
| .gitignore | ||
| CHANGELOG.md | ||
| env.example | ||
| LICENSE | ||
| MANIFEST.in | ||
| migrate.py | ||
| pyproject.toml | ||
| README.md | ||
| requirements-dev.txt | ||
| run.py | ||
| THIRD_PARTY_LICENSES.md | ||
openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
Features
- Multiple blogs per user(limit defined in .env)
- Single-blog mode
- Supports sqlite and mysql databases
- Upload images to local storage or bunny cdn
- Drafts
- Simple markdown editor in posting
- Discover section
- Privacy:
- Set if blog should be indexed in search engines
- Set if post should be listed in "Discover" section
- Set if username should appear in post page (anonymous posts)
- Lightweight
- No tracking, only data collected is anonymized(hashed) IP for post view counting and likes
- Custom CSS per blog
- Federation using ActivityPub protocol
- Likes system
- Posts importing from xml/csv
- Blog themes
- Gemini protocol
- Statistics per post
- Multilanguage (currently English and Polish)
- Custom favicon per blog
- Subpages per blog
- Valkey support
- Post tags, filtering
Installation
- To install openwrite, clone it with
pip:
pip install openwrite
- Then run:
openwrite init
- Answer few questions about your instance to generate .env and create all necessary directories.
- Run:
openwrite run
to run it in foreground or:
openwrite run -d
to run it in background.
- Default user is
adminwith passwordopenwrite. You can (and should!) change it in your dashboard. Enjoy!
Docker
Docker image is still being prepared. Stay tuned!
