惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
博客园 - 叶小钗
爱范儿
爱范儿
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
T
Tailwind CSS Blog
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell

遐说

2026第一场日出日落-黄山 [徒步]宁波九龙爱心线 [徒步]仙居公盂徒步+丽人谷溯溪(多图) 文献引用批量标注蓝色-Zotero/EndNote [出差]内蒙草原风光 [徒步]浙东小九寨 [徒步]西湖小猫线 微软Office365家庭版拼车5年180 2024浏阳跨年烟火 一路向北-广西 落日余晖——武汉东湖 博士论文盲审通过 青海出差 我开盒了我自己 hexo-butterfly+artalk无法显示文章PV浏览次数 记某站字体混淆解析方案 记第一次进藏 2024川西大环线 Python读取NetCDF文件-裁剪&计算 2024武汉东湖樱花园 zotero批量修改条目语言解决”等”和”et al”混排问题 torch_geometric_temporal安装报错找不到to_dense_adj 武汉冻雨&乡村春节 云南镇雄县凉水村滑坡:卫星影像解析 博客聚合平台RSS订阅-BlogFinder&博友圈&十年之约 腾讯云CDN正式取消免费10G流量包 2023跨年闲逛武汉 观感|小米SU7技术发布会 【留痕】解密微信聊天记录工具:年度报告、聊天导出一键搞定! 小米电脑管家 vs. MIUI+: 手机与PC协同体验大比拼!
Waline私有化部署(Docker+VPS)
Dorad · 2023-12-14 · via 遐说

发表于|更新于|博客工具

|总字数:1k|阅读时长:4分钟|浏览量:|

此前用的 Waline 评论系统是采用Vercel+LeanCloud,最近频繁出毛病。

故决定采用docker进行私有化部署。

¶部署条件

一台有公网 IP 的服务器(用于docker部署或反向代理)

¶流程

  • Waline数据导出

  • 准备waline.sqlite文件

  • docker-compose.yml配置

  • nginx反向代理配置

  • Waline数据导入

¶Waline 数据导出

在现有的 Waline 中,将现有的评论数据导出。路径为管理→导入导出→导出,得到waline.json文件。

¶waline.sqlite 准备

本次部署采用 SQLite 单文件数据库,需要准备 SQLite 数据库文件。官方下载链接

但是采用这个文件部署的话,你会发现你将无法登录!因为官方提供的waline.sqlite文件的用户表是空白!

在官方waline.sqlite的基础上,我添加了默认管理员账号信息,并生成了自制waline.sqlite文件,下载路径在这

所添加的默认用户名密码为:

  • username: admin@admin.com

  • password: admin

¶docker 部署

¶创建docker-compsoe.yml

登录到服务器,创建~/docker-waline文件夹,添加docker-compsoe.yml文件,下面是我自用的docker-compsoe.yml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

version: "3"

services:
waline:
container_name: waline
image: lizheming/waline:latest
restart: always
ports:
- 127.0.0.1:8360:8360
volumes:
- ${PWD}/data:/app/data
environment:
TZ: "Asia/Shanghai"
SQLITE_PATH: "/app/data"
JWT_TOKEN: "d4as56d465sa"
SITE_NAME: "遐说-Dorad"
SITE_URL: "https://blog.cuger.cn"
SECURE_DOMAINS: "blog.cuger.cn,mt.cuger.cn"
AUTHOR_EMAIL: "ddxid@outlook.com"
DISABLE_REGION: "true"
DISABLE_USERAGENT: "false"
IPQPS: 50,
COMMENT_AUDIT: "false"
SMTP_SERVICE: ""
SMTP_USER: ""
SMTP_SECURE: "true"
SMTP_PASS: ""
SENDER_NAME: "Dorad"

在环境变量中,参考自己此前在 Velcel 中的配置,搬运过来即可,详细配置项可参考官方文档

¶数据库配置

创建~/docker-waline/data文件夹,并将此前下载的waline.sqlite文件复制到其下。

最终目录结构如下:

1
2
3
4
|--docker-waline
|--docker-compose.yml
|--data
|--waline.sqlite

¶docker 运行

采用以下命令,拉起Waline服务。

1
docker-compose up -d

¶nginx 配置

docker跑起来后是运行在本地8360端口,需要反向代理到指定域名。

将原解析到Vervel的域名,解析到自己的服务器,并配置好nginx,然后参照配置nginx反向代理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# SSL自动续期验证
location ^~ /.well-known/ {
root /data/wwwroot/cuger.cn/pl.cuger.cn;
}

# 反向代理设置
location / {
proxy_pass http://127.0.0.1:8360;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
# cache
add_header Cache-Control no-cache;
expires 12h;
}

官方 Nginx 配置参考

¶数据导入恢复

配置完成nginx并可成功访问后,用默认用户名密码登录系统。

  • username: admin@admin.com

  • password: admin

登录成功后,管理→导入导出→导入,选择Waline.json导入原来的评论数据。

等待两分钟即可。

完成后可删除默认用户名&密码,但需要操作 SQLite 文件。
另一个简单的方法是将其转为普通用户,并将密码重置为复杂密码。

¶数据定期备份

  • Waline自身提供了数据导入导出功能,可手动定期备份

  • 可在服务器设置cron任务,定期将waline.sqlite文件备份至云盘,可参考rclone数据同步方案

¶Q&A

  • 如何升级/更新/修改Waline配置文件?

1
2
3
4
5
6
7
8
# 关闭服务
docker-compose down
# 升级
docker-compose pull
# 修改配置文件docker-compose.yml

# 重新拉起服务
docker-compose up -d
  • NAS 用户如何部署?

docker配置相同,需搭配内网穿透(如frp)或DDNS食用,将本地waline服务暴露到公网。

¶参考

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 遐说

请喝果茶

  • Wechat

    Wechat

  • Alipay

    Alipay