Pingvin Share 是一个自托管的文件共享平台,可以让你轻松地上传和下载文件,而不需要依赖于第三方服务。它是 WeTransfer 的一个开源替代品,具有以下特点:
- 使用链接分享文件
- 文件大小无限制(只受磁盘空间限制)
- 设置分享过期时间
- 使用访问次数和密码保护分享
- 邮件通知收件人
- 与 ClamAV 集成进行安全扫描
如果你想在你自己的服务器上部署 Pingvin Share,这里有一篇简单的教程教你如何做。
准备工作
首先,你需要一台运行 Linux 的服务器,最好是 Ubuntu 或 Debian 系统。你还需要安装 Docker 和 Docker Compose,这是 Pingvin Share 的推荐安装方式。
其次,你需要一个域名,并将其解析到你的服务器的 IP 地址。这样,你就可以通过域名访问 Pingvin Share 了。
最后,你需要一个 SMTP 服务提供商,用于发送邮件通知。你可以使用 Gmail、Outlook、SendGrid 等任何支持 SMTP 协议的服务。你需要获取 SMTP 服务器的地址、端口、用户名和密码,并记下来。
下载和配置 Pingvin Share
在你的服务器上,执行以下命令,下载 Pingvin Share 的 docker-compose.yml 文件:
wget https://raw.githubusercontent.com/stonith404/pingvin-share/main/docker-compose.yml
然后,使用任意文本编辑器打开该文件,修改其中的环境变量。主要有以下几个变量需要修改:
version: '3.8'
services:
pingvin-share:
image: stonith404/pingvin-share
restart: unless-stopped
ports:
- 3000:3000 # 前边的3000可以改成服务器上未被使用的端口
volumes:
- "./data:/opt/data" # 将存储数据库文件和上传的文件目录挂载到容器内的 /opt/data 目录
- "./data/images:/opt/img" # 将存储图片挂载到容器内的 /opt/img 目录
启动 Pingvin Share
保存并关闭 docker-compose.yml 文件后,在终端中执行以下命令:
docker-compose up -d
这将下载 Pingvin Share 的镜像,并在后台运行容器。等待一会儿,然后在浏览器中输入你的ip和端口(如果不是 80 或 443),例如 http:/ip:3000
,就可以看到 Pingvin Share 的界面了。
利用宝塔反向代理使用域名访问
如果使用宝塔可以新建一个纯静态站点并绑定域名。
点击网站找到配置文件,注释掉图片中的规则请求。
在下边加入反向代理规则
location / {
proxy_pass http://127.0.0.1:3000/; # 这里3000端口为Pingvin Share实际端口
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
使用 Pingvin Share
首次注册账户默认为管理员。要使用 Pingvin Share 分享文件,只需点击上传按钮,选择要上传的文件,然后点击创建分享按钮。你可以在创建分享时设置过期时间、访问次数、密码和收件人邮箱。创建成功后,你会得到一个分享链接,复制并发送给其他人即可。
要下载别人分享给你的文件,只需点击分享链接,输入密码(如果有),然后点击下载按钮即可。
升级和停止 Pingvin Share
如果 Pingvin Share 有新版本发布,你可以执行以下命令升级:
docker-compose pull
docker-compose up -d
如果你想停止 Pingvin Share 的运行,可以执行以下命令:
docker-compose down
结语
Pingvin Share 是一个轻量级、美观、易用的文件共享平台,可以让你摆脱第三方服务的限制和风险,自由地上传和下载文件。