浏览代码

docs: add README

Your Name 3 周之前
父节点
当前提交
d82d2e6d53
共有 1 个文件被更改,包括 137 次插入0 次删除
  1. 137 0
      README.md

+ 137 - 0
README.md

@@ -0,0 +1,137 @@
+# FTP Server for Windows
+
+基于 Go 语言开发的轻量级 FTP 服务器,带 Web 管理面板,专为 Windows 环境设计。
+
+## 功能特性
+
+### FTP 服务
+- 完整的 FTP 协议支持(RFC 959)
+- 主动模式(PORT)和被动模式(PASV)
+- 文件上传 / 下载(STOR / RETR)
+- 目录浏览、创建、删除(LIST / MKD / RMD)
+- 文件删除、重命名(DELE / RNFR / RNTO)
+- 每用户独立的 HomeDir 和权限控制(只读 / 可写)
+
+### Web 管理面板
+- 管理员登录认证(Token 机制,24h 自动过期)
+- 仪表盘 — 服务器状态实时概览
+- 用户管理 — 添加 / 编辑 / 删除 FTP 用户
+- 系统设置 — 修改 FTP 端口、Web 端口、管理员密码
+
+## 快速开始
+
+### 编译
+
+确保已安装 Go 1.21+,然后执行:
+
+```bash
+go build -o ftp-server.exe ./cmd/
+```
+
+### 运行
+
+```bash
+# 使用默认配置启动
+.\ftp-server.exe
+
+# 指定配置文件
+.\ftp-server.exe -config myconfig.json
+```
+
+首次运行会自动生成 `config.json` 配置文件和 `ftp_root` 根目录。
+
+### 访问
+
+| 服务 | 地址 |
+|------|------|
+| Web 管理面板 | http://localhost:8080 |
+| FTP 服务 | localhost:2121 |
+
+### 默认账号
+
+| 服务 | 用户名 | 密码 |
+|------|--------|------|
+| Web 管理面板 | `admin` | `admin123` |
+| FTP 默认用户 | `ftpuser` | `ftp123` |
+
+> 请在首次登录后立即修改默认密码。
+
+## 配置说明
+
+配置文件为 `config.json`,结构如下:
+
+```json
+{
+  "ftp": {
+    "host": "0.0.0.0",
+    "port": 2121,
+    "passivePortMin": 50000,
+    "passivePortMax": 50100,
+    "rootDir": "./ftp_root"
+  },
+  "web": {
+    "host": "0.0.0.0",
+    "port": 8080
+  },
+  "admin": {
+    "username": "admin",
+    "password": "admin123"
+  },
+  "ftpUsers": [
+    {
+      "username": "ftpuser",
+      "password": "ftp123",
+      "homeDir": "./ftp_root",
+      "write": true
+    }
+  ]
+}
+```
+
+| 字段 | 说明 |
+|------|------|
+| `ftp.host` | FTP 监听地址 |
+| `ftp.port` | FTP 端口(默认 2121,避免需要管理员权限) |
+| `ftp.passivePortMin/Max` | 被动模式端口范围 |
+| `ftp.rootDir` | FTP 根目录 |
+| `web.host` | Web 面板监听地址 |
+| `web.port` | Web 面板端口 |
+| `admin.username/password` | 管理员凭据 |
+| `ftpUsers` | FTP 用户列表 |
+| `ftpUsers[].homeDir` | 用户主目录 |
+| `ftpUsers[].write` | 是否允许写入 |
+
+## FTP 客户端连接
+
+推荐使用 [FileZilla](https://filezilla-project.org/) 或 Windows 资源管理器连接:
+
+```
+主机: localhost
+端口: 2121
+用户名: ftpuser
+密码: ftp123
+```
+
+## 项目结构
+
+```
+FTP-server/
+├── cmd/main.go          # 主程序入口
+├── config/config.go     # 配置管理模块
+├── ftp/server.go        # FTP 服务核心
+├── web/server.go        # Web 管理面板后端 API
+├── static/embed.go      # 前端 HTML 页面(内嵌)
+├── go.mod               # Go 模块定义
+└── config.json          # 运行时配置(自动生成)
+```
+
+## 技术栈
+
+- **Go** — 无需运行时依赖,单文件部署
+- **标准库 net/http** — Web 管理面板
+- **标准库 net** — FTP 协议实现
+- **内嵌 HTML/CSS/JS** — 无需额外前端文件
+
+## 许可证
+
+MIT License