自托管 · Go + SQLite · 无需 Node.js

Hugo 的日常运维,
收进一个安静的后台。

内容、主题、插件、媒体和构建,都在同一个界面里完成。 一个二进制文件,一个 SQLite 文件,不需要手写配置文件,也不需要打开终端。

  • Go 1.24
  • SQLite
  • PrimeVue 4
  • PWA
Hugo Panel 在 iPhone 上的仪表盘界面:顶部是菜单、语言与主题按钮,下方为内容统计卡片和发布节奏图表。
可安装的 PWA 离线应用壳 · 移动端适配 · 加到主屏幕

界面

一屏看清站点正在发生什么

内容总量、发布节奏、主题状态和最近编辑,打开后台的第一眼就能读到。

Hugo Panel 桌面端仪表盘:左侧导航,顶部搜索与语言切换,主体为内容统计卡片、发布节奏图表和站点概览。

桌面端仪表盘 · 亮色主题

功能

该在界面上做的事,都不用回到命令行

面向日常写作与运维,而不是配置文件的速查表。

内容管理

Markdown 页面与文章的新建、重命名、搜索、筛选和分页;front matter 支持 YAML / TOML / JSON,右侧实时预览。

主题管理

列出 themes/ 下的主题并一键启用,也可以从 Git 安装、更新或移除;站点参数和菜单可视化编辑。

插件与模块

以 Hugo Modules 安装、移除插件,执行 hugo mod tidy,命令输出和工具链状态直接回显。

媒体库

浏览本机目录、S3 与 WebDAV 存储库。上传、预览、移动和复制图片、视频、音频、PDF 和文档,一键复制 URL 或 Markdown 链接。

构建

在面板里运行 hugo --gc --minify --cleanDestinationDir,保留最后一次结果,失败时可以邮件通知。

多语言

内置简体中文、繁体中文、英语、法语、意大利语、西班牙语、日语、韩语、德语。每种语言独立文件,按需加载,也能上传自己的译文。

亮色与纯黑

默认跟随系统。暗色主题使用纯黑 #000 背景,OLED 屏幕下像素不发光,也更省电。

安全

HttpOnly 会话、CSRF 防护、登录与找回密码限流、同源校验、CSP 和路径穿越防护;配置修改前自动备份。

部署

一条命令开始

镜像同时提供 linux/amd64 与 linux/arm64。首次打开会进入创建管理员的向导。

binary install
curl -fsSL https://github.com/Kaiyuan/hugo-panel/releases/latest/download/install.sh | sh

Linux / macOS · amd64 / arm64 · SHA-256

docker run
docker run -d \
  --name hugo-panel \
  --restart unless-stopped \
  --network bridge \
  -p 55530:55530 \
  -v /srv/hugo-panel/data:/app/hugo-panel/data \
  -v /srv/my-hugo-site:/app/hugo \
  -v /srv/media:/app/media \
  -e PUBLIC_URL=https://panel.example.com \
  -e TZ=Asia/Shanghai \
  kaiyuan/hugo-panel:latest
docker compose
services:
    hugo-panel:
        # Build the image locally from this repository instead of pulling a remote image.
        build:
            context: .
            dockerfile: Dockerfile
            args:
                COMMIT: ${COMMIT:-none}
                BUILD_TIME: ${BUILD_TIME:-unknown}
        image: kaiyuan/hugo-panel:latest
        container_name: hugo-panel
        restart: unless-stopped
        ports:
            - "55530:55530"
        network_mode: bridge
        environment:
            TZ: Asia/Shanghai
            HUGO_DIR: /app/hugo
            # Public URL of this panel, used for password-reset links.
            PUBLIC_URL: http://localhost:55530
        volumes:
            # Host paths are configured in .env (defaults keep them next to this file).
            - "${HOST_DATA_DIR:-./data}:/app/hugo-panel/data"
            - "${HOST_HUGO_DIR:-./hugo}:/app/hugo"
            - "${HOST_MEDIA_DIR:-./media}:/app/media"
start
docker compose up -d --build
两个挂载目录

/app/hugo-panel/data 放 SQLite 数据库、备份和自定义翻译;/app/hugo 是你的 Hugo 站点目录。

需要 HTTPS

除 localhost 外,安装 PWA 和 Service Worker 都要求 HTTPS,建议放在反向代理之后并设置 PUBLIC_URL。

容器权限

默认以 UID/GID 1000 运行,启动时会把挂载目录 chown 给该用户;由外部工具管理权限时可关闭。

跑起来,然后忘掉配置文件。

源码、文档和问题反馈都在 GitHub。项目以 MIT 许可证开源。