{"id":22044760,"url":"https://github.com/artalkjs/artalk","last_synced_at":"2025-05-13T19:09:51.459Z","repository":{"id":36980522,"uuid":"151233668","full_name":"ArtalkJS/Artalk","owner":"ArtalkJS","description":"🌌  Your Self-hosted Comment System. | 自托管评论系统","archived":false,"fork":false,"pushed_at":"2025-03-13T01:12:31.000Z","size":13637,"stargazers_count":1875,"open_issues_count":81,"forks_count":148,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-25T22:55:50.353Z","etag":null,"topics":["artalk","blog","comment-system","commenting","comments","comments-widget","components","go","golang","messenger","react","self-hosted","solidjs","telegram","typescript","ui-components","vanilla-js","vue"],"latest_commit_sha":null,"homepage":"https://artalk.js.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArtalkJS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"buy_me_a_coffee":"artalk","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://afdian.com/a/artalk"]}},"created_at":"2018-10-02T09:53:12.000Z","updated_at":"2025-04-25T16:18:37.000Z","dependencies_parsed_at":"2023-11-11T21:03:09.278Z","dependency_job_id":"0b691b0c-ddfd-40a5-8af9-f36c6769534b","html_url":"https://github.com/ArtalkJS/Artalk","commit_stats":{"total_commits":1381,"total_committers":35,"mean_commits":"39.457142857142856","dds":0.2425778421433744,"last_synced_commit":"1e36d45ec356188fe8f3e321520d6d820b3a6738"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtalkJS%2FArtalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtalkJS%2FArtalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtalkJS%2FArtalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtalkJS%2FArtalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArtalkJS","download_url":"https://codeload.github.com/ArtalkJS/Artalk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250907700,"owners_count":21506069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artalk","blog","comment-system","commenting","comments","comments-widget","components","go","golang","messenger","react","self-hosted","solidjs","telegram","typescript","ui-components","vanilla-js","vue"],"created_at":"2024-11-30T13:08:18.315Z","updated_at":"2025-04-25T22:55:59.845Z","avatar_url":"https://github.com/ArtalkJS.png","language":"Go","funding_links":["https://buymeacoffee.com/artalk","https://afdian.com/a/artalk"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/22412567/171680920-6e74b77c-c565-487b-bff1-4f94976ecbe7.png\" alt=\"Artalk\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n# Artalk\n\n[![npm version](https://img.shields.io/npm/v/artalk.svg?style=flat-square)](https://www.npmjs.com/package/artalk)\n[![npm downloads](https://img.shields.io/npm/dt/artalk.svg?style=flat-square)](https://www.npmjs.com/package/artalk)\n[![Docker Pulls](https://img.shields.io/docker/pulls/artalk/artalk-go?style=flat-square)](https://hub.docker.com/r/artalk/artalk-go)\n[![Go Reference](https://pkg.go.dev/badge/github.com/artalkjs/artalk/v2.svg)](https://pkg.go.dev/github.com/artalkjs/artalk/v2)\n[![Go Report Card](https://goreportcard.com/badge/github.com/ArtalkJS/Artalk?style=flat-square)](https://goreportcard.com/report/github.com/ArtalkJS/Artalk)\n[![CircleCI](https://img.shields.io/circleci/build/gh/ArtalkJS/Artalk?style=flat-square)](https://circleci.com/gh/ArtalkJS/Artalk/tree/master)\n[![Codecov](https://img.shields.io/codecov/c/gh/ArtalkJS/Artalk?style=flat-square)](https://codecov.io/gh/ArtalkJS/Artalk)\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/artalk?style=flat-square)](https://bundlephobia.com/package/artalk)\n\n[Homepage](https://artalk.js.org) • [Documentation](https://artalk.js.org/en/guide/deploy.html) • [Latest Release](https://github.com/ArtalkJS/Artalk/releases) • [Changelog](https://github.com/ArtalkJS/Artalk/blob/master/CHANGELOG.md) • [简体中文](./README.zh.md)\n\nArtalk is an intuitive yet feature-rich comment system, ready for immediate deployment into any blog, website, or web application.\n\n- 🍃 Client ~40KB, crafted with pure Vanilla JS, framework-agnostic\n- 🍱 Server powered by Golang, offering efficient and lightweight cross-platform performance\n- 🐳 One-click deployment via Docker, ensuring ease and speed\n- 🌈 Open-source software, self-hosted with privacy as a priority\n\n## Features\n\n\u003c!-- prettier-ignore-start --\u003e\n\n\u003c!-- features --\u003e\n* [Sidebar](https://artalk.js.org/guide/frontend/sidebar.html): Quick management, intuitive browsing\n* [Social Login](https://artalk.js.org/guide/frontend/auth.html): Fast login via social accounts\n* [Email Notification](https://artalk.js.org/guide/backend/email.html): Various sending methods, email templates\n* [Diverse Push](https://artalk.js.org/guide/backend/admin_notify.html): Multiple push methods, notification templates\n* [Site Notification](https://artalk.js.org/guide/frontend/sidebar.html): Red dot marks, mention list\n* [Captcha](https://artalk.js.org/guide/backend/captcha.html): Various verification types, frequency limits\n* [Comment Moderation](https://artalk.js.org/guide/backend/moderator.html): Content detection, spam interception\n* [Image Upload](https://artalk.js.org/guide/backend/img-upload.html): Custom upload, supports image hosting\n* [Markdown](https://artalk.js.org/guide/intro.html): Supports Markdown syntax\n* [Emoji Pack](https://artalk.js.org/guide/frontend/emoticons.html): Compatible with OwO, quick integration\n* [Multi-Site](https://artalk.js.org/guide/backend/multi-site.html): Site isolation, centralized management\n* [Admin](https://artalk.js.org/guide/backend/multi-site.html): Password verification, badge identification\n* [Page Management](https://artalk.js.org/guide/frontend/sidebar.html): Quick view, one-click title navigation\n* [Page View Statistics](https://artalk.js.org/guide/frontend/pv.html): Easily track page views\n* [Hierarchical Structure](https://artalk.js.org/guide/frontend/config.html#nestmax): Nested paginated list, infinite scroll\n* [Comment Voting](https://artalk.js.org/guide/frontend/config.html#vote): Upvote or downvote comments\n* [Comment Sorting](https://artalk.js.org/guide/frontend/config.html#listsort): Various sorting options, freely selectable\n* [Comment Search](https://artalk.js.org/guide/frontend/sidebar.html): Quick comment content search\n* [Comment Pinning](https://artalk.js.org/guide/frontend/sidebar.html): Pin important messages\n* [View Author Only](https://artalk.js.org/guide/frontend/config.html): Show only the author's comments\n* [Comment Jump](https://artalk.js.org/guide/intro.html): Quickly jump to quoted comment\n* [Auto Save](https://artalk.js.org/guide/frontend/config.html): Content loss prevention\n* [IP Region](https://artalk.js.org/guide/frontend/ip-region.html): Display user's IP region\n* [Data Migration](https://artalk.js.org/guide/transfer.html): Free migration, quick backup\n* [Image Lightbox](https://artalk.js.org/guide/frontend/lightbox.html): Quick integration of image lightbox\n* [Image Lazy Load](https://artalk.js.org/guide/frontend/img-lazy-load.html): Lazy load images, optimize experience\n* [Latex](https://artalk.js.org/guide/frontend/latex.html): Integrate Latex formula parsing\n* [Night Mode](https://artalk.js.org/guide/frontend/config.html#darkmode): Switch to night mode\n* [Extension Plugin](https://artalk.js.org/develop/plugin.html): Create more possibilities\n* [Multi-Language](https://artalk.js.org/guide/frontend/i18n.html): Switch between multiple languages\n* [Command Line](https://artalk.js.org/guide/backend/config.html): Command line operation management\n* [API Documentation](https://artalk.js.org/http-api.html): Provides OpenAPI format documentation\n* [Program Upgrade](https://artalk.js.org/guide/backend/update.html): Version check, one-click upgrade\n\u003c!-- /features --\u003e\n\n\u003c!-- prettier-ignore-end --\u003e\n\n## Installation\n\nDeploy Artalk Server with Docker in one step:\n\n```bash\ndocker run -d \\\n    --name artalk \\\n    -p 8080:23366 \\\n    -v $(pwd)/data:/data \\\n    -e \"TZ=America/New_York\" \\\n    -e \"ATK_LOCALE=en\" \\\n    -e \"ATK_SITE_DEFAULT=Artalk Blog\" \\\n    -e \"ATK_SITE_URL=https://example.com\" \\\n    artalk/artalk-go\n```\n\nIntegrate Artalk Client into your webpage:\n\n\u003c!-- prettier-ignore-start --\u003e\n\n```ts\nArtalk.init({\n  el:      '#Comments',\n  site:    'Artalk Blog',\n  server:  'https://artalk.example.com',\n  pageKey: '/2018/10/02/hello-world.html'\n})\n```\n\n\u003c!-- prettier-ignore-end --\u003e\n\nWe offer various installation methods, including binary files, go install, and package managers for Linux distributions.\n\n[**Learn More →**](https://artalk.js.org/en/guide/deploy.html)\n\n## For Developers\n\nPull requests are welcome!\n\nSee [Development](https://artalk.js.org/en/develop/) and [Contributing](./CONTRIBUTING.md) for information on working with the codebase, getting a local development setup, and contributing changes.\n\n## Contributors\n\nYour contributions enrich the open-source community, fostering learning, inspiration, and innovation. We deeply value your involvement. Thank you for being a vital part of our community! 🥰\n\n[![](https://contrib.rocks/image?repo=ArtalkJS/Artalk)](https://github.com/ArtalkJS/Artalk/graphs/contributors)\n\n## Supporters\n\n[![Stargazers repo roster for @ArtalkJS/Artalk](https://reporoster.com/stars/ArtalkJS/Artalk)](https://github.com/ArtalkJS/Artalk/stargazers)\n\n## Repobeats Analytics\n\n![Alt](https://repobeats.axiom.co/api/embed/a9fc9191ac561bc5a8ee2cddc81e635ecaebafb6.svg 'Repobeats analytics image')\n\n## Stargazers over time\n\n\u003ca href=\"https://trendshift.io/repositories/6290\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/6290\" alt=\"ArtalkJS%2FArtalk | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\n[![Stargazers over time](https://starchart.cc/ArtalkJS/Artalk.svg)](https://starchart.cc/ArtalkJS/Artalk)\n\n## License\n\n[MIT](./LICENSE)\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FArtalkJS%2FArtalk.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FArtalkJS%2FArtalk?ref=badge_shield)\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FArtalkJS%2FArtalk.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FArtalkJS%2FArtalk?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartalkjs%2Fartalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartalkjs%2Fartalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartalkjs%2Fartalk/lists"}