docker部署
This commit is contained in:
12
nas-uploader/Dockerfile
Normal file
12
nas-uploader/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM python:3.11-slim
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
EXPOSE 5001
|
||||||
|
|
||||||
|
CMD ["python3", "app.py"]
|
||||||
15
nas-uploader/docker-compose.yml
Normal file
15
nas-uploader/docker-compose.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
services:
|
||||||
|
nas-uploader:
|
||||||
|
build: .
|
||||||
|
container_name: nas-uploader
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "5001:5001"
|
||||||
|
volumes:
|
||||||
|
- ${NAS_DATA_PATH:-/volume1/photo/训练营图片}:/app/data
|
||||||
|
environment:
|
||||||
|
- NAS_DATA_PATH=/app/data
|
||||||
|
- PORT=5001
|
||||||
|
- ALLOWED_EXTENSIONS=jpg,jpeg,png,gif,webp
|
||||||
|
- MAX_FILES_COUNT=100
|
||||||
|
- MAX_FILE_SIZE_MB=20
|
||||||
368
部署文档.md
368
部署文档.md
@@ -11,13 +11,31 @@
|
|||||||
|
|
||||||
| 项目 | 说明 |
|
| 项目 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
|
| 公网服务器 | 有公网IP的云服务器(阿里云/腾讯云等),最低配1核1G即可 |
|
||||||
| 群晖NAS | 已开启SSH,能通过终端访问 |
|
| 群晖NAS | 已开启SSH,能通过终端访问 |
|
||||||
| 公网服务器 | 有公网IP,已安装frps(frp服务端) |
|
|
||||||
| NAS存储路径 | 决定图片存放在哪个共享文件夹下 |
|
| NAS存储路径 | 决定图片存放在哪个共享文件夹下 |
|
||||||
|
|
||||||
### 1.2 项目文件清单
|
### 1.2 整体部署架构
|
||||||
|
|
||||||
部署前确认以下文件完整:
|
```
|
||||||
|
用户手机/电脑
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
公网服务器(运行 frps)
|
||||||
|
│ 端口:7000(frp通信)、8080(对外访问)
|
||||||
|
│
|
||||||
|
▼ frp 内网穿透
|
||||||
|
│
|
||||||
|
群晖NAS(运行 Flask + frpc)
|
||||||
|
│ 端口:5000(Flask服务)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NAS磁盘存储图片
|
||||||
|
```
|
||||||
|
|
||||||
|
**部署顺序:先配置服务器 → 再配置NAS → 最后验证**
|
||||||
|
|
||||||
|
### 1.3 项目文件清单
|
||||||
|
|
||||||
```
|
```
|
||||||
nas-uploader/
|
nas-uploader/
|
||||||
@@ -36,9 +54,175 @@ nas-uploader/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. 群晖NAS上的部署步骤
|
## 2. 公网服务器部署(frps)
|
||||||
|
|
||||||
### 2.1 上传项目文件
|
> 服务器只需要运行 frp 服务端(frps),不需要安装Python或其他依赖。
|
||||||
|
|
||||||
|
### 2.1 购买服务器
|
||||||
|
|
||||||
|
| 配置项 | 建议 |
|
||||||
|
|--------|------|
|
||||||
|
| 系统 | **Ubuntu 22.04 LTS** 或 Debian 12 |
|
||||||
|
| 配置 | 1核1G内存就够了(frp只做流量转发,不吃资源) |
|
||||||
|
| 带宽 | 1-3Mbps即可(传截图够用) |
|
||||||
|
| 地域 | 选国内(延迟低,速度快) |
|
||||||
|
|
||||||
|
### 2.2 SSH登录服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 服务器购买后会得到公网IP和密码,用SSH登录
|
||||||
|
ssh root@你的公网IP
|
||||||
|
```
|
||||||
|
|
||||||
|
> 首次登录会提示是否信任主机,输入 `yes`,然后输入密码。
|
||||||
|
|
||||||
|
### 2.3 下载并配置frps
|
||||||
|
|
||||||
|
> **版本说明**:截至2026年4月,frp最新稳定版为 **v0.68.1**。frp官方只提供GitHub下载,没有apt/yum等包管理器安装方式。
|
||||||
|
|
||||||
|
**下载方式(任选一种能用的):**
|
||||||
|
|
||||||
|
**方式一:国内镜像加速(推荐)**
|
||||||
|
```bash
|
||||||
|
mkdir -p /opt/frp && cd /opt/frp
|
||||||
|
# ghproxy镜像
|
||||||
|
wget https://mirror.ghproxy.com/https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
**方式二:Gitee镜像**
|
||||||
|
```bash
|
||||||
|
mkdir -p /opt/frp && cd /opt/frp
|
||||||
|
wget https://gitee.com/mirrors/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
**方式三:GitHub官方(国外服务器或能翻墙)**
|
||||||
|
```bash
|
||||||
|
mkdir -p /opt/frp && cd /opt/frp
|
||||||
|
wget https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
**方式四:自己电脑下载后传到服务器**
|
||||||
|
1. 在自己电脑浏览器打开:https://github.com/fatedier/frp/releases/tag/v0.68.1
|
||||||
|
2. 下载 `frp_0.68.1_linux_amd64.tar.gz`
|
||||||
|
3. 通过群晖Web界面上传到NAS,或用SCP传到服务器:
|
||||||
|
```bash
|
||||||
|
scp frp_0.68.1_linux_amd64.tar.gz root@你的服务器IP:/opt/frp/
|
||||||
|
```
|
||||||
|
|
||||||
|
**方式五:用curl代替wget(有些服务器wget受限但curl能用)**
|
||||||
|
```bash
|
||||||
|
mkdir -p /opt/frp && cd /opt/frp
|
||||||
|
curl -L -o frp.tar.gz https://mirror.ghproxy.com/https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
tar -xzf frp.tar.gz && mv frp_0.68.1_linux_amd64/* . && rm frp.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
**下载完成后继续:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 解压(如果上面方式五已经解压过就跳过)
|
||||||
|
tar -xzf frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
mv frp_0.68.1_linux_amd64/* .
|
||||||
|
|
||||||
|
# 创建服务端配置文件
|
||||||
|
vi frps.toml
|
||||||
|
```
|
||||||
|
|
||||||
|
写入以下内容(**请修改密码**):
|
||||||
|
|
||||||
|
```toml
|
||||||
|
# frp 服务端配置
|
||||||
|
|
||||||
|
# frp通信端口(客户端通过此端口连接)
|
||||||
|
bindPort = 7000
|
||||||
|
|
||||||
|
# 认证令牌(请改成你自己的强密码!客户端也要填一样的)
|
||||||
|
auth.token = "请改成你自己的强密码"
|
||||||
|
|
||||||
|
# 管理面板(可选,方便查看运行状态)
|
||||||
|
webServer.addr = "0.0.0.0"
|
||||||
|
webServer.port = 7500
|
||||||
|
webServer.user = "admin"
|
||||||
|
webServer.password = "请改成管理面板密码"
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️ **重要**:`auth.token` 是frp的认证密码,防止别人盗用你的服务器转发流量,一定要改成强密码!
|
||||||
|
|
||||||
|
### 2.4 开放防火墙端口
|
||||||
|
|
||||||
|
服务器需要开放以下端口:
|
||||||
|
|
||||||
|
| 端口 | 用途 | 在哪里开放 |
|
||||||
|
|------|------|-----------|
|
||||||
|
| 7000 | frp通信 | 云服务器安全组 |
|
||||||
|
| 7500 | frp管理面板(可选) | 云服务器安全组 |
|
||||||
|
| 8080 | 网站对外访问 | 云服务器安全组 |
|
||||||
|
|
||||||
|
**操作步骤(以阿里云为例):**
|
||||||
|
|
||||||
|
1. 登录阿里云控制台
|
||||||
|
2. 进入 ECS → 实例 → 安全组
|
||||||
|
3. 添加入方向规则:
|
||||||
|
- 端口 7000/TCP,授权对象 0.0.0.0/0
|
||||||
|
- 端口 7500/TCP,授权对象 0.0.0.0/0(如果需要管理面板)
|
||||||
|
- 端口 8080/TCP,授权对象 0.0.0.0/0
|
||||||
|
|
||||||
|
> 不同云服务商操作类似,在"安全组"或"防火墙"中添加规则即可。
|
||||||
|
|
||||||
|
### 2.5 启动frps
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /opt/frp
|
||||||
|
./frps -c frps.toml
|
||||||
|
```
|
||||||
|
|
||||||
|
看到以下输出说明启动成功:
|
||||||
|
|
||||||
|
```
|
||||||
|
frps started successfully
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.6 设置frps开机自启
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vi /etc/systemd/system/frps.service
|
||||||
|
```
|
||||||
|
|
||||||
|
写入以下内容(**注意修改路径**):
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=frp server
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
启用并启动:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl enable frps
|
||||||
|
systemctl start frps
|
||||||
|
|
||||||
|
# 查看运行状态
|
||||||
|
systemctl status frps
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.7 验证frps
|
||||||
|
|
||||||
|
打开浏览器访问 `http://公网IP:7500`,输入管理面板账号密码,能看到面板说明frps正常运行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 群晖NAS上的部署步骤
|
||||||
|
|
||||||
|
### 3.1 上传项目文件
|
||||||
|
|
||||||
**方法一:通过群晖网页上传**
|
**方法一:通过群晖网页上传**
|
||||||
|
|
||||||
@@ -53,7 +237,7 @@ nas-uploader/
|
|||||||
scp -r nas-uploader/ your_admin@192.168.1.100:/volume1/web/
|
scp -r nas-uploader/ your_admin@192.168.1.100:/volume1/web/
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.2 SSH登录群晖NAS
|
### 3.2 SSH登录群晖NAS
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh your_admin@192.168.1.100
|
ssh your_admin@192.168.1.100
|
||||||
@@ -61,7 +245,7 @@ ssh your_admin@192.168.1.100
|
|||||||
|
|
||||||
> 如果提示"connection refused",需要在群晖控制面板 → 终端机和SNMP → 开启SSH功能
|
> 如果提示"connection refused",需要在群晖控制面板 → 终端机和SNMP → 开启SSH功能
|
||||||
|
|
||||||
### 2.3 配置环境
|
### 3.3 配置环境
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 进入项目目录(根据你的实际路径调整)
|
# 进入项目目录(根据你的实际路径调整)
|
||||||
@@ -89,7 +273,7 @@ MAX_FILE_SIZE_MB=20
|
|||||||
|
|
||||||
> 💡 **路径说明**:`NAS_DATA_PATH` 是图片存储的根目录,上传的图片会保存在这个目录下的 `训练营N期/X班/` 子文件夹中。建议使用群晖已有的共享文件夹路径。
|
> 💡 **路径说明**:`NAS_DATA_PATH` 是图片存储的根目录,上传的图片会保存在这个目录下的 `训练营N期/X班/` 子文件夹中。建议使用群晖已有的共享文件夹路径。
|
||||||
|
|
||||||
### 2.4 安装Python依赖
|
### 3.4 安装Python依赖
|
||||||
|
|
||||||
群晖NAS自带Python 3,但可能缺少pip。按以下步骤操作:
|
群晖NAS自带Python 3,但可能缺少pip。按以下步骤操作:
|
||||||
|
|
||||||
@@ -107,7 +291,7 @@ pip3 install flask python-dotenv --break-system-packages
|
|||||||
# 群晖DS718+等型号可以直接通过套件中心安装Python3
|
# 群晖DS718+等型号可以直接通过套件中心安装Python3
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.5 首次启动测试
|
### 3.5 首次启动测试
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /volume1/web/nas-uploader
|
cd /volume1/web/nas-uploader
|
||||||
@@ -123,7 +307,7 @@ python3 app.py
|
|||||||
|
|
||||||
此时在浏览器访问 `http://NAS内网IP:5000` 应该能看到上传页面。
|
此时在浏览器访问 `http://NAS内网IP:5000` 应该能看到上传页面。
|
||||||
|
|
||||||
### 2.6 验证上传功能
|
### 3.6 验证上传功能
|
||||||
|
|
||||||
1. 打开 `http://NAS内网IP:5000`
|
1. 打开 `http://NAS内网IP:5000`
|
||||||
2. 选择训练营和班级
|
2. 选择训练营和班级
|
||||||
@@ -133,29 +317,49 @@ python3 app.py
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. 配置frp内网穿透
|
## 4. 配置frp内网穿透(NAS端)
|
||||||
|
|
||||||
> 详细原理请参考 [frp内网穿透_原理与部署指南.md](./frp内网穿透_原理与部署指南.md)
|
> 详细原理请参考 [frp内网穿透_原理与部署指南.md](./frp内网穿透_原理与部署指南.md)
|
||||||
|
|
||||||
### 3.1 在NAS上配置frpc
|
### 4.1 在NAS上安装frpc
|
||||||
|
|
||||||
如果NAS上还没有frpc,先安装:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 下载frp(根据NAS架构选择)
|
# 下载frp(根据NAS架构选择,版本需和服务器端一致)
|
||||||
# x86架构(大多数群晖)
|
# x86架构(大多数群晖)
|
||||||
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
|
mkdir -p /volume1/web/frp
|
||||||
tar -xzf frp_0.61.1_linux_amd64.tar.gz
|
cd /volume1/web/frp
|
||||||
cd frp_0.61.1_linux_amd64
|
|
||||||
|
# 以下任选一种(参考服务器部署章节的5种下载方式):
|
||||||
|
# 国内镜像(推荐):
|
||||||
|
wget https://mirror.ghproxy.com/https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
# Gitee镜像:
|
||||||
|
# wget https://gitee.com/mirrors/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
# curl方式:
|
||||||
|
# curl -L -o frp.tar.gz https://mirror.ghproxy.com/https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
|
||||||
|
tar -xzf frp_0.68.1_linux_amd64.tar.gz
|
||||||
|
mv frp_0.68.1_linux_amd64/* .
|
||||||
```
|
```
|
||||||
|
|
||||||
创建配置文件 `frpc.toml`:
|
### 4.2 创建frpc配置文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vi frpc.toml
|
||||||
|
```
|
||||||
|
|
||||||
|
写入以下内容(**请替换为你自己的信息**):
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
serverAddr = "你的公网服务器IP"
|
# frp 客户端配置
|
||||||
serverPort = 7000
|
|
||||||
auth.token = "你的frp认证密码"
|
|
||||||
|
|
||||||
|
# 公网服务器地址(改成你的服务器公网IP)
|
||||||
|
serverAddr = "123.45.67.89"
|
||||||
|
serverPort = 7000
|
||||||
|
|
||||||
|
# 认证令牌(必须和服务端一致!)
|
||||||
|
auth.token = "请改成你自己的强密码"
|
||||||
|
|
||||||
|
# 图片上传网站代理
|
||||||
[[proxies]]
|
[[proxies]]
|
||||||
name = "nas-uploader"
|
name = "nas-uploader"
|
||||||
type = "tcp"
|
type = "tcp"
|
||||||
@@ -164,36 +368,50 @@ localPort = 5000
|
|||||||
remotePort = 8080
|
remotePort = 8080
|
||||||
```
|
```
|
||||||
|
|
||||||
启动frpc:
|
**参数说明:**
|
||||||
|
|
||||||
|
| 参数 | 含义 | 怎么填 |
|
||||||
|
|------|------|--------|
|
||||||
|
| serverAddr | 公网服务器IP | 你的云服务器公网IP |
|
||||||
|
| serverPort | 服务端通信端口 | 7000,和服务端一致 |
|
||||||
|
| auth.token | 认证密码 | 和服务端填一样的 |
|
||||||
|
| localPort | NAS上Flask的端口 | 5000 |
|
||||||
|
| remotePort | 对外开放的端口 | 8080(用户通过这个端口访问) |
|
||||||
|
|
||||||
|
### 4.3 启动frpc
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
cd /volume1/web/frp
|
||||||
./frpc -c frpc.toml
|
./frpc -c frpc.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3.2 公网服务器上的frps配置
|
看到 `start proxy success` 说明连接成功!
|
||||||
|
|
||||||
确保公网服务器上的 `frps.toml` 已配置好:
|
### 4.4 验证公网访问
|
||||||
|
|
||||||
```toml
|
在手机或电脑上(使用**非内网网络**,比如手机4G/5G)访问:
|
||||||
bindPort = 7000
|
|
||||||
auth.token = "你的frp认证密码" # 和frpc保持一致
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3.3 验证公网访问
|
|
||||||
|
|
||||||
在手机或电脑上(使用非内网网络)访问:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
http://公网服务器IP:8080
|
http://公网服务器IP:8080
|
||||||
```
|
```
|
||||||
|
|
||||||
如果能打开上传页面,说明穿透配置成功。
|
如果能打开上传页面,说明整个链路通了!🎉
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. 设置开机自启(推荐)
|
## 5. 设置开机自启(推荐)
|
||||||
|
|
||||||
### 4.1 Flask服务自启
|
### 5.1 服务器端:frps自启
|
||||||
|
|
||||||
|
在服务器上(第2节已经配置过,确认一下):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status frps
|
||||||
|
# 如果没运行:
|
||||||
|
systemctl enable frps && systemctl start frps
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 NAS端:Flask服务自启
|
||||||
|
|
||||||
在NAS上创建systemd服务:
|
在NAS上创建systemd服务:
|
||||||
|
|
||||||
@@ -231,7 +449,7 @@ sudo systemctl status nas-uploader
|
|||||||
|
|
||||||
> ⚠️ **注意**:部分群晖型号可能不支持systemd,可以用 `supervisor` 替代,或者通过群晖的"任务计划"功能设置开机脚本。
|
> ⚠️ **注意**:部分群晖型号可能不支持systemd,可以用 `supervisor` 替代,或者通过群晖的"任务计划"功能设置开机脚本。
|
||||||
|
|
||||||
### 4.2 frpc自启
|
### 5.3 NAS端:frpc自启
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo vi /etc/systemd/system/frpc.service
|
sudo vi /etc/systemd/system/frpc.service
|
||||||
@@ -257,7 +475,7 @@ sudo systemctl enable frpc
|
|||||||
sudo systemctl start frpc
|
sudo systemctl start frpc
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.3 使用群晖任务计划(替代方案)
|
### 5.4 使用群晖任务计划(替代方案)
|
||||||
|
|
||||||
如果systemd不可用,可以通过群晖控制面板设置:
|
如果systemd不可用,可以通过群晖控制面板设置:
|
||||||
|
|
||||||
@@ -268,19 +486,22 @@ sudo systemctl start frpc
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 启动Flask服务
|
||||||
cd /volume1/web/nas-uploader
|
cd /volume1/web/nas-uploader
|
||||||
nohup python3 app.py > /volume1/web/nas-uploader/app.log 2>&1 &
|
nohup python3 app.py > /volume1/web/nas-uploader/app.log 2>&1 &
|
||||||
|
|
||||||
|
# 启动frpc
|
||||||
cd /volume1/web/frp
|
cd /volume1/web/frp
|
||||||
nohup ./frpc -c frpc.toml > /volume1/web/frp/frpc.log 2>&1 &
|
nohup ./frpc -c frpc.toml > /volume1/web/frp/frpc.log 2>&1 &
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. 群晖Docker部署(可选)
|
## 6. 群晖Docker部署(可选)
|
||||||
|
|
||||||
如果你的群晖支持Docker(Container Manager套件),可以用Docker部署:
|
如果你的群晖支持Docker(Container Manager套件),可以用Docker部署Flask服务:
|
||||||
|
|
||||||
### 5.1 创建Dockerfile
|
### 6.1 创建Dockerfile
|
||||||
|
|
||||||
在项目根目录创建 `Dockerfile`:
|
在项目根目录创建 `Dockerfile`:
|
||||||
|
|
||||||
@@ -299,7 +520,7 @@ EXPOSE 5000
|
|||||||
CMD ["python3", "app.py"]
|
CMD ["python3", "app.py"]
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5.2 构建和运行
|
### 6.2 构建和运行
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /volume1/web/nas-uploader
|
cd /volume1/web/nas-uploader
|
||||||
@@ -321,9 +542,9 @@ docker run -d \
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. 常见问题排查
|
## 7. 常见问题排查
|
||||||
|
|
||||||
### 6.1 页面打不开
|
### 7.1 页面打不开(内网)
|
||||||
|
|
||||||
```
|
```
|
||||||
检查步骤:
|
检查步骤:
|
||||||
@@ -335,27 +556,30 @@ docker run -d \
|
|||||||
→ 群晖控制面板 → 安全性 → 防火墙 → 编辑规则
|
→ 群晖控制面板 → 安全性 → 防火墙 → 编辑规则
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.2 公网打不开
|
### 7.2 公网打不开
|
||||||
|
|
||||||
```
|
```
|
||||||
检查步骤:
|
检查步骤:
|
||||||
1. frpc是否在运行? → ps aux | grep frpc
|
1. frps是否在运行? → systemctl status frps
|
||||||
2. frpc日志有无报错? → cat /path/to/frpc.log
|
2. frpc是否在运行? → ps aux | grep frpc
|
||||||
3. 公网服务器防火墙是否开放了8080端口?
|
3. frpc日志有无报错? → cat /volume1/web/frp/frpc.log
|
||||||
4. frp的token是否一致?
|
4. 公网服务器防火墙是否开放了7000和8080端口?
|
||||||
|
→ 云服务器控制台 → 安全组
|
||||||
|
5. frp的token是否一致?
|
||||||
|
→ 对比服务器frps.toml和NAS frpc.toml中的auth.token
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.3 上传失败
|
### 7.3 上传失败
|
||||||
|
|
||||||
```
|
```
|
||||||
检查步骤:
|
检查步骤:
|
||||||
1. NAS_DATA_PATH路径是否正确? → ls -la 路径
|
1. NAS_DATA_PATH路径是否正确? → ls -la 路径
|
||||||
2. 目录是否有写入权限? → touch 路径/test && rm 路径/test
|
2. 目录是否有写入权限? → touch 路径/test && rm 路径/test
|
||||||
3. 磁盘空间是否充足? → df -h
|
3. 磁盘空间是否充足? → df -h
|
||||||
4. 查看Flask日志 → cat /path/to/nas-uploader/app.log
|
4. 查看Flask日志 → cat /volume1/web/nas-uploader/app.log
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.4 图片上传后找不到文件
|
### 7.4 图片上传后找不到文件
|
||||||
|
|
||||||
```
|
```
|
||||||
检查步骤:
|
检查步骤:
|
||||||
@@ -364,26 +588,52 @@ docker run -d \
|
|||||||
3. 文件夹名称格式必须是"训练营N期"
|
3. 文件夹名称格式必须是"训练营N期"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 7.5 服务器frps启动失败
|
||||||
|
|
||||||
|
```
|
||||||
|
检查步骤:
|
||||||
|
1. 端口7000是否被占用? → netstat -tlnp | grep 7000
|
||||||
|
2. 配置文件格式是否正确? → cat /opt/frp/frps.toml
|
||||||
|
3. 查看详细错误 → ./frps -c frps.toml --log_level debug
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. 维护命令速查
|
## 8. 维护命令速查
|
||||||
|
|
||||||
|
### 服务器端
|
||||||
|
|
||||||
| 操作 | 命令 |
|
| 操作 | 命令 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 启动服务 | `cd /volume1/web/nas-uploader && python3 app.py` |
|
| 启动frps | `systemctl start frps` |
|
||||||
| 停止服务 | `sudo systemctl stop nas-uploader` |
|
| 停止frps | `systemctl stop frps` |
|
||||||
| 重启服务 | `sudo systemctl restart nas-uploader` |
|
| 重启frps | `systemctl restart frps` |
|
||||||
| 查看日志 | `sudo journalctl -u nas-uploader -f` |
|
| 查看状态 | `systemctl status frps` |
|
||||||
| 查看存储目录 | `ls -la $NAS_DATA_PATH` |
|
| 查看日志 | `journalctl -u frps -f` |
|
||||||
|
| 查看管理面板 | 浏览器打开 `http://公网IP:7500` |
|
||||||
|
|
||||||
|
### NAS端
|
||||||
|
|
||||||
|
| 操作 | 命令 |
|
||||||
|
|------|------|
|
||||||
|
| 启动Flask | `systemctl start nas-uploader` |
|
||||||
|
| 停止Flask | `systemctl stop nas-uploader` |
|
||||||
|
| 重启Flask | `systemctl restart nas-uploader` |
|
||||||
|
| 启动frpc | `systemctl start frpc` |
|
||||||
|
| 停止frpc | `systemctl stop frpc` |
|
||||||
|
| 查看Flask日志 | `journalctl -u nas-uploader -f` |
|
||||||
|
| 查看frpc日志 | `journalctl -u frpc -f` |
|
||||||
|
| 查看存储目录 | `ls -la /volume1/photo/训练营图片` |
|
||||||
| 查看磁盘空间 | `df -h` |
|
| 查看磁盘空间 | `df -h` |
|
||||||
| 手动更新统计 | `python3 -c "from app import update_statistics; update_statistics('训练营13期')"` |
|
| 手动更新统计 | `python3 -c "from app import update_statistics; update_statistics('训练营13期')"` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. 安全建议
|
## 9. 安全建议
|
||||||
|
|
||||||
- **当前版本无密码保护**,任何人知道网址都可以上传
|
- **当前版本无密码保护**,任何人知道网址都可以上传
|
||||||
- 建议不要将网址公开分享给无关人员
|
- 建议不要将网址公开分享给无关人员
|
||||||
- 后续版本会添加访问密码功能
|
- 后续版本会添加访问密码功能
|
||||||
- 建议定期检查上传的文件,防止滥用
|
- 建议定期检查上传的文件,防止滥用
|
||||||
- 如果发现异常,可以暂时停止Flask服务:`sudo systemctl stop nas-uploader`
|
- 如果发现异常,可以暂时停止Flask服务:`sudo systemctl stop nas-uploader`
|
||||||
|
- frp的 `auth.token` 一定要用强密码,防止被别人利用
|
||||||
|
|||||||
Reference in New Issue
Block a user