☰
如何用1条Docker命令部署Rackula:从空仓库到可视化机架的完整教程
2026/10/11 15:19:50 网站建设 项目流程

【免费下载链接】Rackula

rack layout designer

项目地址:https://gitcode.com/gh_mirrors/ra/Rackula
点击查看免费下载

Rackula 是一款开源免费的机架布局设计工具(rack layout designer),你可以在浏览器里拖拽真实的服务器、交换机、UPS 等设备图像,先"画"好机架,再动手装机。本文带你用一条 Docker 命令从零部署 Rackula,5 分钟后即可在本地规划属于自己的 42U 可视化机架。

为什么要先建一台"虚拟机架"?🔧

搬动一台装满硬盘的 4U 服务器,远不如在屏幕上拖动它来得轻松。Rackula 解决的正是这类问题:

  • 拖拽式布局:从内置的真实硬件库中拖出设备放入机架,不再是灰色方块,而是来自真实设备库的产品图像
  • 前后双面视图:FRONT 与 REAR 双视图同步显示,布线规划一目了然
  • 导出与分享:布局可导出为 PNG / PDF / SVG,也可通过 URL 或二维码分享给团队
  • 移动端友好:机房现场用手机也能查看和编辑
  • 可自托管:Docker、Docker Compose 均可,数据完全掌握在自己手里

如上图所示,左侧是设备库分类(服务器、网络、电源、存储等),中间是机架正反面视图,右侧是设备编辑面板——这就是 Rackula 机架布局设计的核心工作区。

一条 Docker 命令:5 分钟跑起来 🚀

前置条件

  • 已安装 Docker(Docker Desktop 或dockerd均可)
  • 验证一下:
docker --version

启动命令

在任意"空仓库"目录(或任意目录)中执行这一条命令:

docker run -d -p 8080:8080 ghcr.io/rackulalives/rackula:latest

三个参数,各管一件事:

参数作用
-d后台运行容器
-p 8080:8080把宿主机 8080 端口映射到容器内 nginx
ghcr.io/rackulalives/rackula:latest官方最新前端镜像(amd64 / arm64 均支持)

验证部署

docker ps # 应看到 rackula 容器处于 Up 状态 curl -fsS http://localhost:8080/version.json # 返回版本号即成功

然后打开浏览器访问http://localhost:8080,你的 Rackula 已经跑起来了。

⚠️ 这种最简模式是纯前端部署:布局保存在浏览器本地(IndexedDB),换一台电脑或换浏览器看不到之前画的机架。想跨设备同步?看下一节。

进阶:带持久化的 Docker Compose 部署 📦

正式使用的推荐方式是 Compose 部署——前端 + API 两个容器,机架布局以 YAML 文件形式落盘,任意浏览器打开都能看到同一份数据。

第 1 步:克隆仓库,拿到官方 Compose 文件:

git clone https://gitcode.com/gh_mirrors/ra/Rackula cd Rackula

第 2 步:创建数据目录(API 容器以 UID 1001 运行,必须给它写权限):

mkdir -p data && sudo chown 1001:1001 data

第 3 步:启动整套服务:

docker compose -f deploy/docker-compose.persist.yml up -d

配置文件见 deploy/docker-compose.persist.yml,完整原理见 docs/deployment/SELF-HOSTING.md。

架构非常简洁:

浏览器 → nginx (8080) → 提供前端页面 → 代理 /api/* 到 API 容器 API (3001) → 读写 ./data 下的 YAML 机架布局

数据会以这样的结构保存在./data/中,备份只需打包这个目录:

./data/ ├── my-homelab-11111111-.../ │ ├── my-homelab.rackula.yaml # 机架布局(YAML) │ └── assets/{deviceId}/front.png # 自定义设备图

部署完成后,先画一台机架 🎨

1. 新建机架:进入应用后会自动创建一台默认机架。选中它,右侧 Edit 面板可调整高度(12U~48U)、宽度(10"~23")与 U 编号方向。首次部署时会看到这样的空机架:

2. 拖入设备:左侧设备库按品牌或分类筛选(Generic 类别即包含通用服务器、交换机、PDU 等),把设备拖到目标 U 位,放置时会自动校验高度与冲突:

3. 多机架管理:点击左侧 "Racks" 标签可添加第二台、第三台机架,整排机柜并排展示,适合网络柜 + 服务器柜 + 音频柜的组合:

4. 导入与导出:仓库内置了三份 YAML 模板,可直接导入体验完整布局:

  • static/templates/home-lab.rackula.yaml
  • static/templates/media-server.rackula.yaml
  • static/templates/network-closet.rackula.yaml

完成后通过 Share 功能导出 PNG / PDF / SVG,或生成二维码把布局发到手机查看。

常用配置速查表 ⚙️

生产部署时,按需设置这几个环境变量即可(更多变量见 docs/deployment/SELF-HOSTING.md 的 Environment Variables 一节):

变量默认值说明
RACKULA_PORT8080宿主机 Web 端口,如RACKULA_PORT=3000 docker compose up -d
CORS_ORIGINhttp://localhost:8080改端口/域名后必须同步为真实浏览器来源
RACKULA_STORAGE_MODEserver(Compose 持久版)前端存储模式:browser / server
RACKULA_AUTH_MODEnone认证模式:none / local / oidc
RACKULA_API_WRITE_TOKEN未设置保护 API 写入路由(PUT/DELETE)的 Bearer 令牌

对外网部署,建议至少设置明确的CORS_ORIGIN与写入令牌;认证与 TLS 细节可参考 docs/deployment/AUTHENTICATION.md。

升级与备份(每次升级前必做)

cp -a data data.bak # 1. 备份数据目录 docker compose -f deploy/docker-compose.persist.yml pull # 2. 拉取新镜像 docker compose -f deploy/docker-compose.persist.yml up -d # 3. 重建容器

提示:拉取新镜像本身不会触碰/data中的布局,风险只在于升级后"第一次保存"会改写文件格式,所以备份是必选项而非可选项。

常见问题排查 🩺

症状排查方法
8080 端口被占用RACKULA_PORT=8081 docker compose up -d,访问localhost:8081
Permission denied保存失败API 以 UID 1001 运行:sudo chown -R 1001:1001 ./data
UI 提示 "Persistence API unavailable"docker compose logs rackula-api查看 API 容器是否健康
确认部署版本curl -fsS http://localhost:8080/version.json(前端)与/api/version(后端),两者版本号应一致

容器反复重启时,优先看日志:docker logs rackula与docker logs rackula-api。

写在最后

回顾一下这条最短路径:一条docker run命令即可体验 Rackula;加上deploy/docker-compose.persist.yml三个步骤,就拥有了带持久化、可备份、可升级的完整自托管部署。布局先画在屏幕上的每一分钟,都是机房里少弯一次腰。更多架构细节可查阅 docs/ARCHITECTURE.md,项目采用 MIT 协议开源,欢迎参与共建。

【免费下载链接】Rackula

rack layout designer

项目地址:https://gitcode.com/gh_mirrors/ra/Rackula
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询