Appearance
JY 运维环境
SSH
| 项 | 值 |
|---|---|
| 别名 | jy-test |
| 主机 | 154.89.148.95 |
| 端口 | 3337(非 22) |
| 用户 | root |
| 密钥 | ~/.ssh/id_ed25519_jy_test(无密码,供 Cursor Agent 用) |
bash
ssh -o BatchMode=yes jy-test 'hostname'BatchMode=yes 可测免密是否生效。详见 SSH 文档。
服务器目录
| 路径 | 内容 |
|---|---|
/opt/web/jysite | 博客静态站 |
/opt/web/jy-admin | 管理端 standalone 包 |
/opt/web/jy-admin/.env | 管理端环境变量(不进 Git) |
/opt/web/doc.jysite | 文档站静态文件 |
/opt/web/*.bak.* | 部署前备份 |
进程与服务
| 服务 | 管理命令 | 说明 |
|---|---|---|
| jy-admin | systemctl status|restart jy-admin | Node 监听 127.0.0.1:5174 |
| MySQL | systemctl status mysqld | 本机 127.0.0.1:3306,库 blog_site |
| Nginx | nginx -t && systemctl reload nginx | 反代 + 静态 root |
管理端日志:
bash
journalctl -u jy-admin -n 80 --no-pager
journalctl -u jy-admin -fNode 版本(CentOS 7 特殊)
官方 Node 22 需要 glibc 2.27+,CentOS 7 只有 2.17。使用:
- 路径:
/usr/local/node-v22 - 构建:
node-v22.22.1-linux-x64-glibc-217(unofficial-builds)
MySQL
- 版本:8.0.46
- 应用用户:
blog(本地 + 远程%) - 管理端生产
.env:DATABASE_HOST=127.0.0.1 - 本机开发可指向测试机 IP
密码含 # 时 .env 必须加引号。
Nginx 域名
| 域名 | 类型 |
|---|---|
| jianyi.my | 静态 root → /opt/web/jysite |
| admin.jianyi.my | 反代 → 127.0.0.1:5174 |
| doc.jianyi.my | 静态 root → /opt/web/doc.jysite |
证书:Let's Encrypt,certbot renew。
传文件到服务器
大目录优先 tar + scp,rsync 经 3337 可能断:
bash
COPYFILE_DISABLE=1 tar -czf /tmp/pkg.tgz -C <dir> .
scp /tmp/pkg.tgz jy-test:/tmp/
ssh jy-test 'tar xzf /tmp/pkg.tgz -C <目标目录>'macOS 打包加 COPYFILE_DISABLE=1 避免 xattr 警告。
改配置后的动作
| 改了什么 | 动作 |
|---|---|
/opt/web/jy-admin/.env | systemctl restart jy-admin |
jy-admin.service unit | daemon-reload + restart |
| Nginx conf | nginx -t + reload |
| 静态站文件 | 无需重启 Nginx(try_files 已配置) |
禁止事项
- 不要把
.env、PAT、私钥提交 Git 或写进 Skill/文档明文 - 不要在 GitHub Actions
if:里用secrets.*(会报错) - 不要对生产 MySQL 做无备份的破坏性操作