Skip to content
GeniusZeroTwoPublic

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

Repository files navigation

☁️ ocibox - 甲骨文云个人自用轻量管理面板

专为个人自用打造 · 纯轻量化 SQLite 架构 (免 Redis) · 极简高性能 · 一键脚本自动部署


🌟 核心特性与设计理念

专注纯粹、高效、自由的甲骨文个人云管理控制台:

  • 🚀 极简零依赖架构:彻底告别 Redis 服务!采用轻量嵌入式 SQLite3 (WAL 模式) 搭配内置高并发内存缓存,整机内存开销降低 70%,哪怕在 1核 1G 的极低配小鸡上也能丝滑运行。
  • 👤 个人独占管理:独占式专属控制台,作为管理员拥有全量实例的无限制公共 IP 更换、开关机、重启与系统重装权限。
  • 🛠️ 一键脚本智能部署:提供全自动化 install.sh 脚本,交互式选择运行端口、设置管理员密码,并自主选择是否绑定 Telegram 运维机器人;安装完成后自动检测公网 IP 并输出直达管理后台地址与凭证。
  • 🛡️ 双重安全鉴权体系:
    • 支持 管理员固定密码 / 动态临时码 登录。
    • 原生支持 WebAuthn / Passkey 通行密钥 免密登录(指纹 Touch ID / 人脸 Face ID / 物理安全密钥)。
  • 📊 当月出站流量全景监控:全量甲骨文账号出站流量实时探测,支持按用量高低/百分比排序,独家提供 「只显示升级号」 过滤视图与 98% 阈值智能熔断告警。
  • ⚡ 实例深度运维控制:
    • 🔄 公网 IPv4 一键极速更换(全自动释放、申请与重新绑定,即时生效)。
    • 🌐 IPv6 / 500Mbps NAT 网络优化 / 路由表一键修复。
    • 🔓 开放全端口:自动配置安全列表规则并放通系统防火墙。
    • 💿 系统重装:在线拉取机型专属官方镜像(Ubuntu / Debian / CentOS / Oracle Linux 等)一键无损替换引导卷。
    • 💾 引导卷清理:自动探测闲置分离引导卷并提供一键安全扩容与删除。
  • 🎯 全自动批量抢机任务:支持多账号、多区域、多配置(ARM 4C24G / AMD 微型实例)后台静默抢占与捡漏。
  • 🛡️ 多账号请求特征差异化与独立客户端标识:
    • 135+ 官方生态拟真蓝图:为系统中每个 OCI 账号自动进行互斥防碰撞分配,涵盖 OCI-CLI、Terraform、Go SDK、Python SDK、Ansible、Java SDK 等全生态指纹。
    • 全维度特征深度隔离:各账号拥有独立 User-Agent、opc-client-info、地域亲和 Accept-Language、离散化超时时序与非对称相位抖动,彻底打破固定节拍器特征。
    • 自定义客户端标识与独立出口代理:可在 Web 控制台或 application.yml 中为任意账号自定义 client-identifier 与专属 proxy(HTTP/SOCKS5 出口,带严格 SSRF 拦截),消除关联风控。
  • 🤖 个人专属 Telegram 运维 Bot(可选):
    • 专属私有化鉴权:非管理员访问直接拒止,安全不泄露。
    • 远程指令:支持 /list、/traffic、/sync、/help 以及内联交互按钮随时随地手机控机。

🚀 一键极速部署(推荐)

登录您的 VPS(推荐系统:Ubuntu 20.04/22.04/24.04、Debian 11/12、CentOS 8+/Rocky Linux),以 root 用户执行:

curl -sS -O https://raw.githubusercontent.com/GeniusZeroTwo/ocibox/main/install.sh && chmod +x install.sh && ./install.sh

脚本交互过程示例:

  1. 请输入管理后台服务端口 [默认: 5000]: (直接回车使用 5000,或输入自定义端口如 8080,脚本将自动检测并放通系统防火墙规则)
  2. 请输入管理员账户名 [默认: admin]: (输入您想使用的后台管理员账号名,回车默认 admin)
  3. 请设置管理员登录密码 [回车自动生成32位带符号密码]: (直接回车将随机生成32位高强度带符号复杂密码)
  4. 是否需要绑定您的 Telegram 运维机器人?(y/N, 默认 N):
    • 若输入 y:进一步输入从 @BotFather 获取的 Bot Token 与个人 Telegram ID。
    • 若输入 N:直接跳过 Telegram 绑定,纯网页后台模式运行。
  5. 是否需要为管理后台绑定自定义域名并配置 SSL 证书?(y/N, 默认 N 继续直接访问):
    • 若输入 y:输入解析到本机的域名,脚本将自动安装并配置 Nginx 反向代理、放通 80/443 端口,向 Let's Encrypt 申请官方免费 SSL 证书(并附带自签名证书兜底保障)。
    • 若输入 N:跳过域名与证书配置,继续通过 http://<服务器IP>:<端口> 直接访问。

安装脚本执行完成后,控制台将输出如下精美汇总卡片:

================================================================
             🎉 OCIBox 个人专属管理面板 部署成功!
================================================================
🌐 管理后台地址 : https://oci.yourdomain.com  (或直连 http://123.45.67.89:5000)
👤 管理登录账号 : admin
🔑 管理登录密码 : xK9#mQ!2$vLp&8*rT_5+wE=1oY0zAn7B
🤖 Telegram 状态: 已绑定 (Admin ID: 123456789)
🔒 域名与证书  : 已绑定 (https://oci.yourdomain.com)
📂 数据持久目录 : /root/ocibox/data/
🔑 密钥保存目录 : /root/ocibox/keys/
📄 配置文件路径 : /root/ocibox/application.yml
----------------------------------------------------------------
💡 服务日常维护指令 (终端直接输入 oci 即可呼出状态卡片与操作菜单):
   - 快捷运维指令 : oci (或 ocibox)
   - 查看服务状态 : oci status (或 systemctl status ocibox)
   - 重启管理面板 : oci restart (或 systemctl restart ocibox)
   - 停止管理面板 : oci stop (或 systemctl stop ocibox)
   - 修改服务端口 : oci port [新端口] (自动放行防火墙并重启)
   - 域名证书管理 : oci cert (申请/重新绑定/维护证书)
   - 查看实时日志 : oci logs (或 journalctl -u ocibox -f -n 50)
   - 修改/重置密码 : oci password [新密码] (随时查看或一键重置登录密码)
   - 在线版本更新 : oci update
================================================================

🔑 甲骨文云 (OCI) API 密钥与配置文件获取指南

OCIBox 通过甲骨文官方提供的标准 API 密钥与 SDK 与您的云资源进行安全交互。导入新账号前,需获取**「标准配置内容」与「.pem 私钥文件」**:

📌 步骤一:登录甲骨文云控制台并进入 API 密钥页面

甲骨文云控制台入口:https://cloud.oracle.com

  • 主流新版租户(包含身份域 Identity Domains):

    1. 登录后,点击网页右上角 头像个人资料 (Profile) 图标 👤。
    2. 点击下拉菜单中的 「我的个人资料」(My profile)(若为传统租户则显示为 「用户设置」(User Settings))。
    3. 进入个人详情页后,向下滚动或在左侧/底部 「资源」(Resources) 列表中,点击 「API 密钥」(API Keys)。
  • 经典/传统 IAM 租户(无身份域):

    1. 点击控制台左上角导航菜单 ☰ ➔ 「身份和安全性」(Identity & Security) ➔ 「用户」(Users)。
    2. 点击您当前登录的管理员用户名,进入用户详情页。
    3. 在左侧 「资源」 列表中点击 「API 密钥」(API Keys)。

📌 步骤二:生成并下载 API 密钥

  1. 在 API 密钥列表上方,点击 「添加 API 密钥」(Add API Key) 按钮。
  2. 弹出的对话框中,保持默认选择 「生成 API 密钥对」(Generate API Key Pair)。
  3. ⚠️ 核心必做操作:点击 「下载私有密钥」(Download Private Key) 按钮!
    • 浏览器将下载一个名为 xxxx-xx-xx-xx-xx.pem 的私钥文件,请妥善保存该文件。
  4. 点击对话框底部的 「添加」(Add) 按钮。

📌 步骤三:复制 OCI CLI 标准配置

添加成功后,控制台会自动弹出一个 「配置文件预览」(Configuration File Preview) 窗口,内容示例如下:

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaaxxxxxxx...
fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
tenancy=ocid1.tenancy.oc1..aaaaaaaaxxxxxxx...
region=ap-singapore-1
key_file=<path to your private keyfile> # TODO

点击窗口右下角的 「复制」(Copy) 按钮,将整段内容完整复制。


📌 步骤四:在 OCIBox 面板中导入账号

  1. 登录 OCIBox 管理后台,在主界面点击 「➕ 导入新 OCI 账号」。
  2. 账号别名:输入便于您记忆的名称(如 新加坡主号、法兰克福-AMD)。
  3. OCI CLI 标准配置:将步骤三复制的全部内容完整粘贴进文本框。
  4. OCI 私钥 (.pem):
    • 方式一:点击或拖拽刚才步骤二下载的 .pem 私钥文件到上传区域。
    • 方式二:点击「✏️ 文本粘贴」,用记事本打开 .pem 文件,复制里面的完整内容(包含 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY-----)粘贴进去。
  5. 点击 「确定导入并预热」。系统将自动校验凭据合法性、生成安全存储路径并即时预热实例与网络信息!

🛠️ 手动部署与配置文件说明

如果您希望完全手动管理服务或自定义配置,可参考以下步骤:

1. 环境依赖安装(仅需 Java 21 与 SQLite3,免装 Redis)

# Ubuntu / Debian:
apt update && apt install -y openjdk-21-jre-headless sqlite3 curl jq

# CentOS / RHEL / Rocky Linux:
dnf install -y java-21-openjdk-headless sqlite3 curl jq

2. 目录创建与配置文件准备

mkdir -p /root/ocibox/data /root/ocibox/keys /root/ocibox/logs
chmod 700 /root/ocibox/keys /root/ocibox/data

在 /root/ocibox/application.yml 中写入:

server:
  port: 5000
  address: 0.0.0.0

spring:
  datasource:
    url: jdbc:sqlite:/root/ocibox/data/oci_personal.db?journal_mode=WAL&busy_timeout=60000
    driver-class-name: org.sqlite.JDBC
  threads:
    virtual:
      enabled: true

app:
  admin-username: "admin"
  admin-password: "设置您的32位高强密码"
  bot-token: "可选:您的TG_BOT_TOKEN"
  admin-id: "可选:您的TG_CHAT_ID"

oci:
  accounts:
    "[account-1]":
      user: "ocid1.user.oc1..aaaa..."
      fingerprint: "xx:xx:xx:xx..."
      tenancy: "ocid1.tenancy.oc1..aaaa..."
      region: "us-ashburn-1"
      key-file: "/root/ocibox/keys/account-1.pem"
      # 可选:自定义客户端标识 (留空则按 135+ 生态蓝图自动分配防碰撞指纹)
      client-identifier: "Terraform/1.9.5"
      # 可选:独立网络出口代理 (支持 http:// 或 socks5://,严禁指向回环/元数据地址)
      proxy: "http://192.168.1.100:7890"

3. 配置 Systemd 开机自启

创建 /etc/systemd/system/ocibox.service:

[Unit]
Description=OCIBox Cloud Management Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/ocibox
Environment=MALLOC_ARENA_MAX=2
ExecStart=/usr/bin/java -Xms128m -Xmx384m -Xss512k -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1ReservePercent=15 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:G1PeriodicGCInterval=600000 -XX:MetaspaceSize=96m -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=128m -XX:ReservedCodeCacheSize=128m -XX:MaxDirectMemorySize=128m -XX:CICompilerCount=2 -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+ExitOnOutOfMemoryError -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dnetworkaddress.cache.ttl=60 -Dio.netty.eventLoopThreads=2 -Dio.netty.maxDirectMemory=33554432 -Xlog:gc*:file=/root/ocibox/logs/gc.log:time,uptime,level,tags:filecount=3,filesize=2M -jar /root/ocibox/app.jar
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

手动安装时先建日志目录:mkdir -p /root/ocibox/logs。install.sh / update.sh 会自己建。

这组参数按 1 核 1G 机器来:Java 堆从 128MB 涨到最多 384MB,G1 在堆用到约 35% 时就开始并发回收,每 10 分钟把空闲页还给系统。元空间封顶 256MB,代码缓存和直接内存各 128MB,glibc 分配区收成 2 个(MALLOC_ARENA_MAX=2)。进程发生 OOM 会直接退出,由上面的 Restart=always 拉起。GC 日志在 /root/ocibox/logs/gc.log,最多 3 个、每个 2MB。

启动并托管服务:

systemctl daemon-reload
systemctl enable --now ocibox

🔄 快速安全更新

当项目有新版本时,支持以下几种极速更新方式,自动直接保持客户全部现有配置与默认选项(端口、账号名、密码、TG机器人、域名SSL证书、SQLite 数据库及各账号 API 密钥),无需重复配置:

方式一:终端快捷更新命令(已部署机器推荐,秒级升级)

在终端任意目录直接输入:

oci update

方式二:一键脚本保持客户默认选项更新

以 root 用户执行:

curl -sS -O https://raw.githubusercontent.com/GeniusZeroTwo/ocibox/main/install.sh && chmod +x install.sh && ./install.sh -y

或使用专用更新脚本:

curl -sS -O https://raw.githubusercontent.com/GeniusZeroTwo/ocibox/main/update.sh && chmod +x update.sh && ./update.sh

📱 个人 Telegram Bot 运维指令

如在部署时启用了 Telegram 机器人,您可直接向 Bot 发送以下指令进行掌上运维:

指令 作用说明
/start 或 /menu 呼出个人主控台大盘菜单,含账号数、实例数与累计换 IP 次数
/list 分页列出名下所有甲骨文云服务器,点击可一键换 IP、重装系统、开关机
/traffic 实时汇总各账号当月出站流量消耗及限额预警进度条
/sync 立即触发全账号状态、新分配 IP 与实例列表深度同步
/help 查看详细操作指南

安全提示:Bot 仅响应部署时配置的管理员 Chat ID,外部其他任何用户发送指令均会被安全拦截并提示无权访问。


📄 许可证

本项目基于 MIT License 开源,仅供个人学习与自用云资源运维。

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages