5000blogs Documentation

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 .md files 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