Apache License 2.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

Yohann0617/oci-helper 深度技术分析

项目背景与痛点

Oracle 云基础设施(OCI)为企业提供了强大的云计算平台,但其复杂的配置和管理操作给用户带来了不少挑战。特别是在处理多个租户配置、批量实例操作、网络配置和日志监控等方面,手动操作不仅费时费力,还极易出错,严重降低了运维效率。因此,急需一个可视化工具来简化这些操作,提高资源配置和管理的效率。正是在这背景下,Yohann0617 开发了这款基于 OCI SDK 的可视化甲骨文云助手(Y探长)—— “oci-helper”,以应对这些痛点。

核心技术揭秘

Yohann0617/oci-helper 的设计核心围绕简化和自动化 OCI 云资源的管理和操作。技术架构上,它接入了 Oracle 云的 SDK,并通过 Web 端提供直观的操作界面。为实现高效的资源管理,该项目运用了多种设计模式和技术框架,主要包括前后端分离架构、响应式设计、RESTful API 以及 Oracle SDK。

图 1 展示了其核心的数据流架构:

graph TD A[用户请求] --> B[参数校验] B -->|"通过"| C[执行业务] C --> D{"租户操作?"} D -->|"是"| E[租户操作执行] D -->|"否"| F{"实例配置?"} F -->|"是"| G[更改实例配置] F -->|"否"| H{"引导卷配置?"} H -->|"是"| I[引导卷操作] H -->|"否"| J{"流量查询?"} J -->|"是"| K[实时流量查询] J -->|"否"| L{"日志查看?"} L -->|"是"| M[日志数据流] L -->|"否"| N[其他操作] B -->|"失败"| O[返回错误]

通过图 1,可以看到项目在处理用户请求的过程中,形成了清晰的逻辑分类,每个请求根据具体的操作类型(如租户操作、实例配置等)会分流到相应的具体操作中。

功能亮点与差异

对比同类竞品,oci-helper 的亮点在于整合了自动化实例配置(如免费实例的开启、硬盘调整)、实时流量监控(分钟级别)、多租户同时操作及丰富的日志管理等一体化功能。除此之外,它还支持 MFA 登录验证,增强了平台的安全性。这些功能不仅简化了用户的操作流程,更在安全性和操作效率上提升了用户体验。

应用场景与落地建议

在生产环境中部署oci-helper时,建议用户注意以下几点:

  • 严格遵守 Oracle 云 API 的调用频率限制,避免因频繁查询引发速率限制。
  • 结合具体租户需求,合理配置各项操作脚本和计划任务,以确保自动化流程的高效与安全执行。
  • 多租户环境中需确保数据隔离与访问权限管理,避免数据混淆或权限泄露问题。

此工具适用于需要大量管理OCI资源(如租户内多个实例配置管理)、频繁进行流量监控(尤其是分钟级别实时流量分析)、及需高效处理流程的业务场景。特别在多租户环境下,它能大幅提升资源配置与管理的效率。

综合评价

优点:

  • 简化与自动化 OCI 资源配置与管理,极大地提升了用户操作效率。
  • 集成了全面且丰富的功能特性,如租户操作、实例配置、流量查询等,适应多种业务场景需求。
  • 提供了mfa设登录校验,提高了平台安全性。

不足:

  • 当前功能较为丰富且自动化程度高,理论上提高了资源管理的效率,但也要求用户对 Oracle 云平台有一定的了解和熟练操作基础。
  • 鉴于项目的复杂性,建议进一步优化文档,以便新手用户也能快速上手。

简要分析

热度分
1049
价值分
524
活跃状态
活跃

语言占比

Dockerfile
Java

Release

贡献者

README

oci-helper 🐢

visitors Stars Issues License

OpenJDK Springboot Vue SQLite Maven Docker

oci-helper(Y探长) 是一个基于 Spring Boot 3 + JDK 21 开发的轻量级 OCI 管理面板,后端采用 SQLite 存储,整体通过 Docker 容器化运行,并支持一键脚本结合 docker-compose 快速部署,无需在本机安装额外环境。项目面向 Oracle Cloud(OCI)的日常运维与自动化场景,提供实例管理、网络与 IP 操作、任务持久化、日志实时查看、多租户管理等功能,帮助用户以更直观、安全、高效的方式管理云资源。得益于 Spring Boot 3 的现代化框架特性与 JDK 21 的虚拟线程机制,系统能够更好地应对高并发请求,降低资源消耗;结合 Docker 的隔离与一致性,保证了跨环境部署的安全与稳定。

🔔注意事项及免责声明

  • ⚠️建议在局域网下使用,不要暴露到公网。
  • ⚠️因开机、换IP频率过高而导致的封号本人概不负责。
  • ❤️开发此项目纯属个人爱好,无后门,放心使用。
  • 🔒强烈建议不要裸HTTP访问,应使用Nginx反向代理配置HTTPS访问。
  • 🔐建议使用密钥登录服务器,防止服务器被SSH爆破导致API数据及密钥泄露。
  • 📃记得定时清理docker日志~
  • 💬TG放货通知频道:https://t.me/oci_helper

⚙核心功能

  1. 支持同时批量添加多个租户配置信息,所有分页列表都支持模糊搜索、状态筛选。
  2. 支持更改实例配置、引导卷配置、一键附加ipv6、一键放行所有端口、实例列表、引导卷列表、一键开启免费AMD实例下行500Mbps、一键自动救援/缩小硬盘(默认47GB)、安全列表、实时流量统计(分钟级别)、配额查询、租户管理、一键自动更新等功能。⭐⭐
  3. 根据多个CIDR网段更换实例公共IP,遇到请求频繁等异常会直接忽略,不影响下一次执行,直至更换到指定IP段的IP。支持更换IP后自动更新 Cloudflare DNS 记录功能。⭐⭐
  4. 多租户同时批量开机,后台一直运行,直至开机成功。⭐
  5. 支持断点续抢,配置以及抢机任务都保存在本地数据库,服务重启会继续执行抢机任务,无需重复配置。⭐⭐
  6. 支持多区号(配置项以region区分),例:我有一个4区号,则新增4个配置,修改region即可,其他配置项都一样。
  7. 支持前端页面实时查看后端日志。
  8. 支持加密备份恢复,实现无缝数据迁移,方便快捷。⭐⭐
  9. 支持MFA登录验证功能(不是龟壳的,是我这个面板的登录),保证服务的安全性。
  10. 支持分页查询、添加、更新、删除 Cloudflare 多个域名的 DNS 记录。⭐
  11. 支持 Telegram 机器人简单操作,服务成功部署后向机器人发送/start选择操作。
  12. 支持类似于甲骨文云 Cloud Shell 控制台功能,方便使用 netboot 救砖。⭐⭐
  13. 支持IP信息查询(部署成功后访问 http://ip:8818/ip-info )以及首页显示全球服务器地图(可精确到街道的店铺),点亮全球。
  14. 支持 AI 聊天助手,基于 硅基流动 免费API,可免费无限次调用。
  15. 支持 Google 账号一键登录,如何配置请参考:如何配置 Google 账号一键登录 ⭐

💻一键 docker-compose 部署或更新

bash <(wget -qO- https://github.com/Yohann0617/oci-helper/releases/latest/download/sh_oci-helper_install.sh)

此命令也可以用于更新镜像并重启容器,不会删除已有的配置。

  • 🔔 安装完成后浏览器直接访问 http://ip:8818 即可访问(建议之后通过https访问),账号密码可通过脚本进行修改。 如需自己手动修改账号密码,更改 /app/oci-helper/application.yml 中的配置并执行 docker restart oci-helper 重启docker容器即可。
  • 📃 如需查看完整日志,执行:docker logs oci-helper >> /app/oci-helper/oci-helper.log 导出日志文件自行查看。

🎄 部署完成后,/app/oci-helper的目录结构如下:

root@yohann:/app/oci-helper# tree
.
├── keys                            # 是一个目录,存放所有的pem秘钥文件
├── application.yml                 # 项目配置文件,如需更改网页账号密码在此处更改,并执行 docker restart oci-helper 重启容器
├── docker-compose.yml              # docker-compose部署所需配置文件
├── oci-helper.db                   # 项目数据库文件
└── update_version_trigger.flag     # 注意是一个文件,不是目录,用于版本自动更新

📃更新日志

  1. 2025年07月08日——新增一键升级功能,首次更新时需要先删除旧的docker-compose.yml文件,再执行一键脚本。如有将部署脚本下载到本地的用户也需要重新下载。具体参考releases中v3.0.1版本要求。
  2. 2025年07月04日——升级了部分依赖以及SDK,首次更新时需要先删除旧的application.yml文件,再执行一键脚本。具体参考releases中v3.0.0版本要求。
  3. 2025年06月04日——新增了支持 Cloud Shell 控制台功能,更新之前需要先删除旧的docker-compose.yml文件,再执行一键脚本。
  4. 2024年11月30日——数据库新增了一张表,TG、钉钉消息通知都改成了在web页面配置,如遇到配置异常,请删除application.yml文件,然后重新执行一键命令,修改自定义的账号密码,docker restart oci-helper重启容器即可。

🌏Nginx反向代理

如果需要配置HTTPS,又想要 VNC 连接救砖,必须按照以下配置

☜ 点击查看 👨‍💻
1. 修改 docker-compose.yaml

这一步是保证服务端口只有服务器内部网络可以访问,外部无法直接通过IP+端口的方式访问服务,提高安全性。修改完之后需要执行 cd /app/oci-helper && docker-compose down && docker-compose up -d 重启服务或者直接再执行一次一键脚本。

/app/oci-helper/docker-compose.yaml:

services:
  watcher:
    image: ghcr.io/yohann0617/oci-helper-watcher:main
    container_name: oci-helper-watcher
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
      - /app/oci-helper/docker-compose.yml:/app/oci-helper/docker-compose.yml
      - /app/oci-helper/update_version_trigger.flag:/app/oci-helper/update_version_trigger.flag
      - /app/oci-helper/oci-helper.db:/app/oci-helper/oci-helper.db

  oci-helper:
    image: ghcr.io/yohann0617/oci-helper:master
    container_name: oci-helper
    restart: always
    ports:
      - "127.0.0.1:8818:8818" # 修改项
    volumes:
      - /app/oci-helper/application.yml:/app/oci-helper/application.yml
      - /app/oci-helper/oci-helper.db:/app/oci-helper/oci-helper.db
      - /app/oci-helper/keys:/app/oci-helper/keys
      - /app/oci-helper/update_version_trigger.flag:/app/oci-helper/update_version_trigger.flag
    networks:
      - app-network
      
  websockify:
    image: ghcr.io/yohann0617/oci-helper-websockify:master
    container_name: websockify
    restart: always
    ports:
      - "127.0.0.1:6080:6080" # 修改项
    depends_on:
      - oci-helper
    networks:
      - app-network

networks:
  app-network:
    driver: bridge
2. Nginx反向代理核心示例

修改完记得重启Nginx

        location /myvnc/ {
            proxy_pass http://127.0.0.1:6080/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            send_timeout 10800;
            proxy_read_timeout 10800;
            proxy_send_timeout 10800;
        }

        location / {
            add_header Cache-Control no-cache;
            proxy_pass http://127.0.0.1:8818;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            send_timeout 10800;
            proxy_read_timeout 10800;
            proxy_send_timeout 10800;
        }

👶手动部署(不推荐)

☜ 点击查看 👨‍💻

1. 新建目录

创建密钥文件存放目录/app/oci-helper/keys。

mkdir -p /app/oci-helper/keys && cd /app/oci-helper

2. 下载文件

下载 Releases 中的application.yml、oci-helper.db、docker-compose.yml以及最新 Release 版本的sh_oci-helper_install.sh这4个文件到/app/oci-helper目录下,并修改application.yml部分配置。 sh_oci-helper_install.sh是部署脚本,可自行修改内容,执行之前记得先chmod +x /app/oci-helper/sh_oci-helper_install.sh。

3. docker-compose 部署或更新

chmod +x /app/oci-helper/sh_oci-helper_install.sh && cd /app/oci-helper && ./sh_oci-helper_install.sh

此脚本也可以用于更新镜像并重启容器,不会删除已有的配置。

🔍页面展示

部署脚本

image.png

部署在1C1G机器上运行一个月后资源占用情况

image.png

主页

image.png

新增配置

image.png

更换IP并自动更新 Cloudflare 域名 DNS 记录

image.png

编辑实例

image.png

TG操作

image.png

☜ 点击查看更多 👨‍💻

image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

⭐Star History

Star History Chart

🙏 特别鸣谢

DartNode ZMTO YxVM NodeSeek

评论

暂无评论