Twikoo 服务启动指南
建站
Twikoo, 部署, 服务启动
0 字 / 约 0 分钟
Twikoo 服务启动指南
问题诊断
根据错误日志 connect() failed (111: Connection refused),确认 Twikoo 后端服务未运行。
快速启动方案
方案 1: 使用 PM2 启动(推荐)
步骤 1: 检查 Node.js 和 PM2
bash
# 检查 Node.js
node -v
npm -v
# 检查 PM2
pm2 -v
# 如果没有 PM2,安装它
npm install -g pm2步骤 2: 创建 Twikoo 目录
bash
# 创建目录
sudo mkdir -p /www/twikoo
cd /www/twikoo
# 或者使用其他目录
sudo mkdir -p /opt/twikoo
cd /opt/twikoo步骤 3: 安装 Twikoo
bash
# 初始化 npm 项目
npm init -y
# 安装 Twikoo
npm install twikoo --production步骤 4: 启动服务
bash
# 使用 PM2 启动 Twikoo
pm2 start node_modules/twikoo/bin/twikoo.js --name twikoo -- server --port 8080
# 设置开机自启
pm2 save
pm2 startup
# 查看状态
pm2 status
pm2 logs twikoo步骤 5: 验证服务
bash
# 测试服务是否运行
curl http://127.0.0.1:8080/version
# 应该返回版本号,例如:1.6.44方案 2: 使用 Docker 启动
步骤 1: 拉取镜像
bash
docker pull imaegoo/twikoo步骤 2: 创建数据目录
bash
sudo mkdir -p /data/twikoo步骤 3: 启动容器
bash
docker run -d \
--name twikoo \
--restart unless-stopped \
-p 8080:8080 \
-v /data/twikoo:/app/data \
imaegoo/twikoo步骤 4: 验证服务
bash
# 查看容器状态
docker ps | grep twikoo
# 查看日志
docker logs twikoo
# 测试服务
curl http://127.0.0.1:8080/version方案 3: 使用 systemd 启动
步骤 1: 创建服务文件
bash
sudo nano /etc/systemd/system/twikoo.service步骤 2: 添加服务配置
ini
[Unit]
Description=Twikoo Comment Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/www/twikoo
ExecStart=/usr/bin/node node_modules/twikoo/bin/twikoo.js server --port 8080
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target步骤 3: 启动服务
bash
# 重新加载 systemd
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start twikoo
# 设置开机自启
sudo systemctl enable twikoo
# 查看状态
sudo systemctl status twikoo验证和测试
1. 检查服务端口
bash
# 检查端口是否监听
netstat -tlnp | grep 8080
# 或
ss -tlnp | grep 80802. 测试 API 端点
bash
# 测试版本接口
curl http://127.0.0.1:8080/version
# 测试评论接口
curl -X POST http://127.0.0.1:8080/ \
-H "Content-Type: application/json" \
-d '{"action":"getComments","url":"/test"}'3. 检查 Nginx 配置
确保 Nginx 配置正确:
nginx
location /twikoo/ {
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;
proxy_set_header X-Forwarded-Proto $scheme;
# 超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}重新加载 Nginx:
bash
sudo nginx -t
sudo nginx -s reload4. 浏览器测试
在浏览器控制台执行:
javascript
// 测试服务版本
fetch('https://chiplayout.net/twikoo/version')
.then(r => r.text())
.then(console.log)
// 应该返回版本号,而不是 502常见问题
问题 1: 端口被占用
bash
# 检查端口占用
sudo lsof -i :8080
# 或
sudo netstat -tlnp | grep 8080
# 如果被占用,可以:
# 1. 停止占用端口的进程
# 2. 或修改 Twikoo 使用其他端口(如 8081)问题 2: 权限问题
bash
# 确保目录权限正确
sudo chown -R www-data:www-data /www/twikoo
# 或
sudo chown -R $USER:$USER /www/twikoo问题 3: Node.js 版本问题
bash
# 检查 Node.js 版本(需要 >= 14)
node -v
# 如果版本过低,升级 Node.js
# 使用 nvm
nvm install 18
nvm use 18问题 4: PM2 服务未保存
bash
# 保存当前进程列表
pm2 save
# 生成启动脚本
pm2 startup
# 按照提示执行生成的命令维护命令
PM2 管理
bash
# 查看状态
pm2 status
# 查看日志
pm2 logs twikoo
# 重启服务
pm2 restart twikoo
# 停止服务
pm2 stop twikoo
# 删除服务
pm2 delete twikooDocker 管理
bash
# 查看状态
docker ps -a | grep twikoo
# 查看日志
docker logs twikoo
# 重启容器
docker restart twikoo
# 停止容器
docker stop twikoo
# 启动容器
docker start twikoosystemd 管理
bash
# 查看状态
sudo systemctl status twikoo
# 查看日志
sudo journalctl -u twikoo -f
# 重启服务
sudo systemctl restart twikoo
# 停止服务
sudo systemctl stop twikoo下一步
服务启动后:
- ✅ 验证
curl http://127.0.0.1:8080/version返回版本号 - ✅ 检查 Nginx 错误日志不再有 Connection refused
- ✅ 刷新网站页面,评论功能应该正常工作
- ✅ 测试提交评论功能