自托管图像共享服务Slink

什么是 Slink ?

Slink 是一个使用 SymfonySvelteKit 构建的自托管图像共享平台。Slink 解决了不依赖第三方服务与朋友、家人、同事共享图像的问题。它还为艺术家提供了一个与社区分享作品的平台。此外,开发人员可能会发现它对于自托管个人项目的屏幕截图很有用,然后可以在 GitHub、投资组合、博客等上使用。

反向代理

本文开始折腾时,遇到了登录问题,具体表现为登录之后没有任何反应,日志和开发者工具中也没有任何信息,后来无意中发现是因为环境变量 ORIGIN 使用了局域网地址 http://192.168.0.197:3847 导致的,但具体原因老苏并没有弄明白

另外,如果需要在网页上直接访问剪贴板,也需要采用 https协议才行

因此在开始前,需要先做反向代理。本次老苏采用的是 tailscale + npm 方案

文章传送门:用自定义域名访问tailscale节点

实际访问地址为: https://slink.laosu.cf

域名 局域网地址 备注
slink.laosu.cf http://192.168.0.197:3847 slink 的访问地址

npm 中的设置

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 anirdev ,选择第一个 anirdev/slink,版本选择 latest

本文写作时, latest 版本对应为 v1.0.0-rc.6

放了几天之后,再次折腾时, latest 版本对应为v1.0.0-rc.9,目前看起来更新非常频繁

docker 文件夹中,创建一个新文件夹 slink,并在其中建两个子文件夹 dataimages

文件夹 装载路径 说明
docker/slink/data /app/var/data 存放数据库文件
docker/slink/images /app/slink/images 存放图片文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3847 3000

环境

可变
ORIGIN 应用的访问地址,默认值为 http://localhost:3000
USER_APPROVAL_REQUIRED 需要用户批准才能上传图像
STORAGE_PROVIDER 存储方式,可用选项有 localsmb

ORIGIN 修改为前面准备的域名

再新增两个参数

更多的环境变量参数,请参考官方文档:https://github.com/andrii-kryvoviaz/slink#configuration

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建文件夹 slink 和 子目录
mkdir -p /volume1/docker/slink/{data,images}

# 进入 slink 目录
cd /volume1/docker/slink

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name slink \
   -p 3847:3000 \
   -v $(pwd)/data:/app/var/data \
   -v $(pwd)/images:/app/slink/images \
   -e ORIGIN=https://slink.laosu.cf \
   -e USER_APPROVAL_REQUIRED=true \
   -e STORAGE_PROVIDER=local \
   anirdev/slink:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
version: '3'

services:
  slink:
    image: anirdev/slink:latest
    container_name: slink
    restart: unless-stopped
    ports:
      - 3847:3000
    volumes:
      - ./data:/app/var/data
      - ./images:/app/slink/images
    environment:
      - ORIGIN=https://slink.laosu.cf
      - USER_APPROVAL_REQUIRED=true
      - STORAGE_PROVIDER=local

然后执行下面的命令

bash 复制代码
# 新建文件夹 slink 和 子目录
mkdir -p /volume1/docker/slink/{data,images}

# 进入 slink 目录
cd /volume1/docker/slink

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 https://slink.laosu.cf 就能看到主界面

注册用户

Slink 必须登录才能上传图像。不允许匿名上传,所以第一件事情是注册并登录

需要使用高强度的密码,例如:eX@mp1e-P@ssw0rd!,否则会提示 The password strength is too low. Please use a stronger password.

注册成功后,会获取到你的用户 ID

用户批准

因为启用了用户批准(USER_APPROVAL_REQUIRED=true),所以必须使用 CLI 命令手动激活用户,如果不激活直接登录,会返回错误:Invalid credentials. Please check your email and password and try again.

在未来的版本中,将添加管理面板来管理用户及其状态。

bash 复制代码
# 通过邮件地址激活用户
docker exec -it slink slink user:activate --email=<user-email>

# 示例,将 <user-email> 替换为刚注册的 email 地址
docker exec -it slink slink user:activate --email=wbsu2003@gmail.com

或者

bash 复制代码
# 通过用户ID激活用户
docker exec -it slink slink user:activate --uuid=<user-id>

# 示例,将 <user-id> 替换为注册后获取的用户 ID
docker exec -it slink slink user:activate --uuid=7e6ecb25-c257-4362-9edd-12363bbd0515

登录成功后,就可以开始上传图片了

上传图片

除了选取和拖拽文件外

因为使用了 https 协议,截屏的文件是可以直接粘贴上传的

目前 DashboardSettings 还没开放,喜欢的可以持续关注

参考文档

andrii-kryvoviaz/slink: Self-hosted image sharing service. Currently, under development.

地址:https://github.com/andrii-kryvoviaz/slink

相关推荐
极客先躯9 小时前
高级java每日一道面试题-2025年12月07日-实战篇[Dockerj]-Docker daemon 的配置文件在哪里?常用的配置项有哪些?
java·docker·配置文件的实际位置·配置文件的格式规则·常用配置项全景与分类·配置如何生效·daemon 配置折射架构思维
颯沓如流星12 小时前
【 Docker Desktop】基于Windows + WSL2 的环境配置, 快速部署一套Kubernetes Cluster
windows·docker·kubernetes
showyoui13 小时前
一次 GKE Sidecar 场景下的连通性排查实录
docker·微服务·容器·kubernetes·service_mesh
香菜农民14 小时前
域名证书管理
运维·docker
江湖有缘15 小时前
从零开始:基于Docker Compose的Kener监控面板部署全记录
运维·docker·容器
月光技术杂谈15 小时前
国内环境下安装 docker-ce 的完整步骤
运维·docker·容器
leoZ23116 小时前
Linux 环境常用服务一键部署文档(Docker 版)
运维·docker·容器
追寻少年17 小时前
基于Kubeadm和Docker部署K8S高可用集群
docker·容器·kubernetes
GitCode官方17 小时前
投稿|Git + Docker 零基础入门攻略
git·docker·容器
bukeyiwanshui18 小时前
20260509 docker项目总结
运维·docker·容器