本文属于「自托管 Docker 部署实战」系列(共 35 篇),第 35 篇。 示例中的 IP(192.0.2.10)、域名(example.com)、密码均为占位符,请按实际环境替换。

它是什么

PanSou 是一个网盘资源搜索前端 + 后端:聚合多个公开资源渠道,按关键词/频道搜索网盘分享链接,结果可筛选、可跳转。

前置条件

  • 一台 Linux 服务器(1C1G 起);
  • 已安装 Docker 与 Compose v2;
  • 计划公网访问的话,准备域名与证书。
curl -fsSL https://get.docker.com | sh
mkdir -p /srv/docker/active/pansou && cd /srv/docker/active/pansou

镜像地址

ghcr.io/fish2018/pansou-web:latest

目录结构

/srv/docker/active/pansou/
├── docker-compose.yml
├── pansou-data/          # 索引与配置
└── pansou-logs/          # 运行日志

部署步骤

# docker-compose.yml
services:
  pansou:
    image: ghcr.io/fish2018/pansou-web:latest
    container_name: pansou-app
    restart: unless-stopped
    ports:
      - "8080:80"
      - "4433:443"
    environment:
      - DOMAIN=localhost
      - PANSOU_PORT=8888
      - PANSOU_HOST=127.0.0.1
    volumes:
      - ./pansou-data:/app/data
      - ./pansou-logs:/app/logs
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
docker compose up -d
docker compose logs -f --tail=100

打开 http://<SERVER_IP>:8080。

关键配置

项 说明
8080:80 HTTP 入口
4433:443 HTTPS 入口(容器内自签或挂证书)
DOMAIN 对外域名;公网部署时改成你的域名,否则部分链接/回调会指向 localhost
./pansou-data 索引与配置,需持久化
healthcheck /api/health,起容器 40 秒后再看状态

注意事项

  • DOMAIN=localhost 只适合内网;公网用 HTTPS 反代时改成真实域名;
  • 资源来自第三方渠道,可用性和合法性都不由你控制,建议仅个人研究、不要公开传播;
  • 首次启动要建索引,40 秒内健康检查失败属正常;
  • 日志增长快,给 pansou-logs 配轮转;
  • 4433 直接暴露时浏览器会报自签证书,正式用还是走 80 + 反代。

备份与升级

tar czf "pansou-data-$(date +%F).tar.gz" ./pansou-data

docker compose pull
docker compose up -d
  • 升级后健康检查不通过,先 docker compose logs --tail=200 看启动错误。