• 自托管图像共享服务Slink


    在这里插入图片描述

    什么是 Slink ?

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

    反向代理

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

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

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

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

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

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

    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存放图片文件

    端口

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

    # 查看端口占用
    netstat -tunlp | grep 端口号
    
    • 1
    • 2
    本地端口容器端口
    38473000

    环境

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

    ORIGIN 修改为前面准备的域名

    再新增两个参数

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

    命令行安装

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

    # 新建文件夹 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    然后执行下面的命令

    # 新建文件夹 slink 和 子目录
    mkdir -p /volume1/docker/slink/{data,images}
    
    # 进入 slink 目录
    cd /volume1/docker/slink
    
    # 将 docker-compose.yml 放入当前目录
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行

    在浏览器中输入 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.

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

    # 通过邮件地址激活用户
    docker exec -it slink slink user:activate --email=<user-email>
    
    # 示例,将  替换为刚注册的 email 地址
    docker exec -it slink slink user:activate --email=wbsu2003@gmail.com
    
    • 1
    • 2
    • 3
    • 4
    • 5

    或者

    # 通过用户ID激活用户
    docker exec -it slink slink user:activate --uuid=<user-id>
    
    # 示例,将  替换为注册后获取的用户 ID
    docker exec -it slink slink user:activate --uuid=7e6ecb25-c257-4362-9edd-12363bbd0515
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    上传图片

    除了选取和拖拽文件外

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

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

    参考文档

    andrii-kryvoviaz/slink: Self-hosted image sharing service. Currently, under development.
    地址:https://github.com/andrii-kryvoviaz/slink

  • 相关阅读:
    3.3 AOP之AOP概念及相关术语
    斐波那契数-动规
    【B/S架构】医院不良事件报告系统源码
    网络安全(黑客)自学
    mybatis plus in使用时传数组、集合的注意点
    Windows11轻松设置v1.06绿色版
    用winsw将nodejs项目的exe程序安装为服务
    C#WPF命令Command使用实例
    Java入门项目——读书管理系统
    1200万像素通过算法无失真扩展到1.92亿像素——加权概率模型收缩模型图像像素扩展算法
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/137949176