Go + MySQL 多站点内容管理与静态生成平台。
sitecluster,账号 root/root,主机 127.0.0.1)pymysql(安装 SQL、整站迁移必须用 Python,避免命令行中文乱码)在项目根目录执行(会创建库并安装全部数据表与种子数据):
python scripts/import_sql.py
# 或指定连接 / 读 configs/config.yaml:
python scripts/import_sql.py --config configs/config.yaml
说明:
--mode install = 001_schema + 002_seed + 幂等执行 upgrade 清单sql/install_manifest.json
go mod tidy
go build -o bin/sitecluster-admin ./cmd/admin # Linux
go build -o bin/sitecluster-admin.exe ./cmd/admin # Windows
./bin/sitecluster-admin -config configs/config.yaml
# 开发也可:go run ./cmd/admin
默认监听:http://127.0.0.1:9765
管理后台:http://127.0.0.1:9765/admin/(账号 admin / admin123)
生产请修改 configs/config.yaml:
mysql.* — 数据库admin.jwt_secret — 随机长字符串server.public_url — 对外可访问的管理端根地址(分站留言/统计上报用),例如 https://cluster.zunyun.ccserver.mode — 运行模式
debug:开发调试,Gin 输出详细请求日志(仅本机开发用)release:线上运营推荐,关闭调试日志、降低开销示例(线上):
server:
addr: ":9765"
mode: release
public_url: "https://cluster.zunyun.cc"
修改后需重启进程。完整示例见 configs/config.example.yaml。
chmod +x scripts/sitecluster.sh sitecluster-admin # 首次
./scripts/sitecluster.sh start # 启动
./scripts/sitecluster.sh restart # 重启
./scripts/sitecluster.sh stop # 停止
./scripts/sitecluster.sh status # 状态
日志:data/logs/sitecluster-admin.log
管理端进程只监听本机 127.0.0.1:9765,由 Nginx 对外提供 https://cluster.zunyun.cc/(不暴露 9765 端口)。
configs/config.yaml 示例:
server:
addr: ":9765" # 仅本机或内网,勿对公网开放防火墙端口
mode: release
public_url: "https://cluster.zunyun.cc" # 必须与浏览器访问域名一致(无尾斜杠)
mysql:
host: 127.0.0.1
port: 3306
user: zunyun_cluster
password: "你的密码"
database: zunyun_cluster
修改 public_url 后需重启 sitecluster-admin。
宝塔:网站 → 添加站点 cluster.zunyun.cc → 申请 SSL →「配置文件」中把站点根目录反代到后端即可。
独立 Nginx 可参考:
# /etc/nginx/conf.d/cluster.zunyun.cc.conf
upstream sitecluster_admin {
server 127.0.0.1:9765;
keepalive 32;
}
server {
listen 80;
server_name cluster.zunyun.cc;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name cluster.zunyun.cc;
# 宝塔一般已自动写入证书路径;手工部署请改成实际路径
ssl_certificate /www/server/panel/vhost/cert/cluster.zunyun.cc/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/cluster.zunyun.cc/privkey.pem;
client_max_body_size 64m; # 后台上传附件
proxy_read_timeout 300s;
proxy_send_timeout 300s;
location / {
proxy_pass http://sitecluster_admin;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection "";
}
}
重载:
nginx -t && nginx -s reload
# 宝塔也可在面板「重载配置」
访问:
| 地址 | 说明 |
|---|---|
https://cluster.zunyun.cc/ |
跳转到后台 |
https://cluster.zunyun.cc/admin/ |
管理后台 |
https://cluster.zunyun.cc/health |
健康检查 / 版本号 |
https://cluster.zunyun.cc/uploads/... |
上传文件 |
9765addr: ":9765" 即可(仅本机 Nginx 反代);若需限制更严,可配合本机防火墙只允许 127.0.0.1 访问 9765sitecluster-admin 常驻systemd 示例(可选):
# /etc/systemd/system/sitecluster.service
[Unit]
Description=SiteCluster Admin
After=network.target mysql.service
[Service]
Type=simple
WorkingDirectory=/www/wwwroot/zunyun_cluster
ExecStart=/www/wwwroot/zunyun_cluster/sitecluster-admin -config configs/config.yaml
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now sitecluster
暂无版本信息