FilePizza(P2P文件传输工具)Docker部署指南

(适用于内网/本地环境,轻量高效)

一、前置环境

确保服务器已安装:

  • Docker(版本≥20.0)
  • Docker Compose(版本≥3.9)
    验证命令:docker -vdocker-compose -v

二、部署步骤

步骤1:创建部署目录

# 创建主目录并进入
mkdir -p filepizza-deploy && cd filepizza-deploy

# 创建子目录(用于配置、证书、反向代理)
mkdir -p data config nginx/conf.d

步骤2:编写Docker Compose配置

创建docker-compose.yml文件:

version: '3.9'

services:
  # FilePizza主服务
  filepizza:
    image: 【你的FilePizza镜像地址】  # 替换为实际镜像(自定义/公开镜像)
    container_name: filepizza
    volumes:
      - ./config/:/config/
      - ./data:/data  # 持久化传输文件
    environment:
      - PORT=8080
      - NODE_ENV=production
    restart: always
    networks:
      - filepizza-net
    logging:
      driver: "json-file"
      options:
        max-size: "10m"  # 日志单文件最大10MB
        max-file: "3"    # 最多保留3个日志文件
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 512M

  # Nginx反向代理(处理HTTPS)
  nginx:
    image: nginx:alpine
    container_name: filepizza-nginx
    ports:
      - "【对外端口】:443"  # 替换为实际端口(如8180:443)
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./config/server.crt:/etc/nginx/ssl/server.crt
      - ./config/server.key:/etc/nginx/ssl/server.key
    depends_on:
      - filepizza
    networks:
      - filepizza-net
    restart: always

networks:
  filepizza-net:
    driver: bridge

步骤3:生成自签名SSL证书

(用于HTTPS安全访问,适配浏览器P2P权限)

  1. config目录创建证书配置cert.conf
[req]
default_bits = 2048
prompt = no
default_md = sha256
x509_extensions = v3_ca
distinguished_name = dn

[dn]
C = CN
O = Local
CN = 【你的服务IP/域名】  # 替换为实际访问地址

[v3_ca]
subjectAltName = @alt_names
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
basicConstraints = CA:FALSE

[alt_names]
IP.1 = 【你的服务IP/域名】  # 与上方CN一致
  1. 生成证书(在config目录执行):
cd config
openssl req -new -x509 -nodes -days 3650 -keyout server.key -out server.crt -config cert.conf

步骤4:配置Nginx反向代理

nginx/conf.d目录创建default.conf

server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        proxy_pass http://filepizza:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # 支持WebRTC P2P传输
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

步骤5:启动服务

# 回到部署主目录
cd ..

# 启动服务(后台运行)
docker-compose up -d

# 验证服务状态(显示Up即正常)
docker-compose ps

步骤6:浏览器信任证书

(解决“不安全”提示,启用文件下载)

  1. 访问https://【你的服务IP/域名】:【对外端口】
  2. 点击地址栏“不安全”提示→打开证书详情;
  3. 导出证书(格式选Base64编码ASCII,单一证书);
  4. 进入浏览器“管理证书”→导入证书到“受信任的根证书颁发机构”;
  5. 重启浏览器,重新访问即可显示“安全”,测试上传/下载功能。

三、常见问题

  1. 下载失败:确认使用HTTPS访问,且证书已信任;
  2. 服务无响应:执行docker-compose logs filepizza查看日志;
  3. 端口冲突:修改docker-compose.yml中Nginx的ports映射端口。

更多推荐