什么是 Slink ?
Slink 是一个使用 Symfony 和 SvelteKit 构建的自托管图像共享平台。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,并在其中建两个子文件夹 data 和 images
文件夹
装载路径
说明
docker/slink/data
/app/var/data
存放数据库文件
docker/slink/images
/app/slink/images
存放图片文件
端口本地端口不冲突就行,不确定的话可以用命令查一下
12# 查看端口占用netstat -tunlp | grep 端口号
本地端口
容器端口
3847
3000
环境
可变
值
ORIGIN
应用的访问地址,默认值为 http://localhost:3000
USER_APPROVAL_REQUIRED
需要用户批准才能上传图像
STORAGE_PROVIDER
存储方式,可用选项有 local 和 smb
将 ORIGIN 修改为前面准备的域名
再新增两个参数
更多的环境变量参数,请参考官方文档:https://github.com/andrii-kryvoviaz/slink#configuration
命令行安装如果你熟悉命令行,可能用 docker cli 更快捷
1234567891011121314151617# 新建文件夹 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 文件
12345678910111213141516version: '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
然后执行下面的命令
12345678910# 新建文件夹 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.
在未来的版本中,将添加管理面板来管理用户及其状态。
12345# 通过邮件地址激活用户docker exec -it slink slink user:activate --email=
或者
12345# 通过用户ID激活用户docker exec -it slink slink user:activate --uuid=
登录成功后,就可以开始上传图片了
上传图片除了选取和拖拽文件外
因为使用了 https 协议,截屏的文件是可以直接粘贴上传的
目前 Dashboard 和 Settings 还没开放,喜欢的可以持续关注
参考文档
andrii-kryvoviaz/slink: Self-hosted image sharing service. Currently, under development.地址:https://github.com/andrii-kryvoviaz/slink