7879710.xyzdeployment wiki
部署 Wiki/运维手册

运维手册

从只读巡检开始,再做有边界的变更。删除历史或压缩数据库前,先确认服务状态和目标文件。

First five minutes

五分钟巡检

df -hT /
du -xhd1 /root /var/www /opt 2>/dev/null | sort -h
sudo systemctl --failed
sudo ss -lntup
docker system df

判断顺序:先看根分区和增长最快的目录,再看失败单元、监听端口和容器空间。日志、视频分片和 Docker overlay 通常比 Nezha SQLite 更值得优先检查。

Disk hygiene

空间重点

位置当前现象安全动作
/root/new-api/logs约 130 MB,存在较大的应用日志先确认日志策略,再归档或按日期截断
/var/www/html/hls_test约 184 MB 的视频分片确认播放任务结束后再清理
/root/sub2api-deploy/postgres_data约 185 MB使用数据库或 Compose 维护,不删目录
/root/.cli-proxy-api/logs约 30 MB,文件日志总量未设上限增加轮转策略或定期检查
/var/lib/docker约 1.6 GB,镜像/overlay 为主先用 docker system df,确认后再 prune
Nezha history

Nezha 历史数据清理

会丢失历史图表:下面的全量 DELETE 只适用于已经确认不需要 ping 历史的场景。它不会删除服务器、用户等配置,但会删除 service_histories 中的历史记录。

先停写并确认

sudo systemctl stop nezha-dashboard
sudo sqlite3 /opt/nezha/dashboard/data/sqlite.db \
  "SELECT COUNT(*), MIN(created_at), MAX(created_at) FROM service_histories;"

TSDB 未配置时,历史表仍在 SQLite 中;时间字段单位应先通过查询确认。

确认后清空并回收

sudo sqlite3 /opt/nezha/dashboard/data/sqlite.db \
  'DELETE FROM service_histories;'
sudo sqlite3 /opt/nezha/dashboard/data/sqlite.db 'VACUUM;'
sudo systemctl start nezha-dashboard
sudo systemctl status nezha-dashboard --no-pager

不要在服务写入时直接删除 .db-wal 或 .db-shm。

Logs & recovery

日志与服务恢复

实时日志

sudo journalctl -u caddy -f
sudo journalctl -u nezha-dashboard -f
sudo journalctl -u vless-reality -f
sudo journalctl -u cpa-usage-keeper -f
sudo tail -f /var/log/xray/access.log

CPA / Keeper 健康检查

sudo systemctl status cpa-usage-keeper --no-pager
systemctl --user status cliproxyapi.service --no-pager
curl -fsS https://cpa.7879710.xyz/keeper/healthz

Keeper 根路径是 /keeper/;端口或路径变更时要同步检查应用环境变量、插件配置和 Caddy。

恢复顺序

01Docker / 数据库
02应用服务
03Caddy
04curl / 浏览器验证
Config migration

配置迁移备份

/root/backup.sh 只备份配置。它通过 rclone 直传到 Alist 的 gdriver/vps-backups,不要求 /mnt/gdriver 挂载。

管理员操作

一键生成配置归档

备份会在服务器后台运行;页面关闭后任务仍会继续。只允许一项任务同时运行。

等待检查阶段进度 0%
0%

请先登录 Typecho 管理后台,页面会自动识别管理员会话。

网页 API 常驻,root worker 只在点击后按需运行;worker 空闲时显示 inactive 属于正常状态。详细日志由系统轮转,不会无限增长。

包含

Caddy、Xray/VLESS、systemd、Docker Compose、.env、YAML/JSON、网络/防火墙规则、部署脚本和静态入口。

sudo /root/backup.sh --check
sudo /root/backup.sh --dry-run
sudo /root/backup.sh

# 更新 Keeper(只替换 Linux amd64 二进制)
sudo /root/cpa-usage-keeper/xq.sh --check
sudo /root/cpa-usage-keeper/xq.sh

不包含

SQLite/PostgreSQL/MySQL/Redis 数据、Nezha 历史、Keeper/CPA 用量、日志、缓存、Docker 数据卷、上传内容和 HLS 分片。

归档含凭据、SSH/Xray 私钥和 rclone 配置。迁移前核对 RESTORE-MANIFEST/README.txt,不要盲目覆盖新机网络或 SSH 主机身份。

Change discipline

改配置前的三件事

01

确认生效文件

Caddy 以 /etc/caddy/sites/7879710.xyz 为准;Typecho 配置和各 Compose 文件同理,不要编辑历史副本。

02

先验证,再重载

使用应用自带的 test/validate 命令,确认通过后再 reload/restart;远程网络服务尤其要谨慎。

03

回看公开入口

至少检查门户、/index.php、/wiki/ 和受影响的子域名 HTTP 状态。