TypeScript GPL-3.0

vanblog

A self-hosted blogging system with Markdown editing, a full admin dashboard, analytics, image hosting, comments, and automatic HTTPS.

M

Mereithhh

Dernière activité 17 sept. 2026
Mereithhh/vanblog

3,6 k

étoiles

502

forks

113

issues ouvertes

blognextjsnodejstypescript

Ce README est souvent en anglais.

English | 简体中文

VanBlog

A self-hosted personal blogging system with a complete admin dashboard, Markdown editing, built-in analytics, image hosting, and comments.

Latest release Docker pulls GitHub stars GitHub issues Release workflow GPL v3 license

Website & documentation · Live demo · Changelog

The demo admin username and password are both demo. The documentation and application interface are currently primarily in Chinese; internationalization is on the roadmap.

Preview

VanBlog public blog and admin dashboard

Features

  • A complete blogging system. A public blog, admin dashboard, and backend API, with responsive layouts and automatic light/dark modes for both readers and authors.
  • Static pages with incremental updates. The Next.js frontend uses static generation (SSG) and incremental static regeneration (ISR), so content changes do not require rebuilding every page. Pages are CDN-friendly, with lazy-loaded images, customizable article URLs, and support for SEO and accessibility.
  • Markdown publishing. A ByteMD editor with Mermaid diagrams, mathematical formulas, custom highlight blocks, an emoji picker, and a shortcut for the more marker. Upload local or clipboard images directly from the editor, import Markdown files, and manage posts and drafts in bulk.
  • Tools for readers. Tables of contents, code copying, categories, tags, search, password-protected articles and categories, friend links, donation links, custom navigation, and RSS feeds.
  • Built-in analytics. Visitor statistics and dashboards, plus support for Google Analytics and Baidu Analytics.
  • Integrated comments. Waline comments with email notifications and webhooks.
  • Image hosting. Built-in image storage and external storage through PicGo, including object storage and GitHub. Images can be compressed and watermarked on upload.
  • Customization. Layout settings, custom pages, and custom CSS, HTML, and JavaScript. Extensions can run custom code or call webhooks after selected events. A full theme system and plugin system remain planned work.
  • Collaboration and APIs. Collaborator accounts with configurable permissions, token management, and APIs for building a separate frontend or integrating another page generator.
  • Deployment and operations. A guided installation script, Docker deployment with AMD64 and ARM64 support, and automatic on-demand HTTPS certificate issuance and renewal through Caddy. The admin dashboard provides import/export, version and update notices, and access to login and Caddy logs.

Maintenance and releases

VanBlog uses an automated AI maintenance workflow to reproduce reported code issues, add regression tests, and open pull requests, with corresponding changelog and documentation updates. The maintainer remains responsible for merging into master and creating release tags. Issues and pull requests are welcome.

Product releases and deployments are triggered by v* tags; documentation deployments are triggered by doc* tags. The live demo and documentation site stay on their latest tagged versions, so they may not yet reflect changes on master.

If you encounter a problem, first check whether it is resolved in the latest published release.

Quick start

Install with the setup script

curl -L https://vanblog.mereith.com/vanblog.sh -o vanblog.sh && chmod +x vanblog.sh && ./vanblog.sh

If the documentation site is unavailable, use the GitHub raw mirror:

curl -L https://raw.githubusercontent.com/Mereithhh/vanblog/master/scripts/vanblog.sh -o vanblog.sh && chmod +x vanblog.sh && ./vanblog.sh

To run the script again later:

./vanblog.sh

For other deployment options, see the getting started guide. The default Docker Compose setup runs VanBlog and MongoDB as separate services.

Reverse proxies

See the reverse proxy guide.

Common questions

Development and contributions

VanBlog is a pnpm workspace with a Next.js/React frontend, a NestJS backend using MongoDB, and a Umi/Ant Design admin dashboard. See the development guide and changelog.

Open an issue to report a problem or suggest an improvement. Reproducible code issues enter the automated AI investigation and pull request workflow. Requests to add a site to the showcase are handled by the maintainer, who also handles merges and releases.

Roadmap

Themes and internationalization are long-standing goals for making VanBlog easier to adapt and use across communities. The following items are planned and are not a list of currently available features:

  • A custom theme / frontend renderer system
  • Internationalization (i18n)
  • A plugin system
  • Quick sharing buttons
  • Browser notifications
  • Revision history for posts and drafts
  • Simpler configuration, with more settings configurable at runtime
  • An ORM layer and support for additional databases

Expanding end-to-end test coverage is also ongoing; server tests and admin end-to-end tests already run for pull requests.

For the historical checklist of completed work, see the Chinese README.

Community

Community sites

These sites have been shared by the community. To add yours, open an issue.

Support the project

If VanBlog is useful to you, donations help support its maintenance. Include your preferred name with your donation if you would like to be listed below.

Donate with WeChat Pay Donate with Alipay

Donors

This historical list may be incomplete: some past records are missing. Please contact the maintainer if your donation was omitted.

Donor Amount (CNY) Date
Sirit 6.66 2022-09-01
jingcheng 100 2022-09-06
mosuzi 100 2022-09-08
ym679 20 2022-09-08
wangcw 100 2022-09-13
ziva 8.80 2022-09-15
Velen 50 2022-09-18
pcz 50 2022-10-19
fanyang 100 2025-06-12

Star history

Star History Chart

Lighthouse

A historical Lighthouse report is shown below. Results depend on the deployment, content, and test conditions.

Historical Lighthouse report

License

VanBlog is licensed under the GNU General Public License v3.0.

Projets similaires

A fast, simple & powerful blog framework, powered by Node.js.

TypeScripthacktoberfesthexojavascript
Hhexojs
41,8 k étoiles46

Independent technology for modern publishing, memberships, subscriptions and newsletters.

TypeScriptbloggingcmsghost
TTryGhost
55,5 k étoiles12 k

A PHP Blogging Platform. Simple and Powerful.

PHPblogmarkdownphp
Ttypecho
12,4 k étoiles2,1 k