如何在服务器上部署一个基于 Node.js 的 TiddlyWiki
pimgeek 的数字花园即为此模式,现记录部署过程。什么是 TiddlyWiki?
前置条件是要有一个域名和一个 VPS。
安装 Node.js 和 TiddlyWiki
- 更新软件包
apt update
- RedHat 系使用
yum
- RedHat 系使用
- 安装 Node.js
apt install npm
- 全局安装 TiddlyWiki
npm install -g tiddlywiki
- 检查 TiddlyWiki 版本
tiddlywiki --version
- 创建 TiddlyWiki 目录
mkdir ~/wiki
wiki 可以替换为想要的名字 - 在 TiddlyWiki 目录下创建基本文件
tiddlywiki wiki --init server
- 创建用户权限文本
vim ~/wiki/users.csv
或者用 nano 等文本工具
users.csv
文本内容:
username,password
johndoe,!@#$%^
其中首行为必填项,第二行为用户名和明文密码,英文小写逗号,不包含任何空格(具体参考官方文档:WebServer Parameter: credentials)
安装 Nginx 和 Let’s Encrypt
熟悉的话这一步可以略过。重点是设置好反向代理。
- 安装 Nginx
apt install nginx
- 创建并编辑代理服务器配置
cd /etc/nginx/sites-available
然后vim example.com
- 其中 example.com 为域名
example.com
文本内容:
server {
server_name example.com
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
其中 client_max_body_size
条目设置最大上传文件大小
- 链接并启用代理服务器
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
- 安装 Let’s Encrypt 以及激活 nginx 插件
apt install certbot python3-certbot-nginx
- 创建 SSL 认证
certbot --nginx
按照说明进行设置 - 运行 TiddlyWiki 并访问域名测试是否启动成功
tiddlywiki wiki --listen credentials=users.csv "readers=(anon)" "writers=(authenticated)"
- 其中
creadentials
字段指定用户权限文本名称,readers
为只读权限(此处的anon
为匿名,即任意访客),writers
为读写权限(authenticated
读取credentials
中指定的用户)
安装 pm2 并设置后台运行服务
- 全局安装最新版本 pm2
npm install -g pm2@latest
- 准备 TiddlyWiki 启动脚本
vim ~/tw.sh
脚本内容:
cd /root
tiddlywiki wiki --listen credentials=users.csv "readers=(anon)" "writers=(authenticated)"
- 赋予
tw.sh
权限chmod +x /root/tw.sh
- 通过 pm2 守护进程运行 TiddlyWiki
pm2 start /root/tw.sh
- 保存当前状态
pm2 save
- 设置开机自启
pm2 startup
至此便可以访问首页 Node.js 版本的 TiddlyWiki,并且通过一些方式登录修改了。
参考文献
- Installing TiddlyWiki on Node.js
- How to: TiddlyWiki on NodeJS + nginx proxy + LetsEncrypt
- tiddlywiki-nodejs 安装部署
- Tiddlywiki builds a personal blog
- 如何构建基于 Node.js 的 TiddlyWiki 服务器版网站?
域名和vps都有,不知道搭建这个有啥用
主要目的是用来自娱自乐
老兄,好久没联系了哈,来看看,Wiki有啥用呢,好像只能玩玩~
好久不见!个站商店已经3.0啦,很高兴看到站点不忘初衷😁
严格来说是个人 wiki,是一个介于私人笔记和博客之间的实践,说只能玩玩确实没错,就是拿来玩的哈哈哈