![](https://file.jishuzhan.net/article/1781194055523241986/0b9550026389d9af3b139a1ea4da0037.webp)
什么是 Slink ?
Slink
是一个使用Symfony
和SvelteKit
构建的自托管图像共享平台。Slink
解决了不依赖第三方服务与朋友、家人、同事共享图像的问题。它还为艺术家提供了一个与社区分享作品的平台。此外,开发人员可能会发现它对于自托管个人项目的屏幕截图很有用,然后可以在GitHub
、投资组合、博客等上使用。
![](https://file.jishuzhan.net/article/1781194055523241986/ba84dabc8085d0048da923974e682500.webp)
反向代理
本文开始折腾时,遇到了登录问题,具体表现为登录之后没有任何反应,日志和开发者工具中也没有任何信息,后来无意中发现是因为环境变量 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
中的设置
![](https://file.jishuzhan.net/article/1781194055523241986/f2f6f8d56c72be31870517120a3f304d.webp)
SSL
都勾选了
![](https://file.jishuzhan.net/article/1781194055523241986/57157f2f411478a49ada49bf7ec57017.webp)
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 anirdev
,选择第一个 anirdev/slink
,版本选择 latest
。
本文写作时,
latest
版本对应为v1.0.0-rc.6
![](https://file.jishuzhan.net/article/1781194055523241986/fc03deeefa129bdedb65209e7fe717be.webp)
放了几天之后,再次折腾时,
latest
版本对应为v1.0.0-rc.9
,目前看起来更新非常频繁
![](https://file.jishuzhan.net/article/1781194055523241986/8650cae68d9cf206c0a4326625d4c559.webp)
卷
在 docker
文件夹中,创建一个新文件夹 slink
,并在其中建两个子文件夹 data
和 images
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/slink/data |
/app/var/data |
存放数据库文件 |
docker/slink/images |
/app/slink/images |
存放图片文件 |
![](https://file.jishuzhan.net/article/1781194055523241986/fccd1efca86a37ad2b7edcfd6fe2e126.webp)
端口
本地端口不冲突就行,不确定的话可以用命令查一下
bash
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
3847 |
3000 |
![](https://file.jishuzhan.net/article/1781194055523241986/c4a16b0b2b5de0fb96a3b7ba70a53d0a.webp)
环境
可变 | 值 |
---|---|
ORIGIN |
应用的访问地址,默认值为 http://localhost:3000 |
USER_APPROVAL_REQUIRED |
需要用户批准才能上传图像 |
STORAGE_PROVIDER |
存储方式,可用选项有 local 和 smb |
将 ORIGIN
修改为前面准备的域名
![](https://file.jishuzhan.net/article/1781194055523241986/932ce24d2bf8c6f0515e1cb67372bd7b.webp)
再新增两个参数
![](https://file.jishuzhan.net/article/1781194055523241986/a4881b04edff4bc5245accea043580d9.webp)
更多的环境变量参数,请参考官方文档: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
就能看到主界面
![](https://file.jishuzhan.net/article/1781194055523241986/09cb06633cb51ed5507bff5c00ae7c2c.webp)
注册用户
Slink
必须登录才能上传图像。不允许匿名上传,所以第一件事情是注册并登录
需要使用高强度的密码,例如:
eX@mp1e-P@ssw0rd!
,否则会提示The password strength is too low. Please use a stronger password.
![](https://file.jishuzhan.net/article/1781194055523241986/6357f68457bd0956440aa9423c62bb97.webp)
注册成功后,会获取到你的用户 ID
![](https://file.jishuzhan.net/article/1781194055523241986/c97f8cb8e8c620750935563f01b0ef76.webp)
用户批准
因为启用了用户批准(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
![](https://file.jishuzhan.net/article/1781194055523241986/9e578371b9527080931be138f23f7db9.webp)
或者
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://file.jishuzhan.net/article/1781194055523241986/97c4541c2ce1dbe3604714e91ff5b517.webp)
登录成功后,就可以开始上传图片了
![](https://file.jishuzhan.net/article/1781194055523241986/770f0f4bc93aadeb7e9e5c99d8b832c4.webp)
上传图片
除了选取和拖拽文件外
![](https://file.jishuzhan.net/article/1781194055523241986/f3579ed77930db8c5a08e7ac2f603a19.webp)
因为使用了 https
协议,截屏的文件是可以直接粘贴上传的
![](https://file.jishuzhan.net/article/1781194055523241986/5ab6186b7494bf9801a495231ff2b62e.webp)
目前 Dashboard
和 Settings
还没开放,喜欢的可以持续关注
![](https://file.jishuzhan.net/article/1781194055523241986/22ce79fb480ce253380980d10dca309a.webp)
参考文档
andrii-kryvoviaz/slink: Self-hosted image sharing service. Currently, under development.