哎!开发了几个月的灵沐PHP版本给人2天干了….


DEPLOY · 灵沐V6.1


2026.07

既然能够仰望星辰大海

又怎会在乎钻石的微光?


Go · Docker · MySQL · Redis · Nginx

supertofox

GoDocker

📦 2 Parts + Conclusion

👉 滑动

PART 01

Go 后台诞生记

 

PART 02

部署指南

架构·步骤·运维

 

PART ///

写在最后

作者信息

01

PART


PREFACE · Go 后台诞生记

在交流中有大佬就留言可以试试Go,对于 python、go 比较担心的就是部署问题,要是他们部署和 java 一样是有点不太喜欢的。后续「supertofox」也是百忙之中来抽了我一巴掌,只用了短短不到几天的时间,go 后台就写出来了。


02

PART


灵沐V6.1 部署指南

DEPLOY GUIDE · 从零到上线

一、项目架构

模块
技术栈
说明
Go 后端
Gin + GORM
API 服务,端口 9003
Admin 前端
React 19 + antd v6 + Vite 8
管理后台 SPA
小程序
微信原生开发
用户端
MySQL
8.0.36
持久化存储
Redis
7.2
Token 存储、限流
...architecture

小程序 ──→ server:9100 (Go API)

浏览器 ──→ admin:8890 (Nginx + SPA)

       ├─ /     → 静态文件

       ├─ /admin/  → 反代 server:9003

       ├─ /api/   → 反代 server:9003

       └─ /storage/ → 反代 server:9003

二、服务清单

服务
容器名
对外端口
依赖
mysql
lingmu-mysql
53307→3306
redis
lingmu-redis
无对外端口
server
lingmu-server
9100→9003
mysql + redis
admin
lingmu-admin
8890→80
server

三、环境要求


Linux 服务器(推荐 Ubuntu 22.04+)


Docker Engine 24.0+ 及 Docker Compose V2


内存 ≥ 2GB,磁盘 ≥ 10GB

四、部署步骤

STEP 01

安装 Docker

...bash

curl -fsSL https://get.docker.com | sh

sudo usermod -aG docker $USER

STEP 02

上传项目至服务器

...directory

/opt/lingmu/

├── deploy/     # Docker Compose 配置

├── 灵沐Go后端/   # Go 后端源码

└── 灵沐Admin/    # Admin 前端源码

STEP 03

配置环境变量

编辑 deploy/.env

...env

COMPOSE_PROJECT_NAME=lingmu

DB_PASSWORD=你的数据库密码   # 生产必须改

DB_NAME=lm_php

REDIS_PASSWORD=你的Redis密码  # 生产必须改

ADMIN_PORT=8890

SERVER_PORT=9100

编辑 deploy/docker/server.env,确保 DB_PASSWORD 和 REDIS_PASSWORD 与 .env 一致。TOKEN_KEY务必与原 PHP 一致,否则所有已登录用户 Token 失效。

STEP 04

启动服务

...bash

cd /opt/lingmu/deploy

docker compose up -d

首次启动 MySQL 自动导入 灵沐Go后端/mysql/lm_php.sql初始化数据

STEP 05

验证部署

...bash

# 容器状态

docker compose ps

# Go 后端健康检查

curl http://localhost:9100/health

# 返回 {“status”:”ok”}

# Admin 前端

curl -I http://localhost:8890

# 返回 200

默认账号密码:admin / 123456

五、域名与 HTTPS

DNS 解析:添加 A 记录指向服务器公网 IP

主机记录
类型
api
A
服务器公网 IP
admin
A
服务器公网 IP

通过宿主机 Nginx 反代,可不开放 9100、8890。

六、安全加固


修改默认密码(DB_PASSWORD、REDIS_PASSWORD)


移除 docker-compose.yml 中 mysql 的 ports 映射(不暴露 53307)


配置 HTTPS,所有对外服务走 HTTPS【使用了 RSA 加密,部署时非 HTTPS 不可登录,会报密码错误】


更新 CORS_DOMAIN 为实际域名


收紧 UPLOAD_ALLOWED_EXT 按业务需求

七、日常运维

...bash

# 查看日志

docker compose logs -f server

# 重启单个服务

docker compose restart server

# 代码更新后重新构建

docker compose up -d –build server

# MySQL 备份

docker exec lingmu-mysql mysqldump -u root -p lm_php > backup_$(date +%Y%m%d).sql

# 恢复备份

docker exec -i lingmu-mysql mysql -u root -p lm_php

# 清理构建缓存

docker builder prune –all –force

# 查看磁盘使用

docker system df

八、故障排查

问题
解决方案
502 Bad Gateway
检查 docker compose ps server,确认 server 容器 healthy
小程序请求失败
验证后端
Admin 页面空白
docker compose logs admin 查看构建日志
数据库连接失败
检查 server.env 中 DB_PASSWORD 与 .env 一致
Redis 连接失败
检查 REDIS_PASSWORD 配置一致性

健康检查端点:


Go 后端:GET /health → {“status”:”ok”}


MySQL:docker exec lingmu-mysql mysqladmin ping -h localhost


Redis:docker exec lingmu-redis redis-cli -a ping


Docker 内部 DNS:服务间通过容器名互通(mysql:3306、redis:6379、server:9003)

///

LAST


写在最后

CONTRIBUTOR · 致谢

有bug可以发邮件催催:supertofox

supertofox@qq.com

奶盘下载地址

https://pan.baidu.com/s/1CcTP8LOxY_79pqSoLeF7mg?pwd=s3me

要登录下载

https://1815295193.share.123pan.cn/123pan/SmZtVv-kZtYh

为您推荐