Skip to content

fishcpy/skyImage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

183 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyImage

SkyImage 是一个现代化的图床系统,采用前后端分离架构。

演示站

🔗 演示地址:https://skyimage.demo.nxtcorex.top

角色 邮箱 密码
管理员 demo@example.com adminpassword
普通用户 user@example.com userpassword

⚠️ 演示站数据会定期清理,请勿上传重要文件。

安装

建议使用docker部署

docker:

# 创建 skyimage 文件夹
mkdir skyimage

# 进入 skyimage 文件夹
cd skyimage

# 下载 docker-compose.yml
curl -O https://raw.githubusercontent.com/fishcpy/skyImage/refs/heads/main/docker-compose.yml

# 下载 .env
curl -o .env https://raw.githubusercontent.com/fishcpy/skyImage/refs/heads/main/.env.example

# 启动服务
docker-compose up -d

启动后访问 http://localhost:8080 即可进入安装向导页面。

数据持久化

Docker 部署会挂载以下目录:

  • ./storage/data - 数据库文件目录
  • ./storage/uploads - 上传文件目录
  • ./.env - 配置文件(安装后自动保存数据库配置)

二进制部署

前往 GitHub Releases 下载对应平台的预编译包。

支持平台

平台 架构 文件名格式
Linux x86_64 skyimage-*-linux-amd64.tar.gz
Linux ARM64 skyimage-*-linux-arm64.tar.gz
Windows x86_64 skyimage-*-windows-amd64.zip
macOS Intel skyimage-*-darwin-amd64.tar.gz
macOS Apple Silicon skyimage-*-darwin-arm64.tar.gz

部署步骤

  1. 下载对应平台的压缩包并解压
  2. 复制 .env.example.env 并修改配置
  3. 运行 ./skyimage(Linux/macOS)或 skyimage.exe(Windows)
  4. 访问 http://localhost:8080 完成安装向导

源码部署

前置要求

  • Go 1.24+
  • Node.js 18+
  • pnpm(推荐)或 npm

1. 克隆项目

git clone https://github.com/fishcpy/skyImage.git
cd skyImage

2. 安装依赖

pnpm install

3. 构建前端

pnpm build

4. 配置环境变量

cp .env.example .env

编辑 .env 文件,修改以下配置:

HTTP_ADDR=:8080                    # 服务监听地址
STORAGE_PATH=storage/uploads      # 文件存储路径
PUBLIC_BASE_URL=http://your-domain.com  # 公网访问地址
FRONTEND_DIST=dist                # 前端构建产物目录

5. 启动服务

go run ./cmd/api

启动后访问 http://localhost:8080 进入安装向导页面。

技术栈

后端

  • Go 1.24+ - 高性能后端语言
  • Gin - Web 框架
  • GORM - ORM 数据库操作
  • Viper - 配置管理
  • Cookie + Session - 身份认证

前端

  • React 18 - 用户界面框架
  • TypeScript - 类型安全
  • Vite - 构建工具
  • Tailwind CSS - 样式框架
  • Radix UI - UI 组件库
  • React Router - 路由管理
  • Zustand - 状态管理
  • Axios - HTTP 客户端

数据库支持

  • SQLite
  • MySQL
  • PostgreSQL

存储支持

以下支持情况按当前代码中的存储驱动实现统计;AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云通过 S3 兼容存储驱动接入。

支持状态 存储类型
支持 本地存储、AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、WebDAV、MinIO
未测试 FTP、SFTP

主要功能

  • 用户注册与登录
  • 图片上传与管理
  • 存储策略配置
  • 用户组与权限管理
  • 管理员后台
  • 容量监控
  • API 文档
  • 系统安装向导
  • Turnstile 验证码集成
  • 邮件通知

项目结构

skyimage/
├── cmd/                    # 命令行入口
│   ├── api/               # API 服务
│   └── legacy-import/     # 数据导入工具
├── internal/              # 内部包
│   ├── admin/            # 管理员服务
│   ├── api/              # API 处理器
│   ├── config/           # 配置管理
│   ├── data/             # 数据库模型
│   ├── files/            # 文件服务
│   ├── installer/        # 安装服务
│   ├── legacy/           # 数据迁移
│   ├── mail/             # 邮件服务
│   ├── middleware/       # 中间件
│   ├── turnstile/        # 验证码服务
│   ├── users/            # 用户服务
│   └── version/          # 版本信息
├── src/                   # 前端源码
│   ├── components/       # React 组件
│   ├── features/         # 功能页面
│   ├── layouts/          # 布局组件
│   ├── lib/              # 工具库
│   └── state/            # 状态管理
└── storage/               # 存储目录

设计理念

SkyImage 提供了简洁、现代的用户界面和流畅的用户体验。主要设计特点包括:

  • 响应式设计,支持多端访问
  • 深色/浅色主题切换
  • 直观的文件管理界面
  • 完善的权限控制系统
  • 高效的图片上传体验

致谢

Lsky Pro 参考了Lsky Pro的布局和部分逻辑

Star History

Star History Chart

许可证

本项目采用 MIT 许可证。

About

云端图床

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors