Categories
Self-Hosted Blogging Static Sites Discussion Community Engagement Comment System Content ModerationStars
Forks
Watchers
Developer links
Waline
Any blog, documentation site, or static website can host a complete comment section by running its own Waline server, with Markdown, emoji, reactions, and moderation tools included. A visitor writes as a guest, registers an account, or signs in with GitHub, Twitter, Facebook, Weibo, or QQ, and a live preview shows the formatting before anything is posted. Comments accept tables, strikethrough, highlighted code blocks, TeX formulas, custom emoji packs, and Giphy GIF search. On submission, a sanitizer strips scripts and styles while Akismet, per-IP rate limits, keyword and IP block lists, duplicate detection, and reCAPTCHA or Turnstile screen for spam, and an optional review queue holds the comment back until a moderator approves it. The site owner then hears about it by email, WeChat, QQ, Telegram, PushPlus, Discord, or Lark, and the commenter receives reply emails. Once published, readers react with up to nine emoji and sort threads by latest, oldest, or hottest, while pageview and comment counters can appear anywhere on a site and recent-comment and top-commenter widgets fill sidebars. Moderators edit, approve, flag, or delete from the web admin panel, manage users and custom labels, and import earlier discussions from Disqus, Twikoo, Valine, Typecho, Artalk, Commento, or WordPress. Comments stay in your own database, and the widget offers a dark theme and ten languages. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. GPL-2.0 licensed.
Benefits
- Keep every comment under your control
- Comments, users, and reactions live in your own SQLite, MySQL, PostgreSQL, MongoDB, or TiDB database, so discussion history stays on your server and can be exported or migrated whenever you choose.
- Switch from Disqus without losing threads
- The admin Migration page imports comment exports from Disqus, Twikoo, Valine, Typecho, Artalk, Commento, and WordPress, so existing discussions follow you to a server you control.
- Spam handled without extra services
- Akismet, per-IP rate limits, keyword and IP block lists, duplicate detection, reCAPTCHA or Turnstile, and an optional approval queue work out of the box to keep discussions clean.
- Notifications in the apps you use
- New comments and replies reach you by email, WeChat, QQ, Telegram, PushPlus, Discord, or Lark, and commenters can receive reply emails, so conversations keep moving after the first post.
Features
- Rich Markdown Comments
- CommonMark with GFM tables, strikethrough, highlighted code, TeX formulas, subscript, superscript, custom emoji packs, and Giphy GIF search, with a live preview before posting.
- Reactions and Counters
- Up to nine article reactions, pageview counting, and comment counting for any page, with comments sortable by latest, oldest, or hottest.
- Built-in Admin Panel
- A web console at /ui lets moderators edit, approve, flag, or delete comments, manage users and labels, and import or export data; the first registered account becomes administrator.
- Layered Spam Defense
- Akismet, IP frequency limits, keyword and IP lists, duplicate checks, reCAPTCHA or Turnstile, an optional review queue, and server-side DOMPurify sanitizing of every submitted comment.
- Multi-Channel Notifications
- Email through SMTP plus WeChat, QQ, Telegram, PushPlus, Discord, and Lark alerts, with customizable templates for the site owner and reply emails for commenters.
- Flexible Storage and Deploy
- Choose SQLite, MySQL, PostgreSQL, MongoDB, or TiDB through environment variables and run the server from the lizheming/waline Docker image on port 8360.