ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LibWRT 路由器部署记录

LibWRT 路由器部署记录 LibWRT 路由器部署记录设备信息设备京东云亚瑟 AX1800 ProMT7981系统LibWRTOpenWrt 定制固件数据盘/dev/mmcblk0p27111GB EXT4挂载到 /mnt/data_mmcblk0p27引导有 UBOOT支持 uboot 刷机救砖网络192.168.1.1当前运行服务Docker 容器2个容器镜像端口数据目录1Panel-ghost-ERXughost:6.65.02368/mnt/data_mmcblk0p27/ghost1Panel-mysql-Xsbymysql:8.4.113306/mnt/data_mmcblk0p27/mysql其他服务1PanelWeb 管理面板端口 10086数据在 [PATH]cpolar内网穿透API 端口 9200authtoken 已配置cloudflaredCloudflare Tunnel2026.9.1 安装tunnel jinqiuID: 8c0476ac-…ddnsto内网穿透EasyTierVPN 组网存储架构分区布局mmcblk0p18: /rom2GB squashfs 只读系统 p26: SWAP512MB p27: /mnt/data_mmcblk0p27111GB EXT4 数据盘Overlay 问题⚠️ 已知问题系统 overlay/overlay基于 1.9GB loop 设备受限于 squashfs 结构当前已用 1.5GB只剩 ~380MB1Panel 升级需要更多空间报空间不足[PATH]/mnt559MB是 bind mount 快照正常现象不能删[PATH]/usr814MB是 opkg 安装的软件Docker 存储Docker>各服务关键配置1Panel地址http://192.168.1.1:10086账号admin密码[REDACTED]数据目录[PATH]compose 文件[PATH]/1panel/apps/hermes-agent/Hermes-Agent/docker-compose.ymlMySQLGhost 专用主机192.168.1.1:3306密码[REDACTED]数据库ghost_k4djjjGhost 实际数据库容器名1Panel-mysql-Xsby数据目录/mnt/data_mmcblk0p27/mysqlGhost 导航门户地址http://192.168.1.1:2368管理后台/ghost/#/posts左侧导航 Posts邮件配置支持 Resend/Mailgun/SMTP详见邮件配置章节加密文章文章设置中选 “Password protected” 密码保护cpolar → Ghost 同步脚本路径/tmp/sync_cpolar_links.js触发cron每小时30分执行30 * * * *功能查询 cpolar API 获取 tunnel 列表写入 Ghost 文章或自定义站点注Ghost 有 REST API 可用后续可改为通过 Ghost API 同步不再直接写数据库cron 任务30 * * * * /usr/bin/node /tmp/sync_cpolar_links.js /tmp/sync_cpolar_links.log 21Mac mini 服务attendance-portal-v2服务信息地址http://localhost:8767Mac mini 本地外部访问https://49380772.r7.cpolar.cncpolar 映射启动方式launchdplist 管理crash 后自动重启plist[PATH]ai.openclaw.attendance-portal-v2.plist入口~/ClaudeCode/attendance-portal-v2/app/server.pyToken 缓存~/ClaudeCode/attendance-portal-v2/data/ican_tokens/会话存储~/ClaudeCode/attendance-portal-v2/data/sessions/加密 .json.enc数据源iCan已屏蔽公司永久关闭 2026-09-21SAP唯一数据源走飞连 SPA 认证Playwright 无头浏览器已知问题飞连 SPA 有反爬检测Playwright 自动化登录可能被拒飞连拒绝 ≠ 登录失败已登录时会拒绝后端不应重试已在 server.py 和 app.js 中做了防护但极端情况仍可能失败部署步骤从零开始1. 基础环境# 确认 SSH key 登录sshroot192.168.1.1# 确认数据盘挂载df-h/mnt/data_mmcblk0p272. Docker 安装与配置# 用 1Panel 安装 Docker或手动安装# Docker>cat/etc/docker/daemon.jsonEOF { data-root: [PATH], registry-mirrors: [ https://docker.m.daocloud.io, https://docker.1panel.live, https://hub.1panel.dev, https://docker.1ms.run ] } EOF3. 安装 1Panel# 从 1Panel 官网安装# 安装时选择数据盘目录# 安装完成后在 Web UI 里安装 MySQLGhost 专用数据库4. MySQL 配置1Panel 安装通过 1Panel 安装 MySQL 8.x注意删除 compose.yml 中的 /etc/localtime 挂载与宿主机 symlink 冲突手动创建 ghost_k4djjj 数据库CREATE DATABASE ghost_k4djjj CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;5. Ghost 配置通过 1Panel 安装选择 ghost:6.65.0 镜像数据库选 MySQL刚装的 1Panel-mysql-XsbyGHOST_URL 设为http://192.168.1.1:2368不要用 https会导致 SSL 错误装好后访问 /ghost/#/setup 完成初始化管理后台 /ghost/#/posts 写文章Settings → General → Publication language 改中文6. cpolar 安装# 下载 cpolarcurl-Lhttps://github.com/cpolar/cpolar/releases/download/v3.x.x/cpolar-linux-arm64-o/usr/bin/cpolarchmodx /usr/bin/cpolar# 配置 authtokencpolar authtoken[YOUR_TOKEN]# 后台运行cpolar http80807. Mac mini attendance-portal-v2# 安装依赖pip3installplaywright playwrightinstallchromium# 启动服务cd~/ClaudeCode/attendance-portal-v2 python3 app/server.py# 配置 launchd plist# 见 [PATH]ai.openclaw.attendance-portal-v2.plistlaunchctl load[PATH]ai.openclaw.attendance-portal-v2.plist8. cloudflared可选已放弃 DNS 映射# 安装curl-Lhttps://github.com/cloudflare/cloudflared/releases/download/2026.9.1/cloudflared-linux-arm64-o/usr/bin/cloudflaredchmodx /usr/bin/cloudflared# 配置 tunnelcloudflared tunnel create jinqiu cloudflared tunnel route dns jinqiu attendance.trycloudflare.com# 注DNS 映射不一定生效已放弃用 cpolar坑与注意事项1. overlay 系统分区空间/overlay 基于 1.9GB loop 设备不是数据盘[PATH]/mnt 的 559MB 是 bind mount 快照无法删除Docker 镜像在数据盘不占用 overlay1Panel 升级空间不足是系统 overlay 满了不是镜像问题2. Docker 与 nftables 混用Docker 默认写 iptables 规则与 LibWRT 的 nftables 混用会弹警告不影响功能可以忽略不要改 /etc/docker/daemon.json 的 iptables 选项会破坏 1Panel 管理3. Ghost 迁移锁问题Ghost 启动时崩溃 “Unable to acquire lock”migrations_lock 表有残留锁解决TRUNCATE TABLE migrations_lock; DROP DATABASE ghost_k4djjj; 重建 Ghost根因路由器异常重启导致迁移锁未释放4. Ghost SSL 问题GHOST_URL 设成 https://… 会导致 ERR_SSL_PROTOCOL_ERRORGhost 6.65.0 内部在 2368 端口启用 SSL 但无证书解决GHOST_URL 改为 http://192.168.1.1:23685. Ghost 管理界面语言Ghost admin 管理界面始终英文无法本地化只有前台公开页面随 Publication language 切换中文6. Ghost 资源占用Ghost(183MB) MySQL(43MB) ≈ 226MB比 emlog(19MB) MariaDB(6MB) 高很多但比 emlogMariaDBHermes(325MB) 低Ghost 镜像 713MB一次性存储7. Ghost 邮件配置ghost-mailconfig 是宿主机工具装在 Docker 容器里没用Ghost 邮件通过环境变量配mailgun/resend/smtp新用户注册验证需要邮件服务8. MySQL localtime 挂载冲突/etc/localtime 在宿主机是 symlinkdocker-compose 挂载会冲突解决删除 compose.yml 中的 /etc/localtime 和 timezone 挂载行iCAN API 已于 2026-09-21 被公司永久关闭attendance-portal-v2 现在只能走 SAP 数据源6. 飞连 SPA 反爬SAP 认证走飞连 SPAPlaywright 自动化可能被检测飞连拒绝 ≠ 登录失败已登录的 session 再次登录会被拒绝不要在登录后频繁重试会触发服务端异常检测7. Mac mini v2 launchdv2 由 launchd 管理不是 Hermesplist 路径[PATH]ai.openclaw.attendance-portal-v2.plist注意 WorkingDirectory 要指向项目根目录不是 app 子目录9. cpolar → Ghost 同步待实现Ghost 有 REST API 可用后续可通过 API 同步不再直接写数据库emlog 的 cpolar 同步脚本暂时失效需要重写10. iCan 已关闭拉回来的 wdssmq/zblogphp-nginx:8.2 是 amd64 镜像在 ARM 路由器上无法运行如需 zblog需要找 ARM64 版本或用 Docker 多架构构建11. [PATH] 和 [PATH] 迁移到数据盘问题1Panel 升级检查 [PATH] 可用空间要求 ≥500MB[PATH] 在 overlayfs1.9GB loop空间不足报错解决bind mount 把 [PATH] 和 [PATH] 都指向数据盘 /dev/mmcblk0p27操作步骤mkdir [PATH]cp -a [PATH]/* [PATH]/fstab 添加option‘bind’, target[PATH], uuid数据盘UUIDmkdir [PATH]cp -a [PATH]/* [PATH]/mount --bind [PATH] [PATH]fstab 添加option‘bind’, target[PATH], uuid数据盘UUID重启验证 df -h [PATH] 显示数据盘不是 loop 设备注意df -h /overlay 永远显示 loop 设备大小看 [PATH] 的挂载点才能确认真实存储位置12. Hermes Dashboard 9119 不启动pid:host 问题症状Hermes GatewayBot正常但 9119 Dashboard 不监听根因compose.yml 中使用pid: host让 Hermes 进程跑在宿主机 PID 命名空间读不到容器环境变量包括 HERMES_DASHBOARD1修复删掉pid: host添加只读挂载/proc:/host/proc:ro这样能看到宿主机进程又不丢容器 env重启容器docker compose down docker compose up -d验证curl localhost:9119 返回 HTTP 302跳转登录页即正常13. 1Panel 升级后容器全重启正常现象1Panel 升级会重启 Docker 服务所有容器重新拉起等 1-2 分钟容器稳定后再检查服务状态14. /proc 挂载注意用 :ro 只读挂载不要读写模式避免安全风险容器内 /host/proc 是宿主机 /proc容器内 /proc 是容器自己的
返回列表