# dir_manager **Repository Path**: gaocong0228/dir_manager ## Basic Information - **Project Name**: dir_manager - **Description**: 目录管理器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 目录管理器 单机 Web 文件管理平台。 当前版本支持: - 启动后动态新增多根路径,例如 `/data/jenkins_product`、`/root` - 管理员与普通用户 - 以文件夹树为单位分配 `view/upload/download/create/edit/delete` 权限 - 管理员左树右详情的权限分配界面 - 普通用户按可访问根路径进入工作台 - `base_path` 代理 - 本地元数据存储与本地文件存储 - 审计日志自动保留最近 5000 条记录,避免日志文件无限增大 ## 目录 ```text cmd/server internal/auth internal/config internal/fsops internal/httpapi internal/model internal/store web configs scripts deploy ``` ## 配置 配置文件是基于 [config.json.example](/home/gaocong/桌面/ai/dir_manage目录管理器/configs/config.json.example) 创建的。 请将 `config.json.example` 复制为 `config.json`,并根据您的需求修改 `config.json` 中的配置项。 **注意:** 请务必修改 `bootstrap_admin` 的 `password` 字段,以确保您的系统安全。 示例 `config.json.example` 内容: ```json { "app_name": "目录管理器", "listen_addr": ":18081", "base_path": "/dir", "storage_dir": "../data", "session_ttl_hours": 168, "max_upload_size_mb": 2048, "bootstrap_admin": { "username": "admin", "display_name": "System Admin", "password": "your_initial_admin_password" } } ``` 根路径现在不需要写在配置里。 系统启动后: - 管理员可以在“权限分配”页面里动态新增根路径 - 只有已存在的绝对目录才允许加入系统 - 新增后可在列式目录浏览中按文件夹为用户分配 ACL ## 快速开始 1. **克隆项目** ```bash git clone https://gitee.com/gaocong0228/dir_manager.git cd dir_manager ``` 2. **配置** 复制示例配置文件并进行修改: ```bash cp configs/config.json.example configs/config.json # 使用您喜欢的编辑器编辑 configs/config.json,修改密码等配置 ``` 3. **编译** 构建项目可执行文件: ```bash ./scripts/build.sh # 或者指定平台编译: # TARGET_OS=linux TARGET_ARCH=amd64 ./scripts/build.sh ``` 编译完成后会在 `bin/` 目录下生成可执行文件 `jenkins-product-web`。 4. **运行** 直接运行编译后的二进制文件: ```bash ./bin/jenkins-product-web -config configs/config.json ``` 或者使用提供的服务管理脚本: ```bash ./scripts/service.sh start ``` ## 运行 **开发环境运行:** ```bash env GOCACHE=/tmp/go-build go run ./cmd/server -config configs/config.dev.json ``` **本地编译:** ```bash ./scripts/build.sh # 或者指定平台编译: TARGET_OS=linux TARGET_ARCH=amd64 ./scripts/build.sh ``` 编译完成后会生成: ```text bin/jenkins-product-web ``` ## 部署 将编译好的 `jenkins-product-web` 二进制文件和 `configs/`、`web/`、`scripts/` 等相关目录部署到服务器。 推荐使用 `scripts/service.sh` 脚本来管理服务: - **启动服务** ```bash ./scripts/service.sh start ``` - **检查服务状态** ```bash ./scripts/service.sh status ``` - **停止服务** ```bash ./scripts/service.sh stop ``` - **重启服务** ```bash ./scripts/service.sh restart ``` 为了在生产环境中提供更好的性能和安全性,建议使用 Nginx 作为反向代理。 ## 页面 - 用户管理:只需用户名和密码即可创建普通用户 - 权限分配:列式浏览目录,支持多选目录并批量分配权限 - 根路径删除:只删除系统中的根路径登记和 ACL,不删除服务器真实目录 - 工作台:选择可访问根路径,按列浏览文件并执行上传、下载、创建、编辑、删除 ## Nginx 参考 [nginx.conf.example](/home/gaocong/桌面/ai/dir_manage目录管理器/deploy/nginx.conf.example)。 当 `base_path` 为 `/aa` 时: - 页面入口:`/aa/` - API:`/aa/api/...` - Cookie Path:`/aa`