欢迎光临
我们一直在努力

教你使用Docker搭建一款现代、轻量级的文件分享服务 — Pingvin Share

前言

在文件共享需求日益增长的今天,一款现代化、高性能、易用的自托管文件分享系统,能让个人、团队或企业在保障隐私与安全的前提下高效分发文件。
Pingvin Share 正是一款以“简洁、安全、自主可控”为核心理念设计的开源文件分享平台。它拥有直观的界面、完善的权限机制、支持大文件上传,并可通过 Docker 快速部署,实现高效私有文件分发与分享。

1. 项目

Pingvin Share 是由开发者 stonith404 创建的现代化开源文件分享系统。它基于 Node.js 与 TypeScript 构建,前端采用 React 框架,后端使用 SQLite 存储,旨在提供一个私有云盘与公共分享之间的轻量级解决方案。用户无需依赖第三方网盘,即可轻松在自己的服务器上搭建安全、快速、优雅的文件分享服务。

1.1 项目特点

💡 轻量与高效:无需复杂数据库或庞大依赖,部署后即可使用;

⚙️ 一体化架构:前后端集成,API 简洁清晰,易于容器化部署;

🔒 安全可控:支持访问密码、下载次数与有效期限制,防止外泄;

📦 多存储支持:可使用本地存储或 S3 对象存储,灵活扩展;

🧩 现代化界面:采用 React + Tailwind CSS,UI 简洁美观,用户体验流畅;

🌍 跨平台兼容:Docker 一键部署,支持 Linux、Windows、macOS 等系统;

📤 大文件分享:支持断点续传与超大文件上传(配合反向代理优化);

📈 可扩展性:开放 API 与配置文件,可进行深度自定义。

1.2 项目展示

2.相关地址

gitHub开源项目:https://github.com/mondediefr/docker-flarum

3.搭建环境

  • 服务器:这里为了方便搭建项目使用的是莱卡云的境外香港云服务器。(国内用户连接建议使用国内的服务器(需备案域名或者IP+端口)延迟会更低)
  • 莱卡云服务器促销活动性价比会更高。查看官网购买链接:https://www.lcayun.com
  • 资源配置:2核2G 30G硬盘
    由于国内服务器访问海外源较慢,这边为了方便演示直接使用海外服务器搭建。
  • 服务器系统:Debian-12
  • 【必需】安装Docker:安装好 Docker、Docker-compose
  • 【非必需】域名一枚,可用于解析到服务器上使用域名访问

4.搭建视频

哔哩哔哩:

5.搭建方式

5.1 安装docker和docker-compose

安装教程:服务器上安装docker和docker-compose教程

5.2 设置目录与权限

sudo mkdir -p /opt/pingvin/{data,images}
sudo chown -R 1000:1000 /opt/pingvin

data:应用数据(SQLite、配置等)

images:公开文件/图片(前端静态)

5.3 写入docker-compose.yml

#在 /opt/pingvin/docker-compose.yml 写入
vi /opt/pingvin/docker-compose.yml

以下内容根据自己需求更改

services:
  pingvin:
    image: ghcr.io/stonith404/pingvin-share:latest
    container_name: pingvin
    restart: unless-stopped
    # 调试期可直接映射;正式期建议仅本地监听配合反代:
    ports:
      - "3000:3000"             # 正式期可改成 "127.0.0.1:3000:3000"
    environment:
      PUID: "1000"              # 按宿主用户/用户组调整
      PGID: "1000"
      TZ: "Asia/Shanghai"       # 或你所在时区
      TRUST_PROXY: "true"       # 走反向代理务必开启
      # 可选:自定义端口/后端端口
      # PORT: "3000"
      # BACKEND_PORT: "8080"
      # API_URL: "http://localhost:8080"
      # 可选:启用 S3 对象存储(第 5 节再说)
      # S3_ENDPOINT: ""
      # S3_ACCESS_KEY: ""
      # S3_SECRET_KEY: ""
      # S3_BUCKET: ""
      # S3_REGION: ""
      # 可选:ClamAV 病毒扫描(第 5 节)
      # CLAMAV_HOST: "clamav"
      # CLAMAV_PORT: "3310"
    volumes:
      - /opt/pingvin/data:/opt/app/backend/data
      - /opt/pingvin/images:/opt/app/frontend/public/img

  # 可选:ClamAV(打开后配合上面环境变量)
  # clamav:
  #   image: clamav/clamav:stable
  #   container_name: clamav
  #   restart: unless-stopped
  #   ports:
  #     - "3310:3310"
  #   healthcheck:
  #     test: ["CMD", "clamdscan", "--version"]
  #     interval: 30s
  #     timeout: 10s
  #     retries: 5

5.4 启动docker

#打开/opt/pingvin
cd /opt/pingvin
#运行docker镜像
docker compose up -d

5.5 访问WEB端

http://服务器IP:3000

自行创建账户

6.结尾

无论是个人用户想替代公有云盘,还是企业团队需要一个高效、安全的内部文件传输平台,Pingvin Share 都能轻松胜任。
它部署简单、界面友好、性能出色,并且支持对象存储、反向代理、病毒扫描等多种拓展方案。

赞(0)
未经允许不得转载:莱卡云 » 教你使用Docker搭建一款现代、轻量级的文件分享服务 — Pingvin Share