
Zipline自建文件分享服务ShareX 截图自动上传利器Zipline 是一款基于 Next.js 的轻量级自托管文件托管服务与 ShareX 深度集成截图后自动上传并将分享链接复制到剪贴板彻底告别第三方图床的隐私和稳定性问题。目录为什么选择 Zipline服务器配置Docker Compose 部署环境变量配置Caddy 反向代理创建管理员账户文件上传与管理ShareX 集成详细教程进阶功能配置S3 存储对接总结为什么选择 Zipline在截图工具领域ShareX是 Windows 下的绝对标杆——强大的截图、录屏、标注功能加上高度可定制的上传目标让它拥有大量忠实用户。但默认的图床方案Imgur、Gyazo 等存在隐私泄露风险、文件被删风险以及访问速度不稳定等问题。Zipline正是为解决这些问题而生完全自控文件存储在自己的服务器不受第三方服务条款限制与 ShareX 原生集成一键下载.sxcu配置文件导入即用功能丰富文件画廊、图片/视频内联预览、URL 短链、文件过期、密码保护上传用户系统支持多用户、OAuth 登录GitHub/Discord/Google轻量高效Next.js 构建1 核 2GB 即可流畅运行服务器配置Zipline 基于 Next.js资源占用极低推荐使用1 核 2GB 机型即可满足日常使用需求包括 PostgreSQL 数据库在内。可考虑雨云服务器 rainyun-com注册填码2026off领 5 折选择 Ubuntu 22.04 系统非常适合个人图床场景。Docker Compose 部署创建项目目录mkdir-p/opt/ziplinecd/opt/ziplinemkdir-puploads创建docker-compose.ymlversion:3.8services:zipline:image:ghcr.io/diced/zipline:latestcontainer_name:ziplinerestart:unless-stoppedports:-3000:3000environment:-CORE_SECRET${SECRET}-CORE_DATABASE_URLpostgresql://zipline:${POSTGRES_PASSWORD}postgres:5432/zipline-CORE_HOST0.0.0.0-CORE_PORT3000-DATASOURCE_TYPElocal-DATASOURCE_LOCAL_DIRECTORY/uploads-TZAsia/Shanghaivolumes:-./uploads:/uploadsdepends_on:postgres:condition:service_healthypostgres:image:postgres:15-alpinecontainer_name:zipline-postgresrestart:unless-stoppedenvironment:-POSTGRES_DBzipline-POSTGRES_USERzipline-POSTGRES_PASSWORD${POSTGRES_PASSWORD}volumes:-postgres_data:/var/lib/postgresql/datahealthcheck:test:[CMD-SHELL,pg_isready -U zipline]interval:10stimeout:5sretries:5volumes:postgres_data:driver:local环境变量配置创建.env文件# 生成随机密钥32字节十六进制SECRET$(openssl rand-hex32)cat.envEOF # 应用密钥用于会话加密请妥善保管 SECRET${SECRET}# PostgreSQL 密码 POSTGRES_PASSWORD$(openssl rand-hex16)# 数据库连接在 docker-compose.yml 中引用 # CORE_DATABASE_URL 已在 compose 文件中配置 # 文件存储类型local 或 s3 DATASOURCE_TYPElocal DATASOURCE_LOCAL_DIRECTORY/uploads EOFecho.env 文件已创建SECRET:${SECRET}重要配置说明变量说明CORE_SECRET会话加密密钥更换后所有用户需重新登录CORE_DATABASE_URLPostgreSQL 连接字符串DATASOURCE_TYPE存储类型local本地磁盘或s3对象存储DATASOURCE_LOCAL_DIRECTORY本地存储时的文件目录CORE_HOST监听地址0.0.0.0接受所有连接CORE_PORT服务端口默认 3000启动服务dockercompose up-ddockercompose logs-fzipline等待日志出现ready - started server on 0.0.0.0:3000即表示启动成功。Caddy 反向代理安装 Caddyaptinstall-ydebian-keyring debian-archive-keyring apt-transport-httpscurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/gpg.key|gpg--dearmor-o/usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt|tee/etc/apt/sources.list.d/caddy-stable.listaptupdateaptinstallcaddy编辑/etc/caddy/Caddyfilefiles.example.com { reverse_proxy localhost:3000 # 上传文件大小限制根据需要调整 request_body { max_size 100MB } header { Strict-Transport-Security max-age31536000 X-Content-Type-Options nosniff } }重载 Caddysystemctl reload caddy创建管理员账户Zipline 首次访问时会自动引导创建管理员账户打开浏览器访问https://files.example.com系统检测到无账户自动跳转到初始化页面填写管理员用户名和密码点击Create Administrator登录后进入仪表盘可看到文件统计、最近上传等信息。基本设置Settings → GeneralSite Name网站名称显示在页面标题Invite Only是否仅允许邀请注册Default Upload Expiry默认文件过期时间文件上传与管理手动上传文件进入 Zipline 主界面点击Upload按钮拖拽文件或点击选择文件可设置Expires At文件过期时间如 7 天后自动删除Password访问密码保护Max Views最大查看次数超过后自动删除上传完成后自动复制分享链接文件画廊视图在Files页面可以图片和视频直接内联预览无需下载按日期、文件名、大小排序批量删除文件查看每个文件的访问统计查看次数、最后访问时间URL 短链功能在URLs页面可以创建短链接粘贴原始 URL可选自定义短码生成类似https://files.example.com/go/abcd的短链接ShareX 集成详细教程这是 Zipline 最强大的特性以下是完整配置流程第一步下载 .sxcu 配置文件登录 Zipline 管理界面进入Account → ShareX Config或点击右上角用户头像点击Download .sxcu按钮下载zipline.sxcu配置文件该文件包含{Version:14.0.0,Name:Zipline,DestinationType:ImageUploader, FileUploader,RequestMethod:POST,RequestURL:https://files.example.com/api/upload,Headers:{Authorization:your-api-token-here},Body:MultipartFormData,FileFormName:file,URL:$json:files[0]$}第二步导入 ShareX打开ShareX在左侧菜单找到Destinations → Custom uploader settings点击Import → From file选择下载的zipline.sxcu配置自动导入弹出确认窗口点击Yes第三步设置为默认上传目标在 ShareX 主界面点击Destinations将Image Uploader设为Custom Image Uploader将File Uploader设为Custom File Uploader第四步配置快捷键进入Task Settings → Hotkeys推荐设置Print Screen截取全屏并上传CtrlPrint Screen截取区域并上传截图完成后Zipline 的分享链接会自动复制到剪贴板测试截图上传按下快捷键截图等待约 1-2 秒剪贴板中会自动出现类似https://files.example.com/u/xK3mP9的链接粘贴即可分享。进阶功能配置文件过期设置在Settings → Default Expiry中可设置全局默认过期时间也可在每次上传时单独指定never永不过期1h、1d、7d、30d对应时间后删除密码保护上传上传时勾选Password Protect设置密码后访问者需输入密码才能查看文件。适用于分享敏感文件。OAuth 登录配置在docker-compose.yml的 environment 中添加# GitHub OAuth-OAUTH_GITHUB_CLIENT_IDyour_github_client_id-OAUTH_GITHUB_CLIENT_SECRETyour_github_client_secret# Discord OAuth-OAUTH_DISCORD_CLIENT_IDyour_discord_client_id-OAUTH_DISCORD_CLIENT_SECRETyour_discord_client_secret在对应平台创建 OAuth 应用回调 URL 设为https://files.example.com/api/auth/callback/github以 GitHub 为例。用户管理管理员可在Admin → Users中创建新用户并发送邀请链接查看每个用户的存储使用量设置用户存储配额禁用账户S3 存储对接当本地磁盘空间不足时可切换到 S3 兼容存储AWS S3、Cloudflare R2、MinIO 等修改.env文件DATASOURCE_TYPEs3DATASOURCE_S3_ACCESS_KEY_IDyour_access_keyDATASOURCE_S3_SECRET_ACCESS_KEYyour_secret_keyDATASOURCE_S3_BUCKETyour-bucket-nameDATASOURCE_S3_REGIONus-east-1# 如果使用 Cloudflare R2 或 MinIO需要指定 endpointDATASOURCE_S3_ENDPOINThttps://your-minio-endpoint.com# 是否强制路径风格MinIO 需要设为 trueDATASOURCE_S3_FORCE_PATH_STYLEtrue修改后重启容器dockercompose downdockercompose up-d注意切换存储后原有本地文件不会自动迁移需要手动将uploads/目录中的文件上传至 S3 存储桶。总结Zipline 将自建文件托管的门槛降至最低1 核 2GB 的轻量服务器几分钟完成部署与 ShareX 完美集成后截图工作流变得无缝流畅。完全掌控自己的文件数据不受任何第三方限制是追求效率与隐私的开发者和创作者的理想选择。