{"id":13753095,"url":"https://github.com/ixrjog/opscloud4","last_synced_at":"2025-05-14T12:11:51.029Z","repository":{"id":37348565,"uuid":"136586249","full_name":"ixrjog/opscloud4","owner":"ixrjog","description":"云上运维","archived":false,"fork":false,"pushed_at":"2024-12-11T10:15:05.000Z","size":23740,"stargazers_count":1350,"open_issues_count":1,"forks_count":510,"subscribers_count":83,"default_branch":"master","last_synced_at":"2025-04-15T05:15:40.938Z","etag":null,"topics":["aws","cicd","devops","ed25519","kubernetes","ldap","springboot","ssh","web-terminal"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ixrjog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-08T07:54:42.000Z","updated_at":"2025-04-15T01:38:33.000Z","dependencies_parsed_at":"2023-02-15T21:31:28.836Z","dependency_job_id":"32ff5885-bc6d-4dec-8bb1-d6b1bbb2617c","html_url":"https://github.com/ixrjog/opscloud4","commit_stats":{"total_commits":1827,"total_committers":6,"mean_commits":304.5,"dds":"0.21674876847290636","last_synced_commit":"e97f56e37f2d6718151a50b15b569eac96e5c7b2"},"previous_names":["ixrjog/opscloud"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixrjog%2Fopscloud4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixrjog%2Fopscloud4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixrjog%2Fopscloud4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ixrjog%2Fopscloud4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ixrjog","download_url":"https://codeload.github.com/ixrjog/opscloud4/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140768,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cicd","devops","ed25519","kubernetes","ldap","springboot","ssh","web-terminal"],"created_at":"2024-08-03T09:01:16.122Z","updated_at":"2025-05-14T12:11:50.993Z","avatar_url":"https://github.com/ixrjog.png","language":"Java","readme":"Welcome to the opscloud wiki!\n\n\n## Thanks to JetBrains\n\u003ca href=\"https://www.jetbrains.com\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/jetbrains-logos/jetbrains-variant-2.svg\" alt=\"\"/\u003e\n\u003c/a\u003e\n\n\u003e Thanks JetBrains to support the project providing such great IDE.\n\n![GitHub Stats Card](https://github-readme-stats.vercel.app/api?username=ixrjog\u0026show_icons=true\u0026theme=onedark)\n\n## OpsCloud4 云上运维\n\u003cimg src=\"https://img.shields.io/badge/Version-4.6.0-brightgreen.svg\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://img.shields.io/badge/OpenJDK-21-brightgreen.svg\"\u003e\u003c/img\u003e \n\u003cimg src=\"https://img.shields.io/badge/SpringBoot-3.2.1-brightgreen.svg\"\u003e\u003c/img\u003e \n\u003cimg src=\"https://img.shields.io/badge/MySQL-8-brightgreen.svg\"\u003e\u003c/img\u003e\n\u003cbr/\u003e\n[![Security Status](https://www.murphysec.com/platform3/v31/badge/1683749365419687936.svg)](https://www.murphysec.com/console/report/1656107048332996608/1683749365419687936)\n\u003cbr/\u003e\n\n## 架构图\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/github/4.5.0/opscloud4_2.svg\" width=\"600\" alt=\"\"/\u003e\n\n## Code repository\n+ Backend\n  + [https://github.com/ixrjog/opscloud4](https://github.com/ixrjog/opscloud4)\n+ Frontend\n  + [https://github.com/ixrjog/opscloud4-web](https://github.com/ixrjog/opscloud4-web)\n\n## Database\n+ [v4.6.0 opscloud4-github.sql](https://opscloud4-web.oss-eu-west-1.aliyuncs.com/package/4.6.0/opscloud4-github.sql)\n\n## 登录信息\n+ username:baiyi\n+ password:空密码\n  \n## 开发环境\n+ OpenJDK 21\n+ node-v16.13.0\n+ MacBook M1\n+ IntelliJ IDEA 2023\n+ WebStorm 2023\n\n## Leo持续交付\n\n+ 构建\n\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/leo/leo-8.png\" width=\"830\"\u003e\u003c/img\u003e\n\n+ 部署\n\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/leo/leo-9.png\" width=\"830\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/leo/leo-6.png\" width=\"830\"\u003e\u003c/img\u003e\n\n+ 规则配置（封网）\n\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/leo/leo-10.png\" width=\"830\"\u003e\u003c/img\u003e\n\n+ 任务配置\n\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/leo/leo-5.png\" width=\"830\"\u003e\u003c/img\u003e\n\n## 容器堡垒机（集成:Leo持续交付版本信息,多可用区部署可视化）\n\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/github/4.5.1/kt-1.png\" width=\"830\"\u003e\u003c/img\u003e\n\n## 主要功能\n+ Leo持续交付（Kubernetes）\n  + 全冗余架构，多Jenkins引擎且无状态\n  + 权限控制/封网策略\n  + 分组（蓝/绿），金丝雀部署；可视化发布过程\n+ 多实例动态数据源，万物皆资产\n+ 堡垒机\n  + 服务器Web终端\n    + 多服务器同时连接+命令同步、会话复制、会话心跳\n    + 支持ED25519、RSA密钥\n  + KubernetesWeb终端\n    + 多容器同时登录+命令同步、容器日志、会话心跳 \n  + SSH-Server\n    + 原生SSH协议实现，支持ED25519密钥\n    + 简化用户登录，自动关联用户GitLab账户公钥\n    + 支持服务器、容器登录\n```mermaid\nflowchart LR\n    A[User] --\u003e|SSH:22| B{SLB}\n    B--\u003e|TCP:2222| C[Opscloud Server] \n    B--\u003e|TCP:2222| D[Opscloud Server] \n    \n    E[User] --\u003e|ssh ed25519 | F{{SSH-Server}}\n    F--\u003e|ssh ed25519| G[Linux] \n```\n+ 服务器批量任务\n  + Ansible Playbook\n  + 单服务器多线程实现，任务日志更加清晰\n+ RBAC,MFA(OTP)\n+ 集群架构\n  + 实例健康检查接口 /api/instance/health/lb-check (GET) \n  + 分布式调度任务(Quartz)、定时任务分布式锁(Shedlock)、任务并发锁(Redis)\n  + 高性能、可伸缩、高可用性\n+ 标签驱动、事件驱动 \n+ API文档\n  + example.com/doc.html\n  + API Token\n\n## Services \u0026 Ports\n\n| service    | protocol | port | startup parameter     |\n|------------|----------|------|-----------------------|\n| web        | http     | 8080 | --server.port=8080    |\n| ssh-server | ssh      | 2222 | --ssh.shell.port=2222 |\n\n## 功能截图\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/sys/env.png\" alt=\"系统环境\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/sys/tag.png\" alt=\"标签管理\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/sys/instance.png\" alt=\"集群管理\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/oc4-6.png\" alt=\"服务器管理\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/oc4-10.png\" alt=\"远程控制(RDP/VNC)\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/terminal/terminal-server.png\" alt=\"服务器(批量操作,会话复制,高低权限,布局切换)\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/terminal/terminal-server-2.png\" alt=\"服务器(批量操作,会话复制,高低权限,布局切换)\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/terminal/terminal-server-3.png\" alt=\"服务器(批量操作,会话复制,高低权限,布局切换)\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/terminal/terminal-pod.png\" alt=\"容器(支持登录操作或只读查看日志)\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/terminal/terminal-k8s-pod-2.png\" alt=\"容器(支持登录操作或只读查看日志)\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/ssh-server/ssh-server-help.png\" alt=\"SSH-Server\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/ssh-server/ssh-server-help-2.png\" alt=\"SSH-Server\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/ssh-server/ssh-server-event.png\" alt=\"SSH-Server\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/ssh-server/ssh-server-list.png\" alt=\"SSH-Server\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/ssh-server/ssh-server-list-k8s-pod.png\" alt=\"SSH-Server\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/terminal/terminal-audit.png\" alt=\"审计\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/playbook/playbook.png\" alt=\"剧本\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/playbook/playbook-2.png\" alt=\"剧本\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/playbook/playbook-3.png\" alt=\"剧本\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/playbook/playbook_log.png\" alt=\"剧本\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/user/user.png\" alt=\"用户\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/user/user-details.png\" alt=\"用户\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/user/user_mfa.png\" alt=\"MFA\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud4-res.oss-cn-hangzhou.aliyuncs.com/help/datasource/instance.png\" alt=\"数据源\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/datasource/datasource-aliyun.png\" alt=\"数据源\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/datasource/datasource-aliyun-log.png\" alt=\"数据源\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/github/datasource/datasource-zabbix-host.png\" alt=\"数据源\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## \u003cspan style=\"color:green\"\u003e平台演示视频1\u003c/span\u003e\n\u003cvideo src=\"https://opscloud-res.oss-cn-hangzhou.aliyuncs.com/opscloud4/video/opscloud4-1.mov\" width=\"400px\" height=\"300px\" controls=\"controls\"\u003e\u003c/video\u003e\n\n## 帮助文档\n\n\u003ca style=\"color:#2b669a\" href=\"https://www.kancloud.cn/ixrjog/opscloud4/2361886\" target=\"_blank\"\u003e传送门:https://www.kancloud.cn/ixrjog/opscloud4/2361886\u003c/a\u003e\n\n## 交流群\nQ群: 630913972\n","funding_links":[],"categories":["Java","zabbix","DevOps"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixrjog%2Fopscloud4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fixrjog%2Fopscloud4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fixrjog%2Fopscloud4/lists"}