Slink 1.14.5 配置参数详解
Slink v1.14.5 配置体系详解:启动横幅/配置接口/Web 设置页三渠道、全量环境变量总览与默认值、用户访问/图片处理/分享/存储/S3 逐类详解、生产配置模板与常见配置陷阱,实测核对。
Slink 1.14.5 配置参数详解
目标:讲全 Slink v1.14.5 的配置体系——参数的三个查看渠道、全量环境变量总览、逐类参数详解、生产配置模板与常见配置陷阱。参数默认值经官方环境变量参考核对,实际生效值经本地实例实测核对(环境见第一章)。部署过程见 《Slink 1.14.5 Docker Compose 部署指南》。
一、环境信息
本文参数核对在以下环境完成:
- 操作系统:Ubuntu 24.04.5 LTS(x86_64),Docker 29.9.2
- Slink 版本:v1.14.5(官方镜像
anirdev/slink:v1.14.5,2026-10-31 发布) - 实例配置:
ORIGIN=http://localhost:8130、TZ=Asia/Shanghai、USER_PASSWORD_REQUIREMENTS=3、IMAGE_MAX_SIZE=15M、STORAGE_PROVIDER=local、首管admin@slink.local - 参数来源核对:官方文档 Environment Variables 页(查询日期 2026-10-31);实际生效值:实例启动日志与
GET /api/settings实测回显
二、前置条件
需要一个已部署并可访问的 Slink 实例(部署见 《Slink 1.14.5 Docker Compose 部署指南》第二章),并准备:
- 管理员账号(本文用
admin@slink.local)——查看运行时配置与使用 Web 设置页需要管理员身份; - 实例的服务器日志访问权限——启动配置横幅是核对环境变量生效情况的第一手段;
- curl 或 API 调试工具——用于读取配置接口。
三、参数查看与修改方式
Slink 配置有三个查看/修改渠道,优先级从低到高依次为:环境变量 < Web 设置页保存值。先看两个只读渠道的实测回显。
3.1 渠道一:启动日志配置横幅
每次启动把关键配置分类打印,是核对环境变量是否被正确接收的最快方式(以下为实例实际启动日志,逐行照抄):
[config] runtime:
Application Environment prod
System Timezone Asia/Shanghai
Demo Mode Disabled
[config] storage:
Storage Provider local
Maximum Upload File Size 15M
Upload Chunk Size 2M
[config] image pipeline:
Strip EXIF Metadata Enabled
Image Compression Quality 80%
Force Format Conversion Disabled
Image Deduplication Enabled
Image Licensing Disabled
Restrict to Public Images Disabled
[config] access:
Public User Registration Enabled
New Account Approval Not Required
Unauthenticated Access Enabled
Anonymous Guest Uploads Disabled
Auth Required for Media Shares Disabled
Auth Required for Collection Shares Disabled
Force HTTPS Connections Disabled
Minimum Password Length 6 characters
[config] sharing:
Short URL Generation Enabled
Short URL Length 8
与部署 compose 逐项对照:TZ=Asia/Shanghai → System Timezone Asia/Shanghai;USER_APPROVAL_REQUIRED=false → New Account Approval Not Required;USER_PASSWORD_REQUIREMENTS=3 → 密码长度行下方生效;IMAGE_MAX_SIZE=15M → Maximum Upload File Size 15M。横幅与注入值完全一致,说明环境变量渠道生效。
3.2 渠道二:配置读取接口
管理员登录后调用 GET /api/settings,返回完整运行时配置 JSON(实测回显全文):
curl -s http://localhost:8130/api/settings -H "Authorization: Bearer <管理员JWT>" | python3 -m json.tool
{
"storage": {
"provider": "local",
"adapter": {
"local": {
"dir": "/app"
},
"smb": {
"host": "",
"share": "",
"workgroup": "",
"username": "",
"password": ""
},
"s3": {
"region": "",
"bucket": "",
"key": "",
"secret": "",
"endpoint": "",
"useCustomProvider": false,
"forcePathStyle": false,
"useIamRole": false
}
}
},
"user": {
"allowRegistration": true,
"localAuthEnabled": true,
"approvalRequired": false,
"autoRedirectProviderId": null,
"password": {
"minLength": 6,
"requirements": 3
}
},
"image": {
"maxSize": "15M",
"chunkSize": "2M",
"allowedFormats": -1,
"stripExifMetadata": true,
"allowOnlyPublicImages": false,
"compressionQuality": 80,
"enableDeduplication": true,
"enableLicensing": false,
"forceFormatConversion": false,
"targetFormat": "webp",
"convertAnimatedImages": false
},
"access": {
"allowGuestUploads": false,
"allowUnauthenticatedAccess": true,
"requireAuthForMediaShares": false,
"requireAuthForCollectionShares": false,
"requireSsl": false
},
"share": {
"enableUrlShortening": true,
"shortUrlLength": 8
},
"demo": {
"enabled": false,
"demoUsername": "demo",
"demoPassword": "demo123",
"demoEmail": "demo@demo.local",
"demoDisplayName": "Demo User"
},
"customization": {
"siteName": "Slink",
"siteDescription": "Fast and secure image sharing service",
"logoUrl": ""
}
}
该接口比启动横幅覆盖面更全:额外暴露了 image.allowedFormats(-1 表示不限制格式)、image.targetFormat、demo.*(演示模式账号参数)与 customization.*(v1.13.0 起的站点名称/描述/Logo)等横幅不打印的项。user.password.requirements: 3 与部署注入的位掩码一致。
3.3 渠道三:Web 设置页(修改)
管理员在 Web 界面 Settings 页可运行时修改图片、存储、安全/用户三类配置。官方明确:设置页保存的值优先于对应的环境变量(来源:官方环境变量参考页 Tip,查询日期 2026-10-31)。含义是:环境变量只决定初始值,实例一旦在设置页保存过对应项,再改环境变量重启不会覆盖它——排查「改了 env 不生效」先查设置页。v1.13.1 起,存储类设置修改后即时生效、无需重启。
四、参数总览
全量环境变量总览(来源:官方文档 Environment Variables 页,查询日期 2026-10-31;「默认」列为官方标注默认值)。
通用(General)
| 变量 | 说明 | 默认 |
|---|---|---|
ORIGIN | 应用公开主机名,Cookie 正常工作的前提 | http://localhost:3000 |
TZ | 应用时区 | UTC |
PORT | 应用监听端口 | 3000 |
用户与访问(Users & Access)
| 变量 | 说明 | 默认 |
|---|---|---|
USER_ALLOW_REGISTRATION | 允许新用户注册;关闭后仅存量用户可登录(SSO Provider 可覆盖) | true |
USER_APPROVAL_REQUIRED | 新用户登录前需管理员审批 | true |
USER_ALLOW_GUEST_UPLOADS | 允许未登录用户上传 | false |
USER_ALLOW_UNAUTHENTICATED_ACCESS | 允许未登录访问 Explore 等公开路由 | true |
USER_REQUIRE_AUTH_FOR_MEDIA_SHARES | 打开图片分享链接需登录 | false |
USER_REQUIRE_AUTH_FOR_COLLECTION_SHARES | 打开收藏夹分享链接需登录 | false |
USER_PASSWORD_MIN_LENGTH | 口令最小长度 | 6 |
USER_PASSWORD_REQUIREMENTS | 口令要求位掩码:1 数字、2 小写、4 大写、8 特殊字符,求和组合 | 15 |
USER_LOCAL_AUTH_ENABLED | v1.14.5 新增:启用本地登录/注册/改密(关闭需已有 SSO Provider) | true |
图片处理(Image Processing)
| 变量 | 说明 | 默认 |
|---|---|---|
IMAGE_MAX_SIZE | 单图上传上限,k/M 后缀,上限 1000M | 15M |
IMAGE_CHUNK_SIZE | 分片上传分片大小,1M-25M | 2M |
IMAGE_STRIP_EXIF_METADATA | 剥离 EXIF 元数据 | true |
IMAGE_ALLOW_ONLY_PUBLIC_IMAGES | 强制所有上传图片公开、可见性不可改 | false |
IMAGE_COMPRESSION_QUALITY | JPEG 压缩质量 1-100 | 80 |
IMAGE_ENABLE_DEDUPLICATION | 上传时检测并处理重复图片 | true |
IMAGE_FORCE_FORMAT_CONVERSION | 强制转换为统一格式 | false |
IMAGE_TARGET_FORMAT | 转换目标格式:webp/avif/jpeg | webp |
IMAGE_CONVERT_ANIMATED_IMAGES | 启用转换时连动图(GIF)一并转换 | false |
分享(Sharing)
| 变量 | 说明 | 默认 |
|---|---|---|
SHARE_ENABLE_URL_SHORTENING | 生成短链 | true |
SHARE_SHORT_URL_LENGTH | 短码长度,4-32 之间 | 8 |
存储(Storage)
| 变量 | 说明 | 默认 |
|---|---|---|
STORAGE_PROVIDER | 存储后端:local/smb/s3 | local |
SMB(Samba)
| 变量 | 说明 | 默认 |
|---|---|---|
SMB_HOST | SMB 主机(SMB 必填) | 无 |
SMB_SHARE | SMB 共享名(SMB 必填) | 无 |
SMB_WORKGROUP | 工作组 | workgroup |
SMB_USERNAME | SMB 用户名(SMB 必填) | 无 |
SMB_PASSWORD | SMB 口令(SMB 必填) | 无 |
S3 及兼容服务
| 变量 | 说明 | 默认 |
|---|---|---|
AMAZON_S3_REGION | 桶所在区域(AWS S3 必填;自定义 Provider 可自动探测) | 无 |
AMAZON_S3_BUCKET | 桶名(S3 必填) | 无 |
AMAZON_S3_ACCESS_KEY_ID | 访问密钥 ID(未用 IAM Role 时必填) | 无 |
AMAZON_S3_SECRET_ACCESS_KEY | 秘密访问密钥(未用 IAM Role 时必填) | 无 |
AMAZON_S3_USE_IAM_ROLE | 用实例 IAM Role 认证替代静态密钥(仅 AWS S3) | false |
AMAZON_S3_ENDPOINT | S3 兼容服务自定义端点(如 Backblaze B2) | 无 |
AMAZON_S3_USE_CUSTOM_PROVIDER | 启用 S3 兼容服务模式 | false |
AMAZON_S3_FORCE_PATH_STYLE | 强制 path-style URL(兼容服务常用) | false |
安全与 SSL(Security & SSL)
| 变量 | 说明 | 默认 |
|---|---|---|
REQUIRE_SSL | 强制 HTTPS,影响认证行为 | false |
OAUTH_VERIFY_SSL | 校验 OAuth/OIDC 端点证书;自签证书开发环境可关 | true |
首个管理员(Admin User,仅首次启动)
| 变量 | 说明 | 默认 |
|---|---|---|
ADMIN_USERNAME | 首个管理员用户名(仅 ADMIN_EMAIL 设置时使用) | admin |
ADMIN_EMAIL | 首个管理员邮箱,设置后触发首启自动建管 | 无 |
ADMIN_PASSWORD | 首个管理员口令(ADMIN_EMAIL 设置时必填) | 无 |
表内解读:默认值整体偏「开放注册 + 私有分享 + 图片即传即处理」——注册开、审批关、游客传关、EXIF 剥离开。最需要生产环境重审的是 USER_APPROVAL_REQUIRED(默认 true,关掉前想清楚注册口子)与两个 REQUIRE_AUTH_FOR_*_SHARES(默认 false,分享链接拿到即可看)。
💡 技术拓展:口令复杂度常见的表达方式有三种——布尔开关逐项配置、正则模板、位掩码。布尔开关直观但变量多;正则模板灵活但难校验提示;位掩码(Slink 所用)一个变量表达任意组合,代价是需按 1/2/4/8 求和换算。Slink 取位掩码方案:
USER_PASSWORD_REQUIREMENTS=15即数字+小写+大写+特殊字符全要求,3即数字+小写。本文实例为容纳演示口令q1w2e3r4设为3,生产建议保持15。
五、核心参数分类详解
5.1 通用参数:ORIGIN / TZ / PORT
ORIGIN 是 Slink 最重要的单个参数:它参与 Cookie 作用域判定,并对写请求做同源校验。实测表现:当 ORIGIN=http://localhost:8130 时,用 curl 不带 Origin 头上传会被拒(403「Cross-site POST form submissions are forbidden」),显式带 -H "Origin: http://localhost:8130" 即通过。部署时 ORIGIN 必须与用户实际访问地址逐字一致(协议+域名/IP+端口)。TZ 影响日志时间与分享过期时间的展示口径;PORT 只在改容器内监听端口时需要,一般不动。
5.2 用户与访问参数
四个高频项的实测联动关系(对应 3.1 横幅 access 段):
USER_ALLOW_REGISTRATION=true+USER_APPROVAL_REQUIRED=false→ 横幅显示Public User Registration Enabled+New Account Approval Not Required,注册即用;USER_APPROVAL_REQUIRED=true(官方默认)→ 新注册用户需管理员在用户管理里放行才能登录,适合半开放部署;USER_ALLOW_GUEST_UPLOADS默认false→ 横幅Anonymous Guest Uploads Disabled;打开后未登录访客可直接上传,图床场景按需开启;USER_PASSWORD_MIN_LENGTH=6+USER_PASSWORD_REQUIREMENTS=3→ 横幅Minimum Password Length 6 characters,接口读取password.requirements: 3(见 3.2 回显)。
两个分享访问开关(USER_REQUIRE_AUTH_FOR_MEDIA_SHARES/USER_REQUIRE_AUTH_FOR_COLLECTION_SHARES)默认 false:拿到链接即可打开。收紧为 true 后,打开分享链接也要求登录,适合纯内部使用。
5.3 图片处理参数
IMAGE_MAX_SIZE/IMAGE_CHUNK_SIZE 控制上传体积与分片粒度(接口回显 maxSize: 15M、chunkSize: 2M);IMAGE_STRIP_EXIF_METADATA=true 默认剥离照片元数据(位置、设备信息),隐私友好;IMAGE_ENABLE_DEDUPLICATION=true 在上传时做哈希去重(启动日志 image hashes ... up-to-date 行即哈希维护任务);IMAGE_FORCE_FORMAT_CONVERSION + IMAGE_TARGET_FORMAT=webp 组合可把全部上传统一转成 WebP 省存储,GIF 动图需另开 IMAGE_CONVERT_ANIMATED_IMAGES 才会被转换。IMAGE_COMPRESSION_QUALITY=80 只作用于 JPEG 有损压缩路径。
5.4 分享与存储参数
SHARE_ENABLE_URL_SHORTENING=true + SHARE_SHORT_URL_LENGTH=8:上传后自动生成 8 位短码(实测上传返回的分享链接形如 /i/KOSzunpg,8 位随机码与该配置吻合)。存储三后端:local 直接写 /app/slink/images(实测图片按 UUID 落盘,如 ad765b7f-a8b3-4e3e-b423-31ee86e84578.png);smb 需补齐 5 个 SMB_* 变量;s3 需补 AMAZON_S3_* 系列,第三方兼容对象存储(MinIO、Backblaze B2 等)要设 AMAZON_S3_ENDPOINT + AMAZON_S3_USE_CUSTOM_PROVIDER=true,多数还要 AMAZON_S3_FORCE_PATH_STYLE=true。切到远程存储后,只有数据库目录需要持久化,图片目录可省(官方 Storage Configuration 说明)。
5.5 安全参数与首管参数
REQUIRE_SSL=true 面向 HTTPS 生产部署(认证 Cookie 行为随之下收紧);OAUTH_VERIFY_SSL 默认校验 SSO 端点证书。首管三变量仅首次启动生效一次:ADMIN_EMAIL 是触发开关,缺了它另两个不生效(实测首启日志打印 admin user ... admin@slink.local created 173ms;漏配时该行不出现)。建管成功后建议从 compose 中移除这三个变量。
六、生产配置模板
面向「小团队内部图床,10-50 人,4C8G 虚拟机,本地磁盘存储,开启注册审批与 SSO-ready」场景的推荐模板:
environment:
- TZ=Asia/Shanghai
- ORIGIN=https://images.example.com # 改为实际域名
- REQUIRE_SSL=true # 反代已终止 TLS 时开启
- USER_ALLOW_REGISTRATION=true
- USER_APPROVAL_REQUIRED=true # 注册需审批,防滥用
- USER_PASSWORD_MIN_LENGTH=10
- USER_PASSWORD_REQUIREMENTS=15 # 全类字符要求
- IMAGE_MAX_SIZE=50M # 按素材体积定,上限 1000M
- IMAGE_CHUNK_SIZE=5M
- IMAGE_STRIP_EXIF_METADATA=true
- IMAGE_COMPRESSION_QUALITY=85
- IMAGE_ENABLE_DEDUPLICATION=true
- SHARE_ENABLE_URL_SHORTENING=true
- SHARE_SHORT_URL_LENGTH=8
- STORAGE_PROVIDER=local
模板说明:ORIGIN/REQUIRE_SSL 按域名与反代实情落值;审批打开后管理员需定期处理注册队列;IMAGE_MAX_SIZE=50M 适配设计稿/截图,若接 s3 后端再补 AMAZON_S3_* 系列并把数据卷收缩为仅数据库目录。
七、常见问题
Q1:改了环境变量重启后不生效?
先查 Web 设置页是否保存过对应项——设置页保存值优先于环境变量(官方明示);存储类设置 v1.13.1 起改后即时生效,其他项重启确认。仍不生效时用启动横幅与 GET /api/settings(见第三章)核对实际生效值。
Q2:口令复杂度怎么算?
位掩码求和:1 数字、2 小写、4 大写、8 特殊字符。15=全要求(默认),3=数字+小写。演示口令 q1w2e3r4 在默认 15 下会被拒,需把 USER_PASSWORD_REQUIREMENTS 调到 3 或换强口令。
Q3:上传报体积超限?
IMAGE_MAX_SIZE 默认 15M、上限 1000M;若前置反代,反代的请求体限制(如 nginx client_max_body_size)要同步放大,大文件分片受 IMAGE_CHUNK_SIZE(1M-25M)约束。
Q4:S3 兼容存储连不上?
第三方对象存储通常需要三件套:AMAZON_S3_ENDPOINT、AMAZON_S3_USE_CUSTOM_PROVIDER=true、AMAZON_S3_FORCE_PATH_STYLE=true;缺 path-style 时 Bucket 路径式寻址会 403/404。v1.13.1 起自定义端点会先做规范化校验再保存。
Q5:自动建管没触发?
ADMIN_EMAIL 是触发器,必须与 ADMIN_USERNAME、ADMIN_PASSWORD 三者齐备且仅首次启动有效;核对启动日志有无 admin user ... created 行(见部署指南 FAQ)。
八、参考链接
- 官方环境变量参考(本文默认值来源,查询日期 2026-10-31):https://docs.slinkapp.io/configuration/01-environment-variables/
- 存储适配器详解(SMB/S3 完整示例):https://docs.slinkapp.io/configuration/02-storage-provider/
- 部署过程与验证回显:《Slink 1.14.5 Docker Compose 部署指南》
- 产品定位与选型:《Slink 介绍与选型指南》
- 本文实测版本:v1.14.5(2026-10-31 发布,GitHub Releases 实查)