自托管图像共享服务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 protected]

或者

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

相关推荐
李菠菜3 小时前
Kubernetes上通过Helm部署高可用Redis集群
docker·容器·kubernetes
李菠菜3 小时前
修改KubeSphere外网访问端口
docker·容器·kubernetes
福大大架构师每日一题3 小时前
docker v28.1.1 正式发布!修复关键Bug,网络与安全性再升级
网络·docker·bug
一个小坑货4 小时前
Docker 部署 PostgreSQL 数据库
数据库·docker·postgresql
残轩5 小时前
Win10 家庭版 Docker 环境搭建详解(基于 WSL2)
前端·后端·docker
David爱编程5 小时前
90%工程师都踩过的坑:K8s三种探针最佳组合方案全解析
docker·云原生·kubernetes
davysiao5 小时前
基于 CentOS 的 Docker Swarm 集群管理实战指南
linux·docker·centos
Archie_IT6 小时前
Puter部署指南:基于Docker的多功能个人云平台掌控自己的数据
运维·docker·容器
思逻辑维6 小时前
数据库+Docker+SSH三合一!深度评测HexHub的全栈开发体验
数据库·docker·ssh·软件工程·开源软件·软件需求
angushine7 小时前
鲲鹏麒麟搭建Docker仓库
运维·docker·容器