{"id":28944257,"url":"https://github.com/opsre/liteops","last_synced_at":"2025-08-25T03:32:51.371Z","repository":{"id":299591029,"uuid":"1000739733","full_name":"opsre/LiteOps","owner":"opsre","description":"LiteOps - 轻量级DevOps平台。简单、高效的CI/CD解决方案","archived":false,"fork":false,"pushed_at":"2025-07-30T07:10:25.000Z","size":70633,"stargazers_count":338,"open_issues_count":7,"forks_count":19,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-10T23:48:10.420Z","etag":null,"topics":["ant-design","cicd","devops","django","jenkins","python3","vue3"],"latest_commit_sha":null,"homepage":"https://liteops.ext4.cn","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opsre.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":"2025-06-12T08:48:35.000Z","updated_at":"2025-08-08T02:19:45.000Z","dependencies_parsed_at":"2025-06-17T10:29:00.069Z","dependency_job_id":"d1da2ce7-acbe-4641-912e-5da44276cb76","html_url":"https://github.com/opsre/LiteOps","commit_stats":null,"previous_names":["opsre/liteops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opsre/LiteOps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2FLiteOps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2FLiteOps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2FLiteOps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2FLiteOps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opsre","download_url":"https://codeload.github.com/opsre/LiteOps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2FLiteOps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272003717,"owners_count":24856774,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ant-design","cicd","devops","django","jenkins","python3","vue3"],"created_at":"2025-06-23T05:44:16.436Z","updated_at":"2025-08-25T03:32:51.355Z","avatar_url":"https://github.com/opsre.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n# 🚀 LiteOps - 轻量级DevOps平台\n\n\u003cimg src=\"liteops-sidebar.png\" alt=\"LiteOps Logo\" width=\"200\"/\u003e\n\n**简单、高效的CI/CD解决方案**\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.9-14354C.svg?logo=python\u0026logoColor=white\" alt=\"Python 3.9\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vue.js-3-35495e.svg?logo=vue.js\u0026logoColor=4FC08D\" alt=\"Vue 3\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Django-4.2-092E20.svg?logo=django\u0026logoColor=white\" alt=\"Django\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/mysql-8-00000f.svg?logo=mysql\u0026logoColor=white\" alt=\"MySQL\"/\u003e\n  \u003cimg src=\"https://img.shields.io/docker/pulls/liteops/liteops?logo=docker\u0026logoColor=white\" alt=\"Docker Pulls\"/\u003e\n\u003c/p\u003e\n\n\n# 项目介绍\n**注意根据GitHub源码内容为最新版本，官网和DockerHub更新稍慢**\n\n## LiteOps CICD 平台概述\n\nLiteOps 是一个专注实用性的 CI/CD 平台。只解决真问题 —— 自动化构建、部署 一体化平台。\n\n## 项目特点\n\n- **够用就好**：基于实际工作流程设计，没有复杂功能\n- **上手简单**：界面直观，学习成本低，像 Jenkins 自由风格 Job 一样简单\n- **针对痛点**：专门解决团队缺失的环节\n\n## 功能预览\n\n\u003ctable align=\"center\" width=\"100%\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"50%\"\u003e\n      \u003cimg src=\"image/dashboard.png\" alt=\"仪表板\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"50%\"\u003e\n      \u003cimg src=\"image/projects_list.png\" alt=\"项目列表\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_tasks.png\" alt=\"构建任务\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_execution.png\" alt=\"构建需求\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_tasks_log.png\" alt=\"构建日志\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_history1.png\" alt=\"构建历史1\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_history2.png\" alt=\"构建历史2\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/build_history3.png\" alt=\"构建历史3\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/system_basic.png\" alt=\"系统设置\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/cerdentials_kubeconfig.png\" alt=\"凭据配置\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/notify.png\" alt=\"通知设置\" width=\"90%\"/\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"image/basic_ldap.png\" alt=\"认证设置\" width=\"70%\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 技术架构\n\nLiteOps采用前后端分离的架构设计：\n\n### 前端技术栈\n\n- **Vue 3**：渐进式JavaScript框架\n- **Ant Design Vue 4.x**：基于Vue的UI组件库\n- **Axios**：基于Promise的HTTP客户端\n- **Vue Router**：Vue官方路由管理器\n- **echarts**：数据可视化图表库\n\n### 后端技术栈\n\n- **Django 4.2**：Python Web框架\n- **Django Channels**：WebSocket支持\n- **MySQL 8**：关系型数据库\n- **GitPython**：Git操作库\n- **Python-GitLab**：GitLab API客户端\n- **JWT认证**：用户身份验证\n\n## 项目目标\n\n1. 把重复性、手动上传的构建部署工作自动化掉\n2. 减少人为操作错误，标准化流程  \n3. 提供清晰的构建状态和日志，出问题能快速定位\n\n## 📋 源码部署 （推荐）\n\n如果你想从源码运行 LiteOps，可以按照以下步骤操作：\n\n### 环境要求\n\n- **Python**：3.9+\n- **Node.js**：18+\n- **MySQL**：8.0+\n- **Git**：用于克隆源码\n\n### 1. 克隆项目\n\n```bash\ngit clone https://github.com/opsre/LiteOps.git\ncd LiteOps\n```\n\n### 2. 后端部署\n\n```bash\n# 进入后端目录\ncd backend\n\n# 安装 Python 依赖\npip3 install -r requirements.txt\n\n# 配置数据库（请先创建数据库并导入 liteops_init.sql）\n#可自定义修改 backend/config.txt 中的数据库配置文件\ncat backend/config.txt\n[client]\nhost = 127.0.0.1  # 自定义IP\nport = 3306   # 自定义端口\ndatabase = liteops\nuser = root\npassword = 1234567xx # 自定义密码\ndefault-character-set = utf8mb4\n```\n\n```bash\n# 启动后端服务\npython3 -m uvicorn backend.asgi:application --host 0.0.0.0 --port 8900\n```\n\n### 3. 前端部署\n\n```bash\n# 新开终端，进入前端目录\ncd web\n\n# 安装依赖\nnpm i\n# 或者\nnpm install\n\n# 开发模式启动\nnpm run dev\n\n# 生产环境构建（dist静态文件）\nnpm run build\n```\n\n### 4. 一键启动脚本（可选）\n\n为了方便启动，我提供了一个启动脚本来同时启动前后端服务：\n\n```bash\n# 给启动脚本执行权限\nchmod +x start.sh\n\n# 执行一键启动（同时启动前端和后端）\n./start.sh\n```\n\n启动脚本会：\n- 检查端口占用情况（8900、8000端口）\n- 自动安装缺失的依赖\n- 自动启动后端服务（端口8900）\n- 自动启动前端开发服务器（端口8000）\n- 支持优雅停止（Ctrl+C时自动清理进程）\n\n### 5. 访问应用\n\n- **开发模式**：\n  - 前端：http://localhost:8000\n  - 后端：http://localhost:8900\n  \n- **生产模式**：\n  - 配置 Nginx Web 服务器托管前端构建文件\n  - 后端接口 http://localhost:8900\n\n### 注意事项\n\n- 确保 MySQL 服务正常运行，并已导入初始化 SQL 文件\n- 修改前端 API 地址配置以匹配后端服务地址\n\n## 🚀 Docker快速部署（比较臃肿，使用了DinD模式，懂哥可自定义Dockerfile构建）\n\n如果你希望快速体验LiteOps而不想配置开发环境，可以使用Docker方式部署：\n\n### 1. 获取部署文件\n\n你需要获取以下部署文件：\n\n- `start-containers.sh` - 一键部署脚本\n- `liteops_init.sql` - 数据库初始化文件\n- `liteops` - Docker镜像\n\n### 2. 获取Docker镜像\n\n```bash\n# 拉取LiteOps镜像\ndocker pull liteops/liteops:[最新版本号]\n```\n\n### 3. 准备部署文件\n\n创建部署目录并放置必要文件：\n\n```bash\n# 创建部署目录\nmkdir liteops-deploy\ncd liteops-deploy\n\n# 将以下文件放入此目录：\n# - start-containers.sh\n# - liteops_init.sql\n```\n\n### 4. 一键部署\n\n使用提供的启动脚本进行自动化部署：\n\n```bash\n# 给启动脚本执行权限\nchmod +x start-containers.sh\n\n# 执行一键部署\n./start-containers.sh\n```\n### 5. 不使用一键部署方式，自定义数据库\n\n#### 方案A：配置文件挂载方式\n\n```bash\n# 1. 先启动MySQL容器（可自定义mysql）\ndocker run -d \\\n    --name liteops-mysql \\\n    -e MYSQL_ROOT_PASSWORD=your_password \\\n    -p 3306:3306 \\\n    mysql:8.0\n\n# 等待MySQL启动完成后导入初始化数据（会自动创建liteops数据库）\ndocker exec -i liteops-mysql mysql -uroot -pyour_password \u003c liteops_init.sql\n\n# 2. 在宿主机创建配置文件\nmkdir -p ./liteops-config\ncat \u003e ./liteops-config/config.txt \u003c\u003c EOF\n[client]\nhost = 数据库IP  # 如果使用Docker网络，填写容器名\nport = 3306\ndatabase = liteops\nuser = root\npassword = your_password  # 替换为你的实际密码\ndefault-character-set = utf8mb4\nEOF\n\n# 3. 启动LiteOps容器，挂载配置文件\ndocker run -d \\\n    --name liteops \\\n    --privileged \\\n    -p 80:80 \\\n    -p 8900:8900 \\\n    -v $(pwd)/liteops-config/config.txt:/app/conf/config.txt \\\n    liteops/liteops:[最新版本]\n```\n\n配置文件 `config.txt`：\n```ini\n[client]\nhost = 数据库IP\nport = 3306\ndatabase = liteops\nuser = root\npassword = your_password\ndefault-character-set = utf8mb4\n```\n\n### 6. 验证部署\n\n部署完成后，你可以通过以下方式验证：\n\n```bash\n# 检查容器状态\ndocker ps\n\n# 检查日志\ndocker logs liteops\n```\n\n### 访问应用\n\n部署成功后，你可以通过以下地址访问：\n\n- **前端界面**：http://localhost\n- **后端API**：http://localhost:8900/api/\n- **MySQL数据库**：localhost:3306\n\n### 默认登录信息\n\n- **用户名**：admin\n- **密码**：admin123 (初始密码，可自行修改)\n\n## 项目当前状态\n\nLiteOps目前处于很多功能未完善状态，虽然核心功能已经初步实现，但仍有许多需求和功能有待完善，。我希望通过开源的方式收集更多的需求和建议，使这个项目能够更好地服务于实际开发场景。\n\n### 需求征集\n\n我诚挚邀请你在查看[功能介绍文档](https://liteops.ext4.cn)和了解LiteOps后，提供宝贵的意见和建议：\n\n功能介绍文档：https://liteops.ext4.cn\n\n- **功能需求**：你希望看到哪些新功能或改进？\n- **用户体验**：界面和操作流程是否符合你的使用习惯？\n- **实际场景**：在你的工作环境中，有哪些CI/CD痛点尚未解决？\n\n## ☕ 请作者喝咖啡\n\n如果 LiteOps 对你有帮助，欢迎请作者喝杯咖啡，你的支持是我持续更新的动力！\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"image/alipay.jpg\" alt=\"支付宝\" width=\"200\"/\u003e\n        \u003cbr/\u003e\n        \u003cstrong\u003e支付宝\u003c/strong\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"image/wechat.jpg\" alt=\"微信\" width=\"200\"/\u003e\n        \u003cbr/\u003e\n        \u003cstrong\u003e微信\u003c/strong\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n## 🎉 感谢各位支持LiteOps\n\n\u003cdiv style=\"display: inline-block; text-align: center; margin: 10px;\"\u003e\n  \u003ca href=\"https://github.com/willis-yang\" style=\"text-decoration: none;\"\u003e\n    \u003cimg src=\"https://avatars.githubusercontent.com/u/42925818?v=4\" width=\"50\" alt=\"willis-yang\" style=\"border-radius: 50%; display: block;\"/\u003e\n    \u003cspan style=\"font-size: 14px; margin-top: 5px; display: block;\"\u003ewillis-yang\u003c/span\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## 📞 联系我\n\n如果你对LiteOps有任何建议、问题或需求，欢迎通过以下方式联系我：\n\n- **邮箱**：hukdoesn@163.com\n- **GitHub Issues**：[提交问题或建议](https://github.com/hukdoesn/liteops/issues)\n\n\u003cimg src=\"image/wechat.png\" alt=\"Magic Gardens\" width=\"300\"\u003e\n\n---\n\n[![Star History Chart](https://api.star-history.com/svg?repos=opsre/LiteOps\u0026type=Date)](https://www.star-history.com/#opsre/LiteOps\u0026Date)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsre%2Fliteops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopsre%2Fliteops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsre%2Fliteops/lists"}