Skip to content

Lirzh/Simple-Mirror

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

镜呈:一个轻量级操作系统镜像站

0.背景故事

学校有个研究性学习活动,我便选了这个课题,正好社团(也许吧)刚到一台 Dell Power Edge R730 服务器,我想利用这台服务器来搭建一个镜像分发平台。

而由于那台 R730 搭载的是 E5 2906,因此轻量成了最重要的考虑。

效果图

1. 项目概述

本项目旨在构建一个"镜呈"镜像分发平台,实现以下目标:

  • 提供高速、稳定的镜像下载服务
  • 提供清晰的版本分类和检索功能
  • 构建简洁美观的用户界面
  • 支持多平台、多版本的操作系统镜像
  • 轻量化的设计

2. 系统架构

2.1 分层设计

镜呈系统采用分层架构设计,自顶向下分为四层:

层级 组成 说明
用户层 (User Layer) 浏览器 用户通过浏览器访问系统
展示层 (Presentation Layer) HTML/CSS/JavaScript 前端页面,负责界面展示与交互
服务层 (Service Layer) Caddy Web Server 静态文件服务与请求路由
数据层 (Data Layer) JSON 配置文件 + ISO 镜像文件 镜像信息与文件存储

2.2 架构特点

2.2.1 无状态设计

系统采用无状态设计,所有数据通过静态文件存储,无需数据库支持。具有以下优势:

  • 部署简单 — 无需配置数据库
  • 性能优异 — 无需数据库查询开销
  • 易于扩展 — 支持水平扩展

2.2.2 数据驱动架构

系统采用 JSON 数据驱动的方式管理镜像信息:

  • 配置灵活 — 无需修改代码即可添加新镜像
  • 数据与展示分离 — 便于维护

2.2.3 模块化设计

系统采用模块化设计,各个组件职责清晰:

  • 前端模块 — 负责用户界面展示和交互
  • 服务模块 — 负责静态文件服务和请求路由
  • 数据模块 — 负责镜像信息的存储和管理

3. 目录结构

simple-mirror/
├── html/                    # 前端静态文件
│   ├── index.html           # 主页面
│   └── favicon.svg          # 网站图标
├── mirrors/                 # 镜像文件目录
│   ├── list.json            # 镜像分类列表
│   ├── debian/              # Debian 镜像
│   │   ├── list.json        # Debian 版本列表
│   │   └── *.iso            # ISO 文件
│   ├── ubuntu/              # Ubuntu 镜像
│   │   ├── list.json        # Ubuntu 版本列表
│   │   └── *.iso            # ISO 文件
│   ├── windows/             # Windows 镜像
│   │   ├── list.json        # Windows 版本列表
│   │   └── *.iso            # ISO 文件
│   └── *.png                # 系统图标
├── Caddyfile                # Caddy 配置文件
├── images/                  # 图片资源
│   └── 效果图.png            # 界面截图
└── README.md                   # 项目文档

4. 技术栈

组件 技术选型 用途
前端 HTML/CSS/JavaScript 页面展示与交互
服务 Caddy 静态文件服务与 HTTPS
数据 JSON 配置文件 镜像元数据管理
存储 文件系统 ISO 镜像文件存储

About

一个轻量级操作系统镜像站

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages