Node.js TiddlyWiki 案例:
- pimgeek 的數字花園:🌱 學習者的數字花園
- 我的數字花園:仿生貓不會夢見電子貓糧
- 什麼是 TiddlyWiki?
現在記錄部署過程。前置條件是要有一個域名和一個 VPS 並了解基本的 Linux 命令。
安裝 Node.js 和 TiddlyWiki#
- 更新軟體包
apt update
&apt upgrade
- 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,並且通過一些方式登錄修改了。