Skip to content

📦 程序部署

Docker 部署

推荐使用 Docker 部署,需预先安装 Docker 引擎,服务器执行命令创建容器:

docker run -d \
    --name artalk-go \
    -p 8080:23366 \
    -v $(pwd)/data:/data \
    artalk/artalk-go
docker run -d \
    --name artalk-go \
    -p 8080:23366 \
    -v $(pwd)/data:/data \
    artalk/artalk-go

假设域名 http://your_domain 已正确添加 DNS 记录并指向你的服务器 IP

浏览器打开 http://your_domain:8080 将出现 Artalk 后台登陆界面。

执行命令创建管理员账户:

docker exec -it artalk-go artalk admin
docker exec -it artalk-go artalk admin

在你的网站引入 Artalk 程序内嵌的的前端 CSS、JS 资源并初始化:

注:将 http://your_domain:8080 改为你的服务器域名,或使用 公共 CDN 资源

<!-- CSS -->
<link href="http://your_domain:8080/dist/Artalk.css" rel="stylesheet">

<!-- JS -->
<script src="http://your_domain:8080/dist/Artalk.js"></script>

<!-- Artalk -->
<div id="Comments"></div>
<script>
new Artalk({
  el:        '#Comments',                // 绑定元素的 Selector
  pageKey:   '/post/1',                  // 固定链接 (留空自动获取)
  pageTitle: '关于引入 Artalk 的这档子事',  // 页面标题 (留空自动获取)
  server:    'http://your_domain:8080',  // 后端地址
  site:      'Artalk 的博客',             // 你的站点名
})
</script>
<!-- CSS -->
<link href="http://your_domain:8080/dist/Artalk.css" rel="stylesheet">

<!-- JS -->
<script src="http://your_domain:8080/dist/Artalk.js"></script>

<!-- Artalk -->
<div id="Comments"></div>
<script>
new Artalk({
  el:        '#Comments',                // 绑定元素的 Selector
  pageKey:   '/post/1',                  // 固定链接 (留空自动获取)
  pageTitle: '关于引入 Artalk 的这档子事',  // 页面标题 (留空自动获取)
  server:    'http://your_domain:8080',  // 后端地址
  site:      'Artalk 的博客',             // 你的站点名
})
</script>

在评论框输入管理员的用户名和邮箱,控制台入口按钮将出现在评论框右下角位置。

在控制台,你可以根据喜好配置评论系统、将评论迁移到 Artalk

祝贺!你已成功完成 Artalk 部署 🥳

普通方式部署

  1. 前往 GitHub Release 下载程序压缩包

  2. 提取压缩包:tar -zxvf artalk-go_版本号_系统_架构.tar.gz

  3. 运行程序 ./artalk-go server

  4. 前端配置

    new Artalk({ server: "http://your_domain:23366" })
    
    new Artalk({ server: "http://your_domain:23366" })
    

其它可选操作:

附表:文件名释义表

文件名操作系统CPU 架构
artalk-go_linux_amd64.tar.gzLinuxx86_64
artalk-go_linux_arm64.tar.gzLinuxARM64
artalk-go_linux_arm7.tar.gzLinuxARMv7
artalk-go_windows_amd64.zipWindowsx86_64
artalk-go_darwin_arm64.tar.gzmacOSApple Silicon
artalk-go_darwin_amd64.tar.gzmacOSIntel Chip (什么狗屎)

Docker Compose 部署

提供 docker-compose.yaml 文件可供参考:

version: "3.5"
services:
  artalk:
    container_name: artalk-go
    image: artalk/artalk-go
    ports:
      - 8080:23366
    volumes:
      - ./data:/data
version: "3.5"
services:
  artalk:
    container_name: artalk-go
    image: artalk/artalk-go
    ports:
      - 8080:23366
    volumes:
      - ./data:/data

在与配置文件相同的目录执行命令创建容器:

docker-compose up -d
docker-compose up -d
一些 Docker Compose 常用命令
docker-compose restart  # 重启容器
docker-compose stop     # 暂停容器
docker-compose down     # 删除容器
docker-compose pull     # 更新镜像
docker-compose exec artalk bash # 进入容器
docker-compose restart  # 重启容器
docker-compose stop     # 暂停容器
docker-compose down     # 删除容器
docker-compose pull     # 更新镜像
docker-compose exec artalk bash # 进入容器

详细可见:“后端 · Docker”

自行编译并运行

可参考:“后端构建”

CDN 资源

Artalk 最新版本

当前 Artalk 前端最新版本号为: 2.4.4

若需升级前端,请将 URL 中的版本号数字部分替换即可。

Artalk 后端程序内嵌了前端 JS、CSS 文件,使用公共 CDN 资源请注意前后端版本的兼容性。

Artalk 静态资源通过上游 CDNJS 分发,国内有许多镜像可供选择:

BootCDN (国内)

https://cdn.bootcdn.net/ajax/libs/artalk/2.4.4/Artalk.js

https://cdn.bootcdn.net/ajax/libs/artalk/2.4.4/Artalk.css

ElemeCDN (国内)

https://npm.elemecdn.com/artalk@2.4.4/dist/Artalk.js

https://npm.elemecdn.com/artalk@2.4.4/dist/Artalk.css

CDNJS

https://cdnjs.cloudflare.com/ajax/libs/artalk/2.4.4/Artalk.js

https://cdnjs.cloudflare.com/ajax/libs/artalk/2.4.4/Artalk.css

UNPKG

https://unpkg.com/artalk@2.4.4/dist/Artalk.js

https://unpkg.com/artalk@2.4.4/dist/Artalk.css

JS DELIVR

https://cdn.jsdelivr.net/npm/artalk@2.4.4/dist/Artalk.js

https://cdn.jsdelivr.net/npm/artalk@2.4.4/dist/Artalk.css

ArtalkLite

可选择精简版 ArtalkLite:体积更小、更简约。

Node 环境

pnpm add artalk
pnpm add artalk

引入到你的项目:

import 'artalk/dist/Artalk.css'
import Artalk from 'artalk'

new Artalk({
  // ...
})
import 'artalk/dist/Artalk.css'
import Artalk from 'artalk'

new Artalk({
  // ...
})

何时引入、何时 new?

  • 可以在任意位置引入 JS 和 CSS 资源,但需确保 JS 引入在执行 new Artalk({}) 前。
  • 执行 new Artalk({ el: '#x' }) 时,需要确保 <div id="x"></div> 存在于页面当中。

可参考:“前端框架引入” / “博客引入”

数据导入

从其他评论系统导入数据:“数据迁移”