feat: 添加服务管理脚本和Dockerfile

This commit is contained in:
Your Name
2026-05-06 18:23:23 +08:00
parent 98e00c1f32
commit 0f9663045c
4 changed files with 581 additions and 13 deletions
+85 -13
View File
@@ -260,18 +260,92 @@ sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
```
## 开机自启(可选)
## 服务管理脚本
### Windows - 任务计划程序
项目提供了 Windows 和 Linux 的服务管理脚本,支持安装、卸载、启动、停止、重启、开机自启等操作。
### Windows - service-windows.bat
以**管理员身份**运行 `scripts/service-windows.bat`,进入交互式菜单:
```
========================================
FTP Server 服务管理工具
========================================
1. 安装服务 (注册为 Windows 服务)
2. 卸载服务
3. 启动服务
4. 停止服务
5. 重启服务
6. 查看服务状态
7. 开机自启 - 开启
8. 开机自启 - 关闭
9. 查看运行日志
0. 退出
```
使用前将 `scripts/service-windows.bat` 复制到 `ftp-server.exe` 同目录下,然后右键"以管理员身份运行"。
### Linux - service-linux.sh
```bash
# 添加执行权限
chmod +x scripts/service-linux.sh
# 交互式菜单
sudo ./scripts/service-linux.sh menu
# 或直接使用命令
sudo ./scripts/service-linux.sh install # 安装为 systemd 服务
sudo ./scripts/service-linux.sh start # 启动
sudo ./scripts/service-linux.sh stop # 停止
sudo ./scripts/service-linux.sh restart # 重启
sudo ./scripts/service-linux.sh status # 查看状态
sudo ./scripts/service-linux.sh enable # 设置开机自启
sudo ./scripts/service-linux.sh disable # 关闭开机自启
sudo ./scripts/service-linux.sh logs # 查看实时日志
sudo ./scripts/service-linux.sh uninstall # 卸载服务
```
脚本会自动在 `/etc/systemd/system/ftp-server.service` 创建 systemd 服务文件。
### Docker 运行
```bash
# 构建镜像
docker build -t ftp-server .
# 运行容器
docker run -d \
--name ftp-server \
-p 2121:2121 \
-p 50000-50100:50000-50100 \
-p 8080:8080 \
-v ./data:/app/data \
-v ./ftp_root:/app/ftp_root \
-v ./config.json:/app/config.json \
ftp-server
# 查看日志
docker logs -f ftp-server
```
### 手动设置开机自启
<details>
<summary>Windows - 任务计划程序(点击展开)</summary>
```powershell
# 创建开机自启任务
schtasks /create /tn "FTP Server" /tr "C:\path\to\ftp-server.exe" /sc onstart /ru SYSTEM
```
### Linux - systemd
</details>
创建服务文件 `/etc/systemd/system/ftp-server.service`
<details>
<summary>Linux - 手动创建 systemd 服务(点击展开)</summary>
创建 `/etc/systemd/system/ftp-server.service`
```ini
[Unit]
@@ -290,20 +364,14 @@ RestartSec=5
WantedBy=multi-user.target
```
启动并设置开机自启:
```bash
sudo systemctl daemon-reload
sudo systemctl start ftp-server
sudo systemctl enable ftp-server
# 查看状态
sudo systemctl status ftp-server
# 查看日志
sudo journalctl -u ftp-server -f
```
</details>
## 项目结构
```
@@ -317,6 +385,10 @@ ftp-server/
│ ├── index.html # 管理界面
│ ├── css/style.css # 样式
│ └── js/app.js # 前端逻辑
├── scripts/
│ ├── service-windows.bat # Windows 服务管理脚本
│ └── service-linux.sh # Linux 服务管理脚本
├── Dockerfile # Docker 构建文件
├── go.mod # Go 模块定义
└── go.sum # 依赖校验
```