MCPcopy
hub / github.com/umputun/remark42

github.com/umputun/remark42 @v1.16.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.16.1 ↗
1,783 symbols 6,844 edges 358 files 649 documented · 36%
README

Remark42 Build Status Image Size Go Report Card Coverage Status codecov

Remark42 is a self-hosted, lightweight and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles, or any other place where readers add comments.

  • Social login via Google, Facebook, Microsoft, GitHub, Apple, Yandex, Patreon, Discord, Telegram and custom OAuth2 providers
  • Login via email
  • Optional anonymous access
  • Multi-level nested comments with both tree and plain presentations
  • Import from Disqus and WordPress
  • Markdown support with friendly formatter toolbar
  • Moderator can remove comments and block users
  • Voting, pinning and verification system
  • Sortable comments
  • Images upload with drag-and-drop
  • Extractor for recent comments, cross-post
  • RSS for all comments and each post
  • Telegram, Slack, Webhook and email notifications for Admins (get notified for each new comment)
  • Email and Telegram notifications for users (get notified when someone responds to your comment)
  • Export data to JSON with automatic backups
  • No external databases, everything embedded in a single data file
  • Fully dockerized and can be deployed in a single command
  • Self-contained executable can be deployed directly to Linux, Windows and macOS
  • Clean, lightweight and customizable UI with white and dark themes
  • Multi-site mode from a single instance
  • Integration with automatic SSL (direct and via nginx-le)
  • Privacy focused

Demo site available with all authentication methods, including email auth and anonymous access.

Screenshots

Comments example:

For admin screenshots see Admin UI documentation

All remark42 documentation is available by the link.

Contribution

In order to start and work on the project locally in development mode check our contribution documentation for backend and frontend.

If you are interested in adding a new localization please check these docs.

Related projects

Extension points exported contracts — how you extend this code

Destination (Interface)
Destination defines interface for a given destination service, like telegram, email and so on [5 implementers]
backend/app/notify/notify.go
Client (Interface)
(no doc)
frontend/packages/api/lib/fetcher.ts
Props (Interface)
(no doc)
frontend/apps/remark42/app/components/comment-form/markdown-toolbar.tsx
Interface (Interface)
NOTE: matryer/moq should be installed globally and works with `go generate ./...` go:generate moq --out engine_mock.go . [4 …
backend/app/store/engine/engine.go
RequestRef (Interface)
(no doc)
frontend/packages/api/tests/test-utils.ts
FileEventTarget (Interface)
(no doc)
frontend/apps/remark42/app/components/comment-form/markdown-toolbar.tsx
Importer (Interface)
Importer defines interface to convert posts from external sources [4 implementers]
backend/app/migrator/migrator.go
Context (Interface)
(no doc)
frontend/packages/api/tests/lib/fetcher.test.ts

Core symbols most depended-on inside this repo

Close
called by 327
backend/app/rest/api/rest.go
Get
called by 176
backend/app/rest/api/rss.go
Do
called by 110
backend/app/migrator/backup.go
render
called by 100
frontend/apps/remark42/app/tests/utils.tsx
get
called by 92
backend/_example/memory_store/accessor/data.go
Run
called by 63
backend/app/rest/api/rest.go
Flag
called by 54
backend/app/store/engine/engine.go
Set
called by 50
backend/app/cmd/server.go

Shape

Function 934
Method 599
Struct 133
Interface 88
Class 18
TypeAlias 6
FuncType 3
Enum 2

Languages

Go74%
TypeScript26%

Modules by API surface

backend/app/cmd/server.go58 symbols
backend/app/store/service/service.go54 symbols
backend/app/store/service/service_test.go53 symbols
backend/app/rest/api/rest_private.go40 symbols
backend/app/store/engine/bolt.go37 symbols
backend/app/rest/api/rest_private_test.go34 symbols
backend/app/store/image/image.go33 symbols
backend/app/rest/api/rest_test.go31 symbols
backend/app/store/engine/bolt_test.go30 symbols
backend/app/rest/api/rest_public.go30 symbols
frontend/apps/remark42/app/common/api.ts28 symbols
backend/app/rest/api/rest.go28 symbols

Dependencies from manifests, versioned

cloud.google.com/go/compute/metadatav0.9.0 · 1×
github.com/Depado/bfchroma/v2v2.0.0 · 1×
github.com/alecthomas/chroma/v2v2.24.1 · 1×
github.com/andybalholm/cascadiav1.3.3 · 1×
github.com/aymerick/douceurv0.2.0 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/davecgh/go-spewv1.1.1 · 1×
github.com/dghubble/oauth1v0.7.3 · 1×
github.com/dlclark/regexp2v1.12.0 · 1×

For agents

$ claude mcp add remark42 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact