Commit Graph
13 Commits
Author SHA1 Message Date
kevin 0116489dea fix: 信任反向代理头,修复 unix socket 模式下获取不到真实 IP
Caddy 传 X-Real-IP / X-Forwarded-For,但 Gin 默认不信任代理头。
配置 SetTrustedProxies 全信任(unix socket 无来源 IP,无法按 IP 过滤),
安全边界由前端 Caddy 把控。
2026-05-28 16:31:17 +08:00
kevin 825df3c26c feat: TCP 监听也支持条件判断
- server.addr 为空或 ':0' 时不监听 TCP
- 两个都为空时启动报错,至少要配一个
- 灵活组合:仅TCP / 仅Unix / 双监听
2026-05-28 16:03:11 +08:00
kevin 2f3d47a439 feat: TCP 和 Unix socket 同时监听
之前是二选一(配了 unix 就不监听 TCP),调试不方便。
现在 TCP 始终监听(调试/健康检查),Unix socket 配了就额外监听(nginx 反代)。
启动时清理残留 socket 文件,避免 bind 失败。
2026-05-28 15:59:38 +08:00
kevin 28f8f19538 fix: install.sh 强制修正目录权限,防止旧版遗留问题
每次 install 都强制 chown + chmod 关键目录,
避免因旧版脚本或手动操作导致目录属主/权限不对。
2026-05-28 15:47:53 +08:00
kevin 58c8504c75 fix: 移除 ProtectSystem 沙箱限制,修复 unix socket 创建失败
ProtectSystem=strict/full 把 /etc /opt 等挂载为只读,
即使 ReadWritePaths 配合也会有各种坑。
服务已用专用低权用户 portal_page 运行,文件系统权限本身就够了,
没必要再加 systemd 文件系统沙箱。
2026-05-28 15:43:48 +08:00
kevin 5184d42d00 refactor: 移除 install.sh 中硬编码的配置模板
配置文件的生成和补全完全由 Go 程序负责,install.sh 只管目录和权限。
以后新增配置项只需改 Go 代码,无需同步修改安装脚本。
2026-05-28 15:37:53 +08:00
kevin e32d51a989 fix: 修复 Linux 服务启动时配置文件写入权限问题
- install.sh: 安装时预生成默认配置文件到 /etc/portal_page/config.toml
- systemd: ProtectSystem 从 strict 改为 full,避免 /etc 子目录写入被拒
- systemd: ReadWritePaths 简化为整个 INSTALL_DIR(含 templates/static/sock)
2026-05-28 15:34:56 +08:00
kevin c51e0df53e up 2026-05-28 15:27:48 +08:00
kevin dcbc4471e8 加上环境变量 2026-05-28 15:20:41 +08:00
kevin 5074398138 feat: 配置系统 + Linux 服务安装脚本
- 新增 config/config.go:TOML 配置包,自动生成配置文件 + 缺失项补全
  - Windows: conf/config.toml(基于工作目录)
  - Linux: /etc/portal_page/config.toml(FHS)
- 配置项:data.dir, database.type(sqlite/mysql), server.addr, server.unix
- Linux 默认 unix socket: /opt/portal_page/server.sock
- database/db.go 重构支持 MySQL
- handlers/upload.go 改用 config.GetUploadDir()
- main.go 整合配置启动流程,支持 TCP/Unix socket 双模式
- 新增 install.sh:Linux 服务一键安装/卸载/管理脚本
  - 拉取代码 → 编译 → 部署到 /opt/portal_page → systemd 服务
  - 自动创建 portal_page 用户和 FHS 目录
  - 支持 start/stop/restart/status
2026-05-28 14:59:51 +08:00
kevin 75bd5d726e up 2026-05-28 14:47:59 +08:00
kevin 957a594a0f up 2026-05-28 14:43:13 +08:00
kevin c16a8dfbc4 feat: 门户网站初始提交
- Go + Gin + html/template 服务端渲染
- 主页:Google 风格搜索框 + 导航卡片
- 后台:卡片 CRUD、搜索引擎配置、主页背景/标题配置
- 图片上传:支持 jpg/jpeg/png/gif,自动压缩,缩略图参数 ?thumb=1
- 安全:登录日志、修改密码、IP 自动封禁、IP 白名单
- 访问统计:主页访问/卡片点击/搜索追踪、实时流量、IP 统计
- SQLite 存储(modernc.org/sqlite,纯 Go)
- 内存 Session + bcrypt 密码哈希
2026-05-28 13:54:07 +08:00