Pingvin Share
Pingvin Share
Pingvin Share 是一个自托管的文件共享平台,是 WeTransfer 的替代方案。
✨ 功能特点
- 通过链接分享文件
- 无限文件大小(仅受磁盘空间限制)
- 为分享设置过期日期
- 通过访问次数限制和密码保护分享
- 向收件人发送电子邮件
- 集成 ClamAV 进行安全扫描
🐧 了解 Pingvin Share
⌨️ 安装设置
注意:Pingvin Share 仍处于早期阶段,可能存在 bug。
使用 Docker 安装(推荐)
- 下载
docker-compose.yml
文件 - 运行
docker compose up -d
现在网站可以通过 http://localhost:3000
访问,尽情享受 Pingvin Share 吧 🐧!
独立安装
所需工具:
git clone https://github.com/stonith404/pingvin-share
cd pingvin-share
# 检出最新版本
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
# 启动后端
cd backend
npm install
npm run build
pm2 start --name="pingvin-share-backend" npm -- run prod
# 启动前端
cd ../frontend
npm install
npm run build
API_URL=http://localhost:8080 # 设置后端 URL,默认为 http://localhost:8080
pm2 start --name="pingvin-share-frontend" .next/standalone/server.js
上传大文件:默认情况下,Pingvin Share 使用内置的反向代理以减少安装步骤。但是,这个反向代理并不适合上传大文件。如果你希望上传更大的文件,可以使用 Docker 安装或设置自己的反向代理。Caddy 的示例配置可以在 ./Caddyfile
中找到。
现在网站可以通过 http://localhost:3000
访问,尽情享受 Pingvin Share 吧 🐧!
集成
ClamAV(仅限 Docker)
ClamAV 用于扫描分享文件中的恶意内容,并在发现时删除它们。
- 将 ClamAV 容器添加到 Docker Compose 堆栈中(参见
docker-compose.yml
)并启动容器。 - Docker 将等待 ClamAV 启动后再启动 Pingvin Share。这可能需要一两分钟。
- Pingvin Share 的日志现在应该会显示 "ClamAV is active"
请注意,ClamAV 需要大量资源。
OAuth 2 登录
查看 OAuth 2 指南 获取更多信息。
其他资源
升级到新版本
由于 Pingvin Share 仍处于早期阶段,升级前请查看发布说明以了解重大变更。
Docker
docker compose pull
docker compose up -d
独立安装
-
停止正在运行的应用
pm2 stop pingvin-share-backend pingvin-share-frontend
-
运行以下命令:
cd pingvin-share # 检出最新版本 git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`) # 启动后端 cd backend npm install npx prisma generate npm run build pm2 restart pingvin-share-backend # 启动前端 cd ../frontend npm install npm run build API_URL=http://localhost:8080 # 设置后端 URL,默认为 http://localhost:8080 pm2 restart pingvin-share-frontend
配置
你可以通过访问管理员仪表板的配置页面 /admin/config
来自定义 Pingvin Share,如更改域名等。
环境变量
对于特定安装的配置,你可以使用环境变量。以下是可用的变量:
后端
变量 | 默认值 | 描述 |
---|---|---|
PORT | 8080 | 后端监听的端口。 |
DATABASE_URL | file:../data/pingvin-share.db?connection_limit=1 | SQLite 数据库的 URL。 |
DATA_DIRECTORY | ./data | 存储数据的目录。 |
CLAMAV_HOST | 127.0.0.1 | ClamAV 服务器的 IP 地址。 |
CLAMAV_PORT | 3310 | ClamAV 服务器的端口号。 |
前端
变量 | 默认值 | 描述 |
---|---|---|
PORT | 3000 | 前端监听的端口。 |
API_URL | http://localhost:8080 | 前端使用的后端 URL。 |
🖤 贡献
翻译
你可以帮助将 Pingvin Share 翻译成你的语言。 在 Crowdin 上,你可以轻松在线翻译 Pingvin Share。
你的语言不在 Crowdin 上?欢迎提出请求。
翻译时遇到问题?欢迎参与本地化讨论。
项目
我们非常欢迎你为 Pingvin Share 做出贡献!请遵循贡献指南开始。
赞助商
感谢您对 Pingvin Share 的支持 🙏