diff --git a/Makefile b/Makefile index f3ea2749..7a4f3c72 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ build-embedded: go build \ -tags embed_frontend \ -ldflags "-s -w -X '$(MODULE)/internal/buildinfo.Version=$(VERSION)' -X '$(MODULE)/internal/buildinfo.BuildTime=$(BUILD_DATE)'" \ - -o bin/wavelet \ + -o bin/openflare-server \ main.go code-check: @@ -35,7 +35,7 @@ build-backend: @echo "==> Building backend version=$(VERSION) build_date=$(BUILD_DATE)..." go build \ -ldflags "-s -w -X '$(MODULE)/internal/buildinfo.Version=$(VERSION)' -X '$(MODULE)/internal/buildinfo.BuildTime=$(BUILD_DATE)'" \ - -o bin/wavelet \ + -o bin/openflare-server \ main.go build-agent: diff --git a/docker/Dockerfile b/docker/Dockerfile index 873afcc7..29247e2c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,7 +46,7 @@ RUN CGO_ENABLED=0 GOOS=linux go build \ -tags embed_frontend \ -trimpath \ -ldflags="-s -w -X github.com/Rain-kl/Wavelet/internal/buildinfo.Version=${VERSION} -X github.com/Rain-kl/Wavelet/internal/buildinfo.BuildTime=${BUILD_DATE}" \ - -o /out/wavelet \ + -o /out/openflare-server \ ./main.go FROM alpine:${ALPINE_VERSION} @@ -59,10 +59,10 @@ RUN apk add --no-cache ca-certificates tzdata postgresql-client && \ WORKDIR /app -COPY --from=backend-builder /out/wavelet ./wavelet +COPY --from=backend-builder /out/openflare-server ./openflare-server COPY docs ./docs EXPOSE 3000 -ENTRYPOINT ["./wavelet"] +ENTRYPOINT ["./openflare-server"] CMD ["all"] diff --git a/docker/Dockerfile.backend b/docker/Dockerfile.backend index 1bb8bfa3..0757780c 100644 --- a/docker/Dockerfile.backend +++ b/docker/Dockerfile.backend @@ -20,7 +20,7 @@ COPY . . RUN CGO_ENABLED=0 GOOS=linux go build \ -trimpath \ -ldflags="-s -w -X github.com/Rain-kl/Wavelet/internal/buildinfo.Version=${VERSION} -X github.com/Rain-kl/Wavelet/internal/buildinfo.BuildTime=${BUILD_DATE}" \ - -o /out/wavelet \ + -o /out/openflare-server \ ./main.go FROM alpine:${ALPINE_VERSION} @@ -33,10 +33,10 @@ RUN apk add --no-cache ca-certificates tzdata postgresql-client && \ WORKDIR /app -COPY --from=builder /out/wavelet ./wavelet +COPY --from=builder /out/openflare-server ./openflare-server COPY docs ./docs EXPOSE 3000 -ENTRYPOINT ["./wavelet"] +ENTRYPOINT ["./openflare-server"] CMD ["api"] diff --git a/docker/Dockerfile.cross b/docker/Dockerfile.cross index 61bdf6fe..df13ea4c 100644 --- a/docker/Dockerfile.cross +++ b/docker/Dockerfile.cross @@ -90,7 +90,7 @@ RUN set -e; \ [ -n "$FILTER_ARCH" ] && [ "$GOARCH" != "$FILTER_ARCH" ] && continue; \ EXT=""; \ [ "$GOOS" = "windows" ] && EXT=".exe"; \ - OUTPUT="/out/wavelet_${GOOS}_${GOARCH}${EXT}"; \ + OUTPUT="/out/openflare-server_${GOOS}_${GOARCH}${EXT}"; \ echo "==> Building ${OUTPUT} (version=${VERSION})..."; \ CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} \ go build \ diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 6d1fd483..b71ef3b2 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -10,9 +10,9 @@ | 组件名称 | 运行命令/形式 | 职责说明 | 必选/可选 | | :--- | :--- | :--- | :--- | -| **HTTP API 服务** | `bin/wavelet api` | 接收并处理前端及第三方的 RESTful API 请求 | **必选** | -| **异步任务工作进程** | `bin/wavelet worker` | 消费并处理异步队列任务(如邮件发送、清理上传文件等) | **必选** | -| **定时任务调度器** | `bin/wavelet scheduler` | 定时向 Redis 队列下发 Cron 任务(仅负责触发,不负责执行) | **必选** | +| **HTTP API 服务** | `bin/openflare-server api` | 接收并处理前端及第三方的 RESTful API 请求 | **必选** | +| **异步任务工作进程** | `bin/openflare-server worker` | 消费并处理异步队列任务(如邮件发送、清理上传文件等) | **必选** | +| **定时任务调度器** | `bin/openflare-server scheduler` | 定时向 Redis 队列下发 Cron 任务(仅负责触发,不负责执行) | **必选** | | **前端服务 (Node.js)** | `pnpm start` | 提供 React/Next.js 页面服务(在分离部署时使用) | 分离模式必选 | | **PostgreSQL** | 关系型主数据库 | 存储用户、系统配置、认证源、任务执行记录等核心数据 | **必选** | | **Redis** | 缓存与消息队列中间件 | 存储 Session 会话、临时缓存以及 Asynq 异步任务队列数据 | **必选** | @@ -99,12 +99,12 @@ docker compose up -d make build-embedded ``` 该命令会自动完成前端的静态编译导出 (`frontend/out`)、复制到 Go 后端目录,最后使用 `-tags embed_frontend` 生成后端单文件: -- 产物路径:`bin/wavelet` +- 产物路径:`bin/openflare-server` #### 3. 进程管理 (使用 Systemd) -将 `bin/wavelet` 拷贝到生产服务器 `/usr/local/bin/wavelet`,并为 `api`、`worker` 和 `scheduler` 配置 Systemd 管理服务。 +将 `bin/openflare-server` 拷贝到生产服务器 `/usr/local/bin/openflare-server`,并为 `api`、`worker` 和 `scheduler` 配置 Systemd 管理服务。 -新建 API 进程服务文件 `/etc/systemd/system/wavelet-api.service`: +新建 API 进程服务文件 `/etc/systemd/system/openflare-api.service`: ```ini [Unit] Description=Refreshing API Service @@ -114,14 +114,14 @@ After=network.target Type=simple User=root WorkingDirectory=/app -ExecStart=/usr/local/bin/wavelet api +ExecStart=/usr/local/bin/openflare-server api Restart=always RestartSec=5 [Install] WantedBy=multi-user.target ``` -同理,新建 Worker 服务 `/etc/systemd/system/wavelet-worker.service`(将命令改为 `wavelet worker`),以及 Scheduler 服务 `/etc/systemd/system/wavelet-scheduler.service`(将命令改为 `wavelet scheduler`)。 +同理,新建 Worker 服务 `/etc/systemd/system/openflare-worker.service`(将命令改为 `openflare-server worker`),以及 Scheduler 服务 `/etc/systemd/system/openflare-scheduler.service`(将命令改为 `openflare-server scheduler`)。 启动并启用所有服务: ```bash @@ -171,9 +171,9 @@ server { #### 1. 部署后端 Go 服务 1. 编译后端: ```bash - go build -o bin/wavelet main.go + go build -o bin/openflare-server main.go ``` -2. 在后端服务器上,同样使用 Systemd 或 Docker 守护启动 `wavelet api`、`wavelet worker` 和 `wavelet scheduler`。 +2. 在后端服务器上,同样使用 Systemd 或 Docker 守护启动 `openflare-server api`、`openflare-server worker` 和 `openflare-server scheduler`。 3. 配置后端 Nginx 将客户端 API 请求(如 `/api/...`)反向代理至后端绑定的端口(如 `:8000`)。 #### 2. 部署前端 Next.js 服务