# project_manager **Repository Path**: code_87/project_manager ## Basic Information - **Project Name**: project_manager - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目管理 项目管理是 Go 单文件私有化部署平台。最终交付物只有 `dist/project-manager-server`:Go 后端、SQLite 和 `frontend/` 静态网站都嵌入该文件,不需要 Node.js、npm、系统 Git、系统 Python或 Docker。 ## 服务器安装 服务器安装 Go 1.26 或更高版本后,克隆本仓库并直接编译项目管理器: ```sh sh scripts/build.sh ./dist/project-manager-server ``` `scripts/build.sh` 只编译本仓库的 Go 后端并把静态前端嵌入 `dist/project-manager-server`。它不下载项目管理器成品,也不访问 Git 制品仓库。Node、Python、Git、JDK、用户选择的 Go、MySQL、Redis 和 WAAL 仍只下载国内预编译包,不在服务器编译这些第三方运行依赖。 在 macOS 开发机一次生成全部支持平台: ```sh sh scripts/build.sh all ``` 产物位于 `dist/releases/`,包括 Linux x86_64/arm64、macOS x86_64/arm64 和 Windows x86_64。也可把 `all` 换成具体目标,例如 `linux-x86_64`。这些目标只交叉编译项目管理器自身;各目标运行后会下载自身平台对应的依赖预编译包。 浏览器访问 `http://服务器IP:18080`。停止: ```sh sh scripts/stop.sh ``` 首次启动会在二进制同级创建: ```text dist/ project-manager-server pm_data/ config.yaml server.pid database/project-manager.db ai-runtime/ .cache/ runtime-downloads/ service-downloads/ toolchains/ conda-packages/ runtimes/ services/ services-data/ service-logs/ artifacts/ users/ ``` 初始管理员账号和随机密码只在首次启动日志中显示。旧 Node 数据和密码不兼容,也不会自动导入。 ## 配置 默认配置是 `dist/pm_data/config.yaml`。可使用 `--config /path/config.yaml` 读取监听、初始化账号和密钥,但业务数据仍固定在二进制同级 `pm_data/`,便于整体迁移和备份。 ```yaml listen: "0.0.0.0:18080" public: http: ":80" https: ":443" bootstrap: username: "admin" password: "首次初始化密码" security: token_secret: "至少三十二位随机密钥" backup: key: "独立备份密钥" ``` `public.http` 开启域名 HTTP 回源和验证,`public.https` 在已有用户导入的 PEM 证书时开启 HTTPS/SNI。环境直接组网访问时选择监听 `0.0.0.0`,并只在组网网卡或防火墙放行该环境端口。 ## 预编译依赖原则 - 项目管理服务器:由本仓库在目标服务器执行 `go build` 生成,不依赖二进制发布仓库。 - WAAL/Lua AI 内核:运行时从更新服务自动取得当前架构最新动态库,Lua 内核由该动态库从 `webai_lua_runtime` 渠道强制更新;服务地址可用 `WAAL_UPDATE_SERVER_URL` 配置,不在服务器源码构建。 - Node.js:npmmirror 官方预编译包。 - Go:阿里云 Go 官方预编译包。 - JDK:华为云 OpenJDK 预编译包。 - Python、Git、Redis:重庆邮电/中山大学 Miniconda 引导器与清华 conda-forge 对应平台预编译包。 - MySQL:华为云 MySQL Linux glibc 预编译包。 除了项目管理器自身的 `go build`,服务器不会执行 `make`、CMake、vcpkg、C/C++ 编译或 Redis 源码编译。依赖下载文件会缓存;已安装文件校验存在后直接复用。 ## 源码结构 ```text backend/src/ Go 后端、数据库结构、嵌入的 Lua 运行时 frontend/ 纯 HTML/CSS/JavaScript 静态网站和官方 AI PNG 图标 scripts/build.sh 编译本仓库 Go 单文件 scripts/stop.sh 停止当前服务器 dist/ 唯一交付文件和运行数据目录 ``` 仓库不再包含 Node 后端,也没有 Node 兼容启动路径。 ## 可编译平台 当前源码已验证可生成: - `linux-x86_64` - `linux-arm64` - `macos-x86_64` - `macos-arm64` - `windows-x86_64` 在对应系统执行 `sh scripts/build.sh` 即生成当前系统和架构的文件;在 macOS 执行 `sh scripts/build.sh all` 可一次生成五个平台文件,Windows 文件使用 `.exe`。不需要上传项目管理器二进制。 ## 验证 ```sh curl -fsS http://127.0.0.1:18080/healthz curl -fsS http://127.0.0.1:18080/api/v1/meta ``` `/healthz` 返回 `runtime: go`。AI 设置页同时显示 WAAL/Lua 内核版本;每个用户使用独立的 AI 凭据目录。