首页
/ Slink自托管图片分享服务部署与配置完全指南

Slink自托管图片分享服务部署与配置完全指南

2026-03-10 04:07:55作者:冯梦姬Eddie

一、准备环境:构建运行基础

1.1 验证系统兼容性

在开始部署「Slink」之前,需要确保您的系统满足以下最低要求:

  • 操作系统:Linux (推荐Ubuntu 20.04+/Debian 11+) 或 macOS 12+
  • 容器环境:Docker 20.10+ 和 Docker Compose 2.0+
  • 硬件资源:至少2GB RAM(推荐4GB)和10GB可用磁盘空间
  • 网络要求:开放80/443端口(用于Web访问)和22端口(用于SSH管理)

🔧 操作步骤

# 检查Docker版本
docker --version  # 需返回Docker version 20.10.0+
docker-compose --version  # 需返回v2.0.0+

# 验证网络端口可用性
sudo lsof -i :80 -i :443  # 确保这些端口未被占用

⚠️ 注意:如果端口被占用,需先停止占用进程或修改Slink配置中的端口映射。

1.2 获取项目源码

Slink采用Git版本控制,您需要先克隆代码仓库到本地环境。

🔧 操作步骤

# 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/sl/slink
cd slink  # 进入项目根目录

# 查看项目结构确认克隆成功
ls -la  # 应显示README.md、docker/、services/等文件和目录

1.3 核心目录功能速查表

了解项目目录结构有助于后续配置和维护:

目录路径 绝对路径示例 主要功能 重要文件
docker/ /data/web/disk1/git_repo/gh_mirrors/sl/slink/docker 容器化部署配置 docker-compose.yaml、Dockerfile
services/api/ /data/web/disk1/git_repo/gh_mirrors/sl/slink/services/api 后端API服务 src/Slink/、config/、public/
services/client/ /data/web/disk1/git_repo/gh_mirrors/sl/slink/services/client 前端Web界面 src/、static/、package.json
docker/config/ /data/web/disk1/git_repo/gh_mirrors/sl/slink/docker/config 系统配置文件 caddy/Caddyfile、supervisord.conf
services/client/static/screenshots/ /data/web/disk1/git_repo/gh_mirrors/sl/slink/services/client/static/screenshots 项目截图资源 1.png、2.png

📌 要点回顾:本章节完成了环境检查、源码获取和目录结构认知,确保了部署前的基础条件已满足。下一步将进行实际部署操作。

二、部署服务:从安装到运行

2.1 本地开发环境部署

适合开发和测试场景,使用Node.js直接运行服务。

🔧 操作步骤

# 安装后端依赖
cd services/api
composer install  # PHP依赖管理工具

# 安装前端依赖
cd ../client
yarn install  # 或 npm install

# 启动开发服务器
yarn dev  # 前端开发服务器,默认端口5173
# 打开新终端
cd ../api
symfony serve  # 后端开发服务器,默认端口8000

2.2 容器化生产部署

推荐生产环境使用Docker Compose进行部署,简化环境依赖管理。

🔧 操作步骤

# 返回项目根目录
cd ../../..

# 构建并启动容器
docker-compose up -d  # -d参数表示后台运行

# 检查容器状态
docker-compose ps  # 应显示api、client、db等服务状态为Up

2.3 验证部署结果

部署完成后需要确认服务是否正常运行。

🔧 操作步骤

# 检查服务日志
docker-compose logs -f api  # 查看API服务日志
docker-compose logs -f client  # 查看前端服务日志

# 访问Web界面验证
curl http://localhost  # 应返回HTML响应

成功部署后,访问http://localhost将看到Slink的主界面,显示类似下图的图片管理界面:

Slink图片管理界面

2.4 常见部署故障排查

当服务无法正常启动时,可按以下步骤排查:

🔧 操作步骤

# 1. 检查容器状态
docker-compose ps  # 确认所有服务都处于Up状态

# 2. 查看错误日志
docker-compose logs --tail=100 api  # 查看最近100行API日志

# 3. 检查端口占用
sudo netstat -tulpn | grep 80  # 确认80端口未被其他服务占用

# 4. 重启服务
docker-compose down && docker-compose up -d

⚠️ 常见问题:如果数据库连接失败,检查docker/config/runtime/production.conf中的数据库配置是否正确。

📌 要点回顾:本章节介绍了本地开发和容器化两种部署方式,以及部署验证和故障排查方法。现在Slink服务应该已经成功运行,接下来需要进行必要的配置。

三、配置系统:基础设置与场景化配置

3.1 基础配置项设置

Slink的核心配置文件位于docker/config目录,包含系统运行的基本参数。

🔧 操作步骤

# 编辑主配置文件
nano docker/config/runtime/production.conf

JSON格式配置示例:

{
  "database": {
    "host": "db",  // 必填,数据库主机名
    "port": 5432,  // 可选,默认5432,数据库端口
    "username": "slink",  // 必填,数据库用户名
    "password": "secure_password",  // 必填,数据库密码
    "database": "slink_prod"  // 必填,数据库名称
  },
  "server": {
    "port": 80,  // 可选,默认80,HTTP服务端口
    "host": "0.0.0.0"  // 可选,默认0.0.0.0,绑定地址
  },
  "storage": {
    "provider": "local",  // 必填,存储提供者:local/s3/gcs
    "path": "/var/data"  // 当provider为local时必填,本地存储路径
  }
}

YAML格式配置示例:

database:
  host: "db"            # 必填,数据库主机名
  port: 5432            # 可选,默认5432,数据库端口
  username: "slink"     # 必填,数据库用户名
  password: "secure_password"  # 必填,数据库密码
  database: "slink_prod" # 必填,数据库名称

server:
  port: 80              # 可选,默认80,HTTP服务端口
  host: "0.0.0.0"       # 可选,默认0.0.0.0,绑定地址

storage:
  provider: "local"     # 必填,存储提供者:local/s3/gcs
  path: "/var/data"     # 当provider为local时必填,本地存储路径

3.2 本地存储场景配置

当选择本地存储时,需要配置存储路径和权限。

🔧 操作步骤

# 创建数据存储目录
sudo mkdir -p /var/data/slink
sudo chown -R 1000:1000 /var/data/slink  # 设置与容器内用户匹配的权限

# 编辑存储配置
nano docker/config/runtime/production.conf

配置示例(添加到storage部分):

"storage": {
  "provider": "local",
  "path": "/var/data",
  "max_size": 10737418240,  // 可选,默认10GB(10*1024^3),存储上限
  "allowed_formats": ["jpg", "png", "webp", "avif"]  // 可选,默认支持常见格式
}

3.3 远程存储场景配置(AWS S3示例)

如需使用云存储服务,以AWS S3为例进行配置:

🔧 操作步骤

# 编辑配置文件添加S3设置
nano docker/config/runtime/production.conf

配置示例:

"storage": {
  "provider": "s3",
  "bucket": "my-slink-bucket",  // 必填,S3桶名称
  "region": "us-east-1",  // 必填,S3区域
  "access_key": "AKIAEXAMPLEKEY",  // 必填,AWS访问密钥
  "secret_key": "secretkeyexample",  // 必填,AWS密钥
  "endpoint": "https://s3.amazonaws.com"  // 可选,S3兼容服务端点
}

3.4 生产环境注意事项

在生产环境部署时,需特别注意以下安全和性能配置:

  1. 启用HTTPS: 编辑docker/config/caddy/Caddyfile配置SSL证书:

    example.com {
      reverse_proxy api:8000
      tls your@email.com  # 自动申请Let's Encrypt证书
    }
    
  2. 设置强密码: 确保数据库密码和管理员账户使用强密码,建议至少12位包含大小写字母、数字和特殊符号。

  3. 配置备份策略

    # 创建数据库备份脚本
    cat > backup.sh << 'EOF'
    #!/bin/bash
    TIMESTAMP=$(date +%Y%m%d_%H%M%S)
    docker exec slink_db_1 pg_dump -U slink slink_prod > /backup/slink_$TIMESTAMP.sql
    EOF
    
    # 添加到crontab每日备份
    crontab -e
    # 添加: 0 2 * * * /path/to/backup.sh
    
  4. 资源限制: 在docker-compose.yaml中设置资源限制:

    services:
      api:
        deploy:
          resources:
            limits:
              cpus: '1'
              memory: 1G
    

📌 要点回顾:本章节介绍了基础配置和两种存储场景的配置方法,以及生产环境的安全和性能注意事项。正确配置后,Slink服务将更安全、高效地运行。

四、使用指南:基本操作与功能展示

4.1 上传图片文件

通过Web界面上传图片是Slink的核心功能之一。

🔧 操作步骤

  1. 访问Slink首页,点击顶部"上传"按钮
  2. 选择本地图片文件(支持批量选择)
  3. 可选:添加描述和标签
  4. 点击"上传"按钮完成操作

上传成功后,您将看到类似下图的图片详情页面,可进行调整尺寸、添加描述等操作:

Slink图片详情页面

4.2 图片管理与分享

Slink提供多种图片管理功能:

🔧 基本操作

  • 调整尺寸:在图片详情页设置宽度/高度,保持比例锁定
  • 添加标签:点击"Edit"按钮添加分类标签,便于搜索
  • 复制分享链接:点击"Copy"按钮复制直接链接或嵌入代码
  • 下载原图:点击"Download"按钮获取原始图片文件

4.3 高级功能:批量操作与筛选

对于大量图片,可使用批量操作和筛选功能提高效率:

Slink上传历史与批量管理界面

🔧 操作步骤

  1. 点击顶部"历史"进入图片管理页面
  2. 使用顶部标签筛选特定分类图片
  3. 勾选多个图片进行批量下载或删除
  4. 使用右上角视图切换按钮在网格/列表视图间切换

📌 要点回顾:本章节介绍了Slink的基本使用方法,包括图片上传、管理、分享和批量操作功能。通过这些功能,您可以高效地管理和分享图片资源。

登录后查看全文
热门项目推荐
相关项目推荐