Slink自托管图片分享服务部署与配置完全指南
一、准备环境:构建运行基础
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的主界面,显示类似下图的图片管理界面:
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 生产环境注意事项
在生产环境部署时,需特别注意以下安全和性能配置:
-
启用HTTPS: 编辑docker/config/caddy/Caddyfile配置SSL证书:
example.com { reverse_proxy api:8000 tls your@email.com # 自动申请Let's Encrypt证书 } -
设置强密码: 确保数据库密码和管理员账户使用强密码,建议至少12位包含大小写字母、数字和特殊符号。
-
配置备份策略:
# 创建数据库备份脚本 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 -
资源限制: 在docker-compose.yaml中设置资源限制:
services: api: deploy: resources: limits: cpus: '1' memory: 1G
📌 要点回顾:本章节介绍了基础配置和两种存储场景的配置方法,以及生产环境的安全和性能注意事项。正确配置后,Slink服务将更安全、高效地运行。
四、使用指南:基本操作与功能展示
4.1 上传图片文件
通过Web界面上传图片是Slink的核心功能之一。
🔧 操作步骤:
- 访问Slink首页,点击顶部"上传"按钮
- 选择本地图片文件(支持批量选择)
- 可选:添加描述和标签
- 点击"上传"按钮完成操作
上传成功后,您将看到类似下图的图片详情页面,可进行调整尺寸、添加描述等操作:
4.2 图片管理与分享
Slink提供多种图片管理功能:
🔧 基本操作:
- 调整尺寸:在图片详情页设置宽度/高度,保持比例锁定
- 添加标签:点击"Edit"按钮添加分类标签,便于搜索
- 复制分享链接:点击"Copy"按钮复制直接链接或嵌入代码
- 下载原图:点击"Download"按钮获取原始图片文件
4.3 高级功能:批量操作与筛选
对于大量图片,可使用批量操作和筛选功能提高效率:
🔧 操作步骤:
- 点击顶部"历史"进入图片管理页面
- 使用顶部标签筛选特定分类图片
- 勾选多个图片进行批量下载或删除
- 使用右上角视图切换按钮在网格/列表视图间切换
📌 要点回顾:本章节介绍了Slink的基本使用方法,包括图片上传、管理、分享和批量操作功能。通过这些功能,您可以高效地管理和分享图片资源。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0220- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
AntSK基于.Net9 + AntBlazor + SemanticKernel 和KernelMemory 打造的AI知识库/智能体,支持本地离线AI大模型。可以不联网离线运行。支持aspire观测应用数据CSS01


