专为个人自用打造 · 纯轻量化 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脚本交互过程示例:
请输入管理后台服务端口 [默认: 5000]:(直接回车使用 5000,或输入自定义端口如 8080,脚本将自动检测并放通系统防火墙规则)请输入管理员账户名 [默认: admin]:(输入您想使用的后台管理员账号名,回车默认 admin)请设置管理员登录密码 [回车自动生成32位带符号密码]:(直接回车将随机生成32位高强度带符号复杂密码)是否需要绑定您的 Telegram 运维机器人?(y/N, 默认 N):
- 若输入
y:进一步输入从@BotFather获取的 Bot Token 与个人 Telegram ID。- 若输入
N:直接跳过 Telegram 绑定,纯网页后台模式运行。是否需要为管理后台绑定自定义域名并配置 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
================================================================
OCIBox 通过甲骨文官方提供的标准 API 密钥与 SDK 与您的云资源进行安全交互。导入新账号前,需获取**「标准配置内容」与「.pem 私钥文件」**:
甲骨文云控制台入口:https://cloud.oracle.com
-
主流新版租户(包含身份域 Identity Domains):
- 登录后,点击网页右上角 头像个人资料 (Profile) 图标 👤。
- 点击下拉菜单中的 「我的个人资料」(My profile)(若为传统租户则显示为 「用户设置」(User Settings))。
- 进入个人详情页后,向下滚动或在左侧/底部 「资源」(Resources) 列表中,点击 「API 密钥」(API Keys)。
-
经典/传统 IAM 租户(无身份域):
- 点击控制台左上角导航菜单
☰➔ 「身份和安全性」(Identity & Security) ➔ 「用户」(Users)。 - 点击您当前登录的管理员用户名,进入用户详情页。
- 在左侧 「资源」 列表中点击 「API 密钥」(API Keys)。
- 点击控制台左上角导航菜单
- 在 API 密钥列表上方,点击 「添加 API 密钥」(Add API Key) 按钮。
- 弹出的对话框中,保持默认选择 「生成 API 密钥对」(Generate API Key Pair)。
⚠️ 核心必做操作:点击 「下载私有密钥」(Download Private Key) 按钮!- 浏览器将下载一个名为
xxxx-xx-xx-xx-xx.pem的私钥文件,请妥善保存该文件。
- 浏览器将下载一个名为
- 点击对话框底部的 「添加」(Add) 按钮。
添加成功后,控制台会自动弹出一个 「配置文件预览」(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 管理后台,在主界面点击 「➕ 导入新 OCI 账号」。
- 账号别名:输入便于您记忆的名称(如
新加坡主号、法兰克福-AMD)。 - OCI CLI 标准配置:将步骤三复制的全部内容完整粘贴进文本框。
- OCI 私钥 (.pem):
- 方式一:点击或拖拽刚才步骤二下载的
.pem私钥文件到上传区域。 - 方式二:点击「✏️ 文本粘贴」,用记事本打开
.pem文件,复制里面的完整内容(包含-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----)粘贴进去。
- 方式一:点击或拖拽刚才步骤二下载的
- 点击 「确定导入并预热」。系统将自动校验凭据合法性、生成安全存储路径并即时预热实例与网络信息!
如果您希望完全手动管理服务或自定义配置,可参考以下步骤:
# 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 jqmkdir -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"创建 /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 发送以下指令进行掌上运维:
| 指令 | 作用说明 |
|---|---|
/start 或 /menu |
呼出个人主控台大盘菜单,含账号数、实例数与累计换 IP 次数 |
/list |
分页列出名下所有甲骨文云服务器,点击可一键换 IP、重装系统、开关机 |
/traffic |
实时汇总各账号当月出站流量消耗及限额预警进度条 |
/sync |
立即触发全账号状态、新分配 IP 与实例列表深度同步 |
/help |
查看详细操作指南 |
安全提示:Bot 仅响应部署时配置的管理员 Chat ID,外部其他任何用户发送指令均会被安全拦截并提示无权访问。
本项目基于 MIT License 开源,仅供个人学习与自用云资源运维。