Slink 介绍与选型指南
自托管图片分享平台 Slink 的认知与选型篇:产品定位、Symfony+SvelteKit 架构、功能全景、适用场景与限制,附 PictShare/PicoShare/Chevereto/Zipline 量化选型对比,官方源溯源(2026-10-31)。
Slink 介绍与选型指南
目标:讲清自托管图片分享平台 Slink 的定位、架构、功能边界与同类选型差异,为「要不要上 Slink、和哪些替代品比」提供量化依据。本文为认知与选型篇,全部信息来自官方源联网溯源(来源与查询日期逐项标注),不含本地实测结论;部署与实测见 《Slink 1.14.5 Docker Compose 部署指南》。
一、环境信息
本文为联网溯源篇,引用信息与查询口径如下(查询日期统一为 2026-10-31):
| 信息项 | 来源 |
|---|---|
| 产品定位、功能清单、技术栈 | 官方文档站 docs.slinkapp.io 首页与 GitHub 仓库 README(github.com/andrii-kryvoviaz/slink) |
| 版本与发布节奏 | GitHub Releases 页及 releases.atom 订阅源 |
| 社区活跃度(星数、提交频率) | shields.io 徽章接口(img.shields.io/github/stars/...、/github/commit-activity/m/...) |
| 部署形态、环境变量 | 官方文档 Docker Compose Installation、Environment Variables 页 |
| 竞品星数 | shields.io 对应仓库徽章 |
💡 说明:Slink 星数、发布版本等社区数据为时点快照(2026-10-31),阅读本文时建议按第一章来源自行复核最新值。
二、软件概述
Slink 是一款自托管(Self-Hosted)图片分享平台,目标是「让用户完全掌控自己的图片分享体验」——上传、分享、管理图片都在自己的服务器实例上完成,不依赖第三方图床服务(来源:官方 README,查询日期 2026-10-31)。
基本身份信息(来源:GitHub 仓库 README 与 Releases 页,查询日期 2026-10-31):
- 项目:Slink,作者 Andrii Kryvoviaz,仓库
andrii-kryvoviaz/slink; - 许可证:AGPLv3(仓库 LICENSE 文件与 README 均注明),对二次开发并提供网络服务方要求开放源码;
- 技术栈:后端 Symfony(PHP),前端 SvelteKit,官方交付形态为单个 Docker 镜像
anirdev/slink; - 最新稳定版:v1.14.5(GitHub Releases 列表首位,发布于 2026-10-31,releases.atom 订阅源实查);
- 社区活跃度:GitHub stars 1.6k,提交频率约 50 次/月(shields.io 徽章,查询日期 2026-10-31);
- 官方文档站:docs.slinkapp.io(含安装、配置、安全、使用四章),另有在线演示实例 demo.slinkapp.io。
从版本节奏看,Slink 处于活跃迭代期:v1.12.x 引入允许上传格式管控、链接格式复制(直接 URL/Markdown/BBCode/HTML);v1.13.0 加入站点名称/描述/Logo 自定义;v1.14.0 加入自定义主题色、SSO 自动跳转、通知时间线;v1.14.5(2026-10-31)新增 USER_LOCAL_AUTH_ENABLED 支持关闭本地登录(SSO 场景独占登录入口),并升级 PHP 至 8.5.12 修复两个 CVE(CVE-2026-109618、CVE-2026-109619)(来源:Releases 逐版 Patch Notes,查询日期 2026-10-31)。
三、核心架构
Slink 是「单实例 Web 应用 + 内嵌存储」形态,不依赖外部数据库与消息中间件(来源:官方文档 Docker Compose Installation 页,查询日期 2026-10-31):
- 应用层:Symfony 提供 API 与业务逻辑,SvelteKit 提供服务端渲染界面;运行时为 FrankenPHP(官方镜像内 PHP 8.5 系列、Node 24 系列,随版本 Release Notes 的 Maintenance 条目披露);
- 数据层:内嵌 SQLite 数据库,通过挂载持久化单个数据目录即可,无需自建 PostgreSQL/MySQL;图片文件本体按存储适配器落盘;
- 存储层:
STORAGE_PROVIDER三选一——local(本地磁盘,默认)、smb(Samba 网络共享)、s3(AWS S3 及兼容服务,支持自定义 Endpoint 与 IAM Role);选 SMB/S3 时只需持久化数据库目录(官方 Storage Configuration 说明); - 认证层:本地邮箱/口令登录之外,SSO/OIDC 支持 Google、Authentik、Keycloak、Authelia、Pocket ID 及自定义 OIDC Provider;
- 集成层:个人 API Key +
POST /api/external/upload对外上传接口,配套 ShareX 截图工具一键生成配置;v1.14.5 起管理员可用USER_LOCAL_AUTH_ENABLED关闭本地认证,强制 SSO 登录。
💡 技术拓展:图片站的数据持久化方案常见三种——内嵌文件型数据库(SQLite/DuckDB)、独立关系库(PostgreSQL/MySQL)、对象存储直写(S3)。内嵌库部署最简(一个目录即全部状态),但单实例写并发有限;独立库适合多实例共享与大规模用户;对象存储直写省本地磁盘但依赖外部服务。Slink 采用「SQLite 存元数据 + 存储适配器管图片文件」的组合:部署复杂度接近内嵌方案,图片体积大时又可外移到 SMB/S3。本文所述 Slink 即该组合;若需要多实例负载均衡,Slink 此形态不适用(无外部库模式)。
四、功能特性
官方 README 功能清单分组转述(来源:GitHub README,查询日期 2026-10-31):
| 分组 | 功能点 |
|---|---|
| 分享与访问控制 | 分享默认私有;分享可设密码、可设过期时间;分享管理页可列/编辑/发布/吊销;短链生成;收藏夹(Collections)整组分享;Explore 公开浏览页 |
| 上传与媒体 | 支持 PNG/JPG/WEBP/SVG/BMP/ICO/GIF/AVIF/HEIC*/TIFF*;多文件并行上传带进度;图片压缩;上传去重检测;游客上传(可开关);ShareX 集成 |
| 组织管理 | 嵌套标签(层级化管理+搜索);上传历史(列表/网格视图);书签收藏公开图;公开图评论区;互动通知 |
| 认证与 API | 邮箱/口令注册登录;SSO/OIDC(Google/Authentik/Keycloak/Authelia/Pocket ID/自定义);新用户注册审批开关;个人 API Key;公开 API |
| 个性化 | 界面 9 种语言(英/德/西/法/意/日/波兰/乌克兰/中文);深色/浅色主题;v1.14.0 起主题色自选 |
| 管理 | 管理员仪表盘统计;用户与平台设置管理;图片审核(可见性管控);存储用量统计;存储适配器 local/SMB/S3 |
关键差异点解读:与「传完即走」的一次性文件分享服务不同,Slink 是带账号体系、标签、收藏夹与评论的常驻图片社区形态,隐私默认值激进(分享默认私有、EXIF 默认剥离、SVG 上传强消毒),更接近「自托管版 Imgur」而非临时传输工具。
五、快速开始(最小可用示例)
官方推荐的部署方式为 Docker Compose(来源:官方文档 Docker Compose Installation 页,查询日期 2026-10-31)。最小配置如下(ORIGIN 需替换为实际访问地址):
services:
slink:
image: anirdev/slink:latest
container_name: slink
environment:
- TZ=UTC
- ORIGIN=https://your-domain.com
- USER_APPROVAL_REQUIRED=true
- IMAGE_MAX_SIZE=15M
- STORAGE_PROVIDER=local
volumes:
- ./slink/var/data:/app/var/data
- ./slink/images:/app/slink/images
ports:
- '3000:3000'
启动后访问 https://your-domain.com/profile/signup 注册首个账号;也可在环境变量中预设 ADMIN_USERNAME/ADMIN_EMAIL/ADMIN_PASSWORD 让首次启动自动创建管理员(官方 First User Setup 机制)。首次创建账号即管理员。
⚠️ 以上为官方文档示例转述,固定版本 tag、非 root 运行、演示账号与逐条验证命令不在本文展开,完整部署过程(含实测回显与排障)见 《Slink 1.14.5 Docker Compose 部署指南》。
六、适用场景与限制
适用场景(基于官方定位与功能清单归纳):
- 团队/个人博客、GitHub README、论坛的长期截图与配图托管,需要稳定直链与 Markdown/BBCode/HTML 多格式链接(v1.12.3 起一键复制);
- 摄影师、画师的作品展示社区:嵌套标签、收藏夹、评论、Explore 公开页构成最小社区闭环;
- 内网/私有环境的受控分享:分享默认私有、可加密码与过期时间,配合 SSO 接入企业身份源(Keycloak/Authentik/Authelia 等);
- 追求隐私的自托管用户:EXIF 剥离、上传去重、SVG 消毒默认开启,数据全部落自己磁盘。
限制与注意(基于官方文档与版本历史归纳):
- 单实例架构:元数据存内嵌 SQLite,无官方集群/多实例方案,不适合高并发写入的大规模场景;
- 交付以 Docker 镜像为主,官方文档未提供裸机/包管理器安装路径;
- 图片处理能力集中在压缩与格式转换(JPEG 质量、目标格式 webp/avif/jpeg),无在线裁剪/编辑;
- HEIC/TIFF 支持带 * 注记(README 原文),选型时需在演示实例实测目标格式;
- API 面向外部分享/上传场景,覆盖认证、API Key、上传、收藏夹、分享与配置读取,不提供完整的站点管理 API(管理员操作以 Web 设置页为主)。
七、同类选型对比
与 G24 同族及主流自托管图片/文件分享服务对比(星数来自 shields.io,查询日期 2026-10-31;功能列依据各自官方 README/文档):
| 项目 | 语言/技术栈 | 许可证 | Stars | 存储后端 | 账号与权限 | API | 定位差异 |
|---|---|---|---|---|---|---|---|
| Slink | PHP (Symfony) + SvelteKit | AGPL-3.0 | 1.6k | local/SMB/S3 | 多用户+审批+SSO/OIDC | 个人 API Key + 外部上传 + ShareX | 常驻图片社区,隐私默认值强 |
| PictShare | PHP | 自定义自由许可 | 951 | 本地 | 单管理员视角,匿名上传为主 | URL 参数 + HTTP API | 极简图床,URL 即参数( resizing/格式转换) |
| PicoShare | Go | AGPL-3.0 | 3.1k | 本地 | 单用户(共享链接) | REST API | 极简文件分享,链接永不过期特色 |
| Chevereto | PHP | AGPL-3.0(社区版) | 1k | 本地/S3 等 | 多用户+相册 | REST API(v1) | 功能最全的图床套件,社区版与商业版双轨 |
| Zipline | TypeScript (Next.js) | MIT | 3.5k | 本地/S3 | 多用户+OAuth | REST API + 上传令牌 | 短链+文件+图床一体,配置项多 |
选型建议:
- 要「图床+社区」(账号、标签、评论、审核、SSO),在自托管轻量档位里 Slink 是当前最完整的开箱方案——Chevereto 功能更全但社区版演进放缓,Slink 迭代频率(v1.12→v1.14.5 数月内 3 个 minor 版本)与文档完整度更高;
- 只要「传文件拿链接」不管理图片,选 PicoShare(极简、Go 单二进制)或 PictShare(URL 参数玩法多),二者本站已有实测评测:《PictShare 介绍与选型指南》、《PicoShare 介绍与选型指南》;
- 要「短链+文件+图床一体」且接受 TS 技术栈,Zipline 星数最高、配置面最广;要「企业 SSO 强管控」,Slink 的 OIDC 多 Provider 与注册审批开箱即用。
八、参考链接
- 官方文档站:https://docs.slinkapp.io/
- GitHub 仓库:https://github.com/andrii-kryvoviaz/slink
- 版本发布:https://github.com/andrii-kryvoviaz/slink/releases
- 官方 Docker Compose 安装文档:https://docs.slinkapp.io/installation/01-docker-compose/
- 官方环境变量参考:https://docs.slinkapp.io/configuration/01-environment-variables/
- API Key 管理文档:https://docs.slinkapp.io/usage/02-api-key-management/
- 在线演示:https://demo.slinkapp.io/
- 本文数据查询日期:2026-10-31