Dorcs
Dorcs is a single-binary static documentation server for Markdown files. It is a simple and easy to use documentation server that allows you to create and host your documentation site in minutes.
Get Started
Ready to get started? Check out the Getting Started guide to have your documentation site running in under 5 minutes.
Or if you ready to get started now, download the latest release for your platform:
Documentation
- ๐ Getting Started - Complete quick start guide
- ๐ฆ Installation - Detailed installation instructions
- โ๏ธ Configuration - Customize your site with
dorcs.yaml - ๐ File Structure - Organize docs with languages and versions
- ๐ External Content - Serve content from external sources (GitHub, etc.)
- ๐ข Deployment - Deploy to production
- ๐จ Themes - Browse all available themes
- ๐ Markdown Features - Complete guide to markdown features
Features
- Single binary โ no runtime dependencies, statically linkable
- Extensionless URLs โ
/guide/getting-startedservesdocs/guide/getting-started.md - External Content Sources โ serve markdown files directly from GitHub repositories with automatic caching
- Multi-lingual support โ serve documentation in multiple languages with automatic language switching
- YAML front matter โ metadata support (title, description, date, tags, draft)
- Table of Contents โ auto-generated from headings with scrollspy
- Navigation sidebar โ built automatically from your folder structure
- Responsive design โ mobile-friendly with collapsible sidebar
- Dark mode โ automatic based on system preference
- Live reload โ watch mode for development with smart content updates
- Multiple themes โ choose from 20+ built-in themes
- Search โ built-in search functionality
- Edit Mode โ online editing with authentication (create, edit, delete files directly in the browser)
How It Works
URL Routing
dorcs uses extensionless URLs that map directly to your file structure:
| File Path | URL |
|---|---|
docs/index.md |
/ |
docs/getting-started.md |
/getting-started |
docs/guide/index.md |
/guide |
docs/guide/installation.md |
/guide/installation |
Multi-lingual URLs:
When multiple languages are configured, non-default languages use a language prefix:
| File Path | URL |
|---|---|
docs/en/index.md |
/ or /en/ |
docs/de/index.md |
/de/ |
docs/de/getting-started.md |
/de/getting-started |
docs/fr/guide/installation.md |
/fr/guide/installation |
The default language is served at the root URL (no prefix), while other languages use /{lang}/ prefixes.
Versioned URLs:
When versioning is configured, non-default versions use a version prefix:
| File Path | URL |
|---|---|
docs/v1/index.md |
/v1/ |
docs/v1/getting-started.md |
/v1/getting-started |
docs/en/v1/getting-started.md |
/en/v1/getting-started |
Combined (Languages + Versions):
When both are configured, URLs use language-first structure:
| File Path | URL |
|---|---|
docs/en/v1/getting-started.md |
/en/v1/getting-started |
docs/de/v1/getting-started.md |
/de/v1/getting-started |
See File Structure & Organization for complete details.
It will also automatically build navigation from your structure and generate a sidebar and a table of contents for each page.