🌌 A self-hosted comment system
简体中文 / Documentation / Releases / Artalk
- 🍃 Lightweight (~30kB)
- 👨👧👦 Secure (Self-hosted)
- 🐳 Easy to use (Very Easy)
- 🍱 Golang backend (Fast and Cross Platform)
- 🌊 TypeScript × Vanilla × Vite (No Dependencies)
- Sidebar: Multi-site centralized management
- Notification Center: Red badge alert / Mark as read
- Verification: User Verification Badge / Password access
- Moderation: Anti-spam detection / Captcha frequency limit
- Emoticons: Insert emoji / Quickly import presets
- Email Notify: Template customization / Send to multi-admin
- Site Isolation: Multi-site management / Admin assignment
- Page Management: Provide page title / Easy to look up
- Image Upload: Upload to localhost / various remote image host
- Private Space Mode: Only visible to yourself / Message board
- Multiple Msg Pushers: Support Telegram / Slack / LINE
- Nested Comments: Switchable to Flat Mode
- Comment Vote: For or against comments
- Comment Sort: Sort by popularity or time
- Comment PIN: Pin important comments
- Track only author: Show only author's comments
- Asynchronous: Send comments without waiting
- Infinite Scrolling: Provide various comment content pagination custom
- AutoSave: A anti-lost editor
- AutoFill: Autofill user profile
- Preview: Real-time preview of markdown
- Dark Mode: Prevents eye disease damage
- Collapse Comment: I do not want you to see this comment
- Data Backup: Prevent comment data loss
- Data Migration: Switch back and forth between different commenting systems
- Multiple comments on one page: Multiple comment areas on one page (seems useless
- Markdown: Markdown syntax was supported by default
- LaTex support: Import KaTex plugin to integrate LaTex parser for artalk
- Using Vite: The ultimate developer experience
Reference to:Documentation
$ pnpm add artalk
import Artalk from 'artalk'
Artalk.init({
el: '#Comments',
pageKey: 'http://your_domain/post/1', // Page Link
pageTitle: 'The title of your page', // Page Title
server: 'http://localhost:8080/api', // Server URL
site: 'Site Name',
locale: 'en'
})
docker run -d \
--name artalk \
-p 8080:23366 \
-v $(pwd)/data:/data \
artalk/artalk-go
mkdir Artalk
cd Artalk
vim docker-compose.yaml
version: '3.5'
services:
artalk:
container_name: artalk
image: artalk/artalk-go
ports:
- 8080:23366
volumes:
- ./data:/data
docker-compose up -d
see CONTRIBUTING.md
Thanks for the help and feedback provided by the community, if you have good suggestions or comments, please go to issues to let us know at any time.