前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fluid -25- 独立部署基于 MongoDB 的 Waline

Fluid -25- 独立部署基于 MongoDB 的 Waline

作者头像
为为为什么
发布2022-09-26 10:54:22
8630
发布2022-09-26 10:54:22
举报
文章被收录于专栏:又见苍岚又见苍岚

Waline 本可以部署在 Vercel 等平台上,但有一天突然就不能用了,本文记录自己部署基于 MongoDB 数据库的 Waline 服务。

背景

  • Vercel 不香了之后,自己建 Waline 服务器
  • 数据库之所以选择 MongoDB,主要在于安装使用方便,对于网站存取性能更优

自己动手,丰衣足食,数据安全,速度还快,无人可挡!

配置环境

安装 MongoDB
创建 MongoDB 用户
  • 进入 mongosh
  • 切换到新数据库 waline

123

test> use fooswitched to db foowaline>

  • 创建用户 在数据库 foo 中创建用户 vvd 密码 123456,赋予他在 foo 数据库上的读写权限

1234567

db.createUser( { user: "vvd", pwd: "123456", roles: [ { role: "readWrite", db: "foo" }] })

成功运行命令返回结果:

1

{ ok: 1 }

  • 运行 show users 命令查看结果

1234567891011

foo> show users[ { _id: 'foo.vvd', userId: UUID("91cab2c3-5fae-42fb-9cd4-3c971ff58e3f"), user: 'vvd', db: 'foo', roles: [ { role: 'readWrite', db: 'foo' } ], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] }]

创建环境变量
  • 根据官方文档
  • 如果和我一样是本地 MongoDB 的话,我们最主要需要配置: MONGO_DBMONGO_USERMONGO_PASSWORD 三个变量
  • 修改 ~/.bashrc,按照之前的配置加入上述变量

123

export MONGO_DB=fooexport MONGO_USER=vvdexport MONGO_PASSWORD=123456

至此环境配置完毕

Waline

安装、运行
  • 按照官方文档(真的很方便啊)
  • 在服务器找一个没人的空地方,运行命令:

12

npm install @waline/vercelnode node_modules/@waline/vercel/vanilla.js

  • 正常运行返回信息

123456

waline$ node node_modules/@waline/vercel/vanilla.js[2022-08-31T17:17:30.583] [296133] [INFO] - Server running at http://127.0.0.1:8360[2022-08-31T17:17:30.585] [296133] [INFO] - ThinkJS version: 3.2.14[2022-08-31T17:17:30.586] [296133] [INFO] - Environment: production[2022-08-31T17:17:30.586] [296133] [INFO] - Workers: 1[2022-08-31T17:22:07.683] [296140] [INFO] -

测试
  • 此时可以访问 http://IP:8360 访问 waline 页面:

测试评论

  • 此时后台信息输出

1234567891011121314

[2022-08-31T17:22:25.285] [296140] [DEBUG] - Post Comment Start![2022-08-31T17:22:25.285] [296140] [DEBUG] - Post Comment initial Data: { link: 'www.zywvvd.com', mail: 'zywvvd@mail.ustc.edu.cn', nick: 'VVD', pid: 'undefined', rid: 'undefined', ua: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36', url: '/', comment: '测试?<img class="wl-emoji" src="//unpkg.com/@waline/emojis@1.0.1/weibo/weibo_joy.png" alt="weibo_joy">', ip: '::ffff:180.171.132.122', insertedAt: '2022-08-31T09:22:25.285Z', user_id: 'undefined'}

  • 说明我们 Waline 配置成功
创建服务后台运行
  • 将刚刚成功运行 waline 的文件夹移到 /usr/local/waline
  • /lib/systemd/system 文件夹创建 waline.service 文件

123456789101112131415

[Unit]Description = Service for waline backendAfter = network.target[Service]ExecStart = /usr/bin/node node_modules/@waline/vercel/vanilla.jsWorkingDirectory = /usr/local/waline/StandardOutput = inheritStandardError = inheritRestart = alwaysUser = lighthouse[Install]WantedBy=multi-user.target

  • 设置 waline 开机自启动

1

sudo systemctl enable waline.service

  • 开启 waline 服务

1

sudo systemctl start waline.service

  • 查看 waline.service 状态

12345678910111213141516

$ systemctl status waline.service● waline.service - Service for waline backend Loaded: loaded (/lib/systemd/system/waline.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-08-31 18:08:29 CST; 9s ago Main PID: 304641 (node) Tasks: 18 (limit: 3988) Memory: 131.8M CGroup: /system.slice/waline.service ├─304641 /usr/bin/node node_modules/@waline/vercel/vanilla.js └─304662 /usr/bin/node /usr/local/waline/node_modules/@waline/vercel/vanilla.jsAug 31 18:08:30 VM-16-11-ubuntu node[304641]: [2022-08-31T18:08:30.082] [304641] [INFO] - Server running at http://127.0.0.1:8360Aug 31 18:08:30 VM-16-11-ubuntu node[304641]: [2022-08-31T18:08:30.085] [304641] [INFO] - ThinkJS version: 3.2.14Aug 31 18:08:30 VM-16-11-ubuntu node[304641]: [2022-08-31T18:08:30.085] [304641] [INFO] - Environment: productionAug 31 18:08:30 VM-16-11-ubuntu node[304641]: [2022-08-31T18:08:30.085] [304641] [INFO] - Workers: 1

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年8月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 配置环境
    • 安装 MongoDB
      • 创建 MongoDB 用户
        • 创建环境变量
        • Waline
          • 安装、运行
            • 测试
              • 创建服务后台运行
              • 参考资料
              相关产品与服务
              云数据库 MongoDB
              腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档