refactor(server): 调整 Docker 运行架构为 Next.js 代理 Go API

- 修改 Dockerfile 中的运行命令,将 Next.js 设为对外服务,Go 服务在内部监听
- 更新端口配置,后端监听端口从 3000 改为 80
- 移除 Go 服务中的反向代理逻辑,统一由 Next.js 处理页面请求
- 修改 Next.js 配置,在生产环境中也启用 API 代理功能
- 更新文档描述,明确 Next.js 作为页面入口,API 请求代理到 Go 服务
- 调整开发环境端口配置,web 开发端口从 3001 改为 3000
- 更新版本号至 v0.0.4 并修改 CHANGELOG
This commit is contained in:
HouYunFei
2026-05-20 13:54:15 +08:00
parent fd533dd261
commit 2ab499bc54
8 changed files with 23 additions and 25 deletions
+1 -15
View File
@@ -2,17 +2,12 @@ package router
import (
"net/http"
"net/http/httputil"
"net/url"
"strings"
"github.com/basketikun/infinite-canvas/handler"
"github.com/basketikun/infinite-canvas/middleware"
"github.com/gin-gonic/gin"
)
const webBaseURL = "http://127.0.0.1:3001"
func New() *gin.Engine {
router := gin.Default()
router.RedirectTrailingSlash = false
@@ -47,16 +42,7 @@ func New() *gin.Engine {
handler.AdminDeleteAsset(c.Writer, c.Request, c.Param("id"))
})
webURL, _ := url.Parse(webBaseURL)
webProxy := httputil.NewSingleHostReverseProxy(webURL)
router.NoRoute(func(c *gin.Context) {
path := c.Request.URL.Path
if path == "/api" || strings.HasPrefix(path, "/api/") {
middleware.NotFoundJSON(c)
return
}
webProxy.ServeHTTP(c.Writer, c.Request)
})
router.NoRoute(middleware.NotFoundJSON)
return router
}