What it is
5000blogs is a single-binary server for serving markdown files. The project focus is on doing one thing well: serving static markdowns. It is opiniated towards blogs - with features like feed generation, author and date metadata, or social media previews. But can be used to serve all kinds of "a bunch of markdown files".
What it does
- Serves
.mdfiles as HTML pages with zero build step - Serves all other files next to your markdown files as-is
- Periodically rescans for new/changed/deleted posts (configurable cron)
- RSS 2.0 and Atom 1.0 feeds with tag/search filtering
- Full-text search via built-in indexing
- Auto-generated social media previews,
sitemap.xml,robots.txt - Git repositories as post sources (with SSH/token auth) - push changes, and 5000blogs updates automatically
- Wikilinks, tables, footnotes, and other CommonMark extensions
- Pluggable HTML templates and JS plugins
- REST API for programmatic access
Quick start
# config.yml
blog_name: 'My Blog'
site_url: 'https://example.com'
paths:
posts: './posts'
docker run -p 8080:8080 \
-v ./config.yml:/config.yml:ro \
-v ./posts:/posts:ro \
ghcr.io/5000k/5000blogs:latest
Put .md files in ./posts/ - they appear on your blog instantly.
Documentation
| Topic | Description |
|---|---|
| Setup: Docker | Run with Docker and Docker Compose |
| Setup: Binary | Build or download and run locally |
| Configuration | All config keys, env vars, defaults |
| Sources | Filesystem and Git post sources |
| Writing Posts | Front matter, slugs, special posts |
| Markdown | CommonMark and available extensions |
| Feeds | RSS 2.0 and Atom 1.0 configuration |
| Templates | HTML template engine and data contract |
| OG Images | Auto-generated Open Graph images |
| API | REST API reference |
| Plugins | JavaScript plugins |