前言
我是用的artalk搭建的评论系统,部署在我自己的服务器上,在本地部署成功后,由于GitHubPages的页面使用https访问,而服务器数据访问使用的是http,导致在GitHubPages界面上加载失败。
我的解决方案:由于使用https需要ssl证书,获取ssl证书又需要域名,所以在阿里云上购买了一个便宜的域名。由于云服务提供商的ssl证书太贵了(我记得前几年还免费来着,晕),所以选择从Let’s Encrypt 上获取ssl证书(有效期为90天,需要定期更新,但是免费)。这时候又遇到问题了,由于我使用的是京东云的服务器,由于没有备案,https请求全被拦截了,现在又恰逢过年,没时间备案(同时我也不太想去搞,问东问西的,时间跨度也挺长)。评论系统搭建暂时搁置,后续可能会选择备案,或者选择购买国外的服务器搭建,或者看能否不用https,或者暂时就不搭建了,等以后再说,反正也没人看不是。
总结:如果你有已备案的国内的服务器,并且有域名和ssl证书,那么下面可以看,否则就不用看了。更好的推荐是使用第三方提供的评论系统了。
安装环境
- Ubuntu22.04
- 京东云2h4g服务器
参考文献
artalk安装
我选择docker安装,简单易用(刚好之后要学习go,用go安装过,但是存在问题,老实了)
首先你需要在服务器上安装一个 Docker(这我就不详细介绍了,没有得小伙伴可以去网上搜搜)。
然后新建一个文件夹用于存放 Artalk 文件(/root/artalk),然后执行下面的命令,只需要修改中文提示的地方:
# 安装artalk
cd artalk
docker run -d \
--name artalk \
-p 服务器端口:23366 \
-v $(pwd)/data:/data \
-e "TZ=Asia/Shanghai" \
-e "ATK_LOCALE=zh-CN" \
-e "ATK_SITE_DEFAULT=站点名" \
-e "ATK_SITE_URL=站点URL" \
--network artalk \
artalk/artalk-go
# 创建管理员账户
docker exec -it artalk artalk admin
浏览器输入 http://站点URL 进入 Artalk 后台登录界面,剩下的看着需要修改就行。
数据库安装
同样选用docker安装数据库,我选择使用mysql5.7的docker镜像来部署服务,将数据库和artalk部署在同一个docker网络下(因为artalk会访问数据库,artalk会自动初始化数据库,但是貌似需要自己手动创建数据库)
# 创建mysql容器,和artalk部署在同一个网络下
docker run -d \
--name mysql \
-e MYSQL_ROOT_PASSWORD=YourPassword \
-p 3306:3306 \
-v $(pwd)/mysql:/mysql \
--network artalk mysql:5.7
# 进入mysql中创建artalk数据库,注意创建数据库时字符,需要和artalk中相同
docker exec -it mysql mysql -uroot -p
最后在artalk的管理界面填写数据库信息就行,数据库地址就写数据库容器名称
到现在已经可以使用了,但是仍未开启https,在https界面是加载不出使用http的评论系统的
开启https
这是我当前选择的方案
- 首先就是购买域名,ssl证书是和域名绑定的,没有域名就拿不到ssl证书
- 买了域名之后就是添加DNS解析(国内服务器可能还需要备案,真羡慕国外的服务器)
- DNS解析配置完毕就是获取ssl证书,云服务器提供商ssl证书太贵了,我选择使用Let’s Encrypt 提供的ssl证书
以下是ssl证书获取,我是通过DNS解析TXT通过的验证,并没有使用nginx(因为服务器没备案,通过域名的http请求都被拦截了,哭)
# 安装certbot
sudo apt update
sudo apt install certbot
# 使用DNS验证申请
sudo certbot certonly --manual --preferred-challenges dns -d 你的域名
# 按照提示在域名解析中添加TXT记录,确认添加成功后再按确认
构建之余
也是用过docker-compose搭建,这个确实简单点,这是我当时写的配置文件,后续使用这个创建过。由于mysql的docker已经创建了,所以没有添加,仅供参考。
services:
artalk:
container_name: artalk
image: artalk/artalk-go
restart: unless-stopped
ports:
- 8080:23366
volumes:
- ./data:/data
networks:
- artalk
environment:
- TZ=Asia/Shanghai
- ATK_LOCALE=zh-CN
- ATK_SITE_DEFAULT=网站名称
- ATK_SITE_URL=网站URL
- ATK_ADMIN_USERS_0_NAME=管理员名称
- ATK_ADMIN_USERS_0_EMAIL=邮箱地址
- ATK_ADMIN_USERS_0_PASSWORD=(bcrypt)$2y$10$HnxBjnRnYF4Teg7jqedNL.MBtRcmNkk.ZmRU1SecB.afXIz.uVd6q
- ATK_ADMIN_USERS_0_BADGE_NAME=管理员
- ATK_ADMIN_USERS_0_BADGE_COLOR=#0083FF
networks:
artalk:
external: true