- 项目简介 / Project Introduction
- 核心功能 / Core Features
- 功能截图 / Feature Screenshots
- 技术架构 / Tech Stack
- 架构特性 / Architecture Highlights
- 项目结构 / Project Structure
- 快速开始 / Quick Start
- 测试账号 / Test Accounts
EasyDo 是一个智能化工作平台,旨在为团队提供一站式的 DevOps 解决方案。本项目旨在复刻并优化企业级 CI/CD 工作流管理功能,提供更友好的用户界面和更完善的功能支持。
EasyDo is an intelligent work platform designed to provide teams with a one-stop DevOps solution. This project aims to replicate and optimize enterprise-level CI/CD workflow management features while offering a more friendly user interface and comprehensive functionality support.
- 复刻企业级 DevOps 平台核心功能(流水线、项目管理、发布部署等) Replicate core enterprise DevOps platform features (pipeline, project management, deployment, etc.)
- 提供更现代化、更友好的用户界面 Provide a more modern and user-friendly interface
- 支持灵活的扩展和定制 Support flexible extensions and customization
- 确保系统的稳定性和高性能 Ensure system stability and high performance
- 🚀 高性能 / High Performance - 基于 Go + Gin 构建的后端,提供卓越的性能表现 Backend built with Go + Gin for excellent performance
- 🎨 现代化 UI / Modern UI - Vue 3 + Element Plus 构建的响应式界面 Responsive interface built with Vue 3 + Element Plus
- 🔐 安全可靠 / Secure & Reliable - JWT 认证、密码加密,会话管理 JWT authentication, password encryption, session management
- 📊 统计分析 / Statistics & Analytics - 全面的数据统计和可视化 Comprehensive data statistics and visualization
- 🐳 容器化部署 / Containerized Deployment - 完整的 Docker 容器化支持 Complete Docker containerization support
- 🔄 可扩展性 / Extensibility - 模块化设计,易于扩展和维护 Modular design, easy to extend and maintain
- 🌐 多副本高可用 / Multi-replica HA - 无状态多副本部署,WebSocket 实时状态同步 Stateless multi-replica deployment with WebSocket real-time state synchronization
- 📡 实时通信 / Real-time Communication - 前端与 Agent 均通过 WebSocket 与 Server 保持长连接 Both frontend and Agent maintain persistent WebSocket connections to Server
- 用户登录/注册 / User Login/Registration
- JWT Token 认证机制 / JWT Token Authentication
- 密码加密存储(bcrypt)/ Password Encrypted Storage (bcrypt)
- 会话管理与安全控制 / Session Management & Security Control
- 多因素认证支持 / Multi-factor Authentication Support
- 可视化流水线列表 / Visual Pipeline List
- 创建/编辑/删除流水线 / Create/Edit/Delete Pipelines
- 流水线构建历史记录 / Pipeline Build History
- 收藏常用流水线 / Favorite Common Pipelines
- 实时构建状态跟踪 / Real-time Build Status Tracking
- DAG 可视化编排 / DAG Visualization & Orchestration
- 流水线触发器配置 / Pipeline Trigger Configuration
- 流水线变量管理 / Pipeline Variable Management
- 流水线定时调度 / Pipeline Cron Scheduling
- 项目列表与分组管理 / Project List & Group Management
- 项目详情与配置 / Project Details & Configuration
- 项目统计信息展示 / Project Statistics Display
- 项目成员管理 / Project Member Management
- 项目级流水线管理 / Project-level Pipeline Management
- 一键快速发布 / One-click Quick Release
- 发布历史记录 / Release History
- 版本回滚功能 / Version Rollback
- 发布部署统计 / Deployment Statistics
- 多环境部署支持 / Multi-environment Deployment Support
- 发布进度实时跟踪 / Real-time Deployment Progress Tracking
- 运行趋势分析 / Run Trend Analysis
- 成功率统计 / Success Rate Statistics
- Top 流水线排行 / Top Pipelines Ranking
- 时间范围筛选 / Time Range Filter
- 多维度数据可视化 / Multi-dimensional Data Visualization
- 流水线执行明细 / Pipeline Execution Details
- 基本设置 / Basic Settings
- 安全设置 / Security Settings
- 通知设置 / Notification Settings
- 用户管理 / User Management
- 第三方集成 / Third-party Integration
- Webhook 配置 / Webhook Configuration
- 基本资料管理 / Profile Management
- 安全设置(修改密码)/ Security Settings (Change Password)
- 偏好设置 / Preference Settings
- 登录设备管理 / Login Device Management
- 工作空间创建与管理 / Workspace Creation & Management
- 工作空间邀请与成员管理 / Workspace Invitation & Member Management
- 多角色权限控制(Viewer/Developer/Maintainer/Owner)/ Multi-role Access Control
- 工作空间级资源配置 / Workspace-level Resource Configuration
- 分布式 Agent 注册与心跳 / Distributed Agent Registration & Heartbeat
- Agent 实时状态监控 / Real-time Agent Status Monitoring
- Agent 并发数控制 / Agent Concurrency Control
- Agent 范围管理(平台级/工作空间级)/ Agent Scope Management
- Agent 会话故障转移 / Agent Session Failover
- 任务分发超时控制 / Task Dispatch Timeout Control
- 多类型凭据支持 / Multi-type Credential Support
- 密码(Password)/ Password Authentication
- SSH 密钥(SSH Key)/ SSH Key Authentication
- API 令牌(Token)/ API Token Authentication
- OAuth2 授权 / OAuth2 Authorization
- X.509 证书 / X.509 Certificate
- 多因素认证(MFA)/ Multi-factor Authentication
- IAM 角色 / IAM Role Authentication
- Passkey / Passkey Authentication
- 按类别管理凭据 / Category-based Credential Management
- GitHub / GitLab / Gitee 代码托管
- Docker 镜像仓库 / Docker Registry
- Kubernetes 集群 / Kubernetes Cluster
- 钉钉 / 企业微信 / DingTalk / WeCom
- AWS / GCP / Azure 云平台
- 凭据加密存储与审计 / Encrypted Storage & Audit
- 凭据有效期管理 / Credential Expiration Management
- 凭据使用统计 / Credential Usage Statistics
- SSH 远程命令执行 / SSH Remote Command Execution
- Kubernetes 终端会话 / Kubernetes Terminal Session
- Docker 运行时管理 / Docker Runtime Management
- 实时会话输出 / Real-time Session Output
- 多通道通知投递 / Multi-channel Notification Delivery
-站内消息 / In-app Messages
- 邮件通知 / Email Notifications
- 通知偏好设置 / Notification Preference Settings
- 按资源类型和事件类型过滤 / Filter by Resource Type & Event Type
- 通知优先级管理 / Notification Priority Management
- VM 资源管理 / VM Resource Management
- Kubernetes 集群管理 / Kubernetes Cluster Management
- 资源状态监控 / Resource Status Monitoring
- 资源连通性测试 / Resource Connectivity Testing
- 资源操作审计 / Resource Operation Audit
| 技术 / Technology | 版本 / Version | 用途 / Purpose |
|---|---|---|
| Vue.js | 3.4+ | 核心框架 / Core Framework |
| Vue Router | 4.2+ | 路由管理 / Routing |
| Pinia | 2.1+ | 状态管理 / State Management |
| Axios | 1.6+ | HTTP 客户端 / HTTP Client |
| Element Plus | 2.4+ | UI 组件库 / UI Component Library |
| Vite | 5.x | 构建工具 / Build Tool |
| Sass | 1.69+ | CSS 预处理器 / CSS Preprocessor |
| 技术 / Technology | 版本 / Version | 用途 / Purpose |
|---|---|---|
| Go | 1.21 | 核心语言 / Core Language |
| Gin | 1.9+ | Web 框架 / Web Framework |
| GORM | 1.25+ | ORM 框架 / ORM Framework |
| MySQL | 8.0 | 主数据库 / Primary Database |
| Redis | 7.x | 缓存/会话/消息队列 / Cache/Session/Message Queue |
| JWT | 5.2+ | 认证授权 / Authentication |
| Viper | 1.18+ | 配置管理 / Configuration |
- Docker - 容器化运行时 / Container Runtime
- Docker Compose - 多容器编排 / Multi-container Orchestration
- Nginx - 前端服务与反向代理 / Frontend & Reverse Proxy
- MySQL - 关系型数据库 / Relational Database
- Redis - 缓存与会话存储 / Cache & Session Storage
- 对象存储 - 日志持久化存储 / Object Storage for Log Persistence
EasyDo 采用无状态多副本架构设计,任意 Server 副本都能处理任意请求,无需依赖 sticky session:
- 前端实时状态同步:前端连接的任意 Server 可通过 Redis Live State + MySQL Fallback 获取 Run/Task 状态
- Agent Session Failover:运行中的任务在 Owner Server 崩溃后,可自动迁移 Agent Session,保持状态不回退并最终收敛
- 任务分发容错:Redis Stream 用于任务分发,超时任务自动进入
dispatch_timeout状态,Agent 恢复后可重新分发 - 日志共享化:运行中日志由 Owner Server 提供实时增量;完成后日志从对象存储读取,不再依赖原 Owner 存活
- 前端 ↔ Server:前端通过 WebSocket 订阅 Run/Task 状态与日志,支持断线重连、自动降级到轮询
- Agent ↔ Server:Agent 通过 WebSocket 上报心跳、资源状态、任务状态和日志;Server 通过 WebSocket 下发任务和控制消息
- 跨副本日志拉取:非 Owner Server 可通过内部 HTTP 接口向 Owner Server 拉取运行中日志增量
EasyDo 采用单一状态字段的显式状态机设计,状态命名单次、明确、不可歧义:
queued → assigned → dispatching → pulling → acked → running
↓
execute_success ← execute_failed
调度失败:queued/assigned → schedule_failed
分发超时:dispatching/pulling → dispatch_timeout → queued(可重新调度)
租约过期:acked/running → lease_expired → queued 或 schedule_failed
取消:任意状态 → cancelled(终态)
- 多层加密:凭据载荷使用 AES-256-GCM 加密存储,Master Key 由系统安全保管
- 按需揭秘:凭据仅在真正使用时解密,且可设置锁定状态防止未授权使用
- 完整审计:每次凭据创建、查看、使用、删除操作均有审计记录
- 有效期管理:支持设置凭据过期时间,提前提醒即将过期的凭据
- Kubernetes 认证:支持 Kubeconfig、Server+Token、Server+Client Cert 三种认证模式
- 运行趋势分析:按天/周/月统计流水线运行次数和成功率
- Top 排行:展示运行次数最多和成功率最高的流水线
- 时间范围筛选:支持自定义时间范围进行数据分析
- 多维度聚合:减少 N+1 查询,预聚合统计结果提升查询性能
easydo/
├── 📁 easydo-frontend/ # 前端项目 (Vue 3) / Frontend Project (Vue 3)
│ ├── 📁 src/
│ │ ├── 📁 api/ # API 接口封装 / API Interfaces
│ │ ├── 📁 assets/ # 静态资源 / Static Assets
│ │ ├── 📁 components/ # 公共组件 / Common Components
│ │ ├── 📁 router/ # 路由配置 / Router Config
│ │ ├── 📁 stores/ # Pinia 状态管理 / Pinia State
│ │ ├── 📁 views/ # 页面组件 / Page Components
│ │ ├── 📁 utils/ # 工具函数 / Utilities
│ │ ├── App.vue # 根组件 / Root Component
│ │ └── main.js # 入口文件 / Entry File
│ ├── 📁 public/ # 公共静态文件 / Public Static Files
│ ├── index.html # HTML 模板 / HTML Template
│ ├── vite.config.js # Vite 配置 / Vite Config
│ ├── package.json # 项目依赖 / Dependencies
│ └── Dockerfile # Docker 构建文件 / Docker Build File
│
├── 📁 easydo-server/ # 后端项目 (Go) / Backend Project (Go)
│ ├── 📁 cmd/ # 入口文件 / Entry Files
│ ├── 📁 internal/
│ │ ├── 📁 config/ # 配置管理 / Configuration
│ │ ├── 📁 handlers/ # HTTP 处理器 / HTTP Handlers
│ │ ├── 📁 middleware/ # 中间件 / Middleware
│ │ ├── 📁 models/ # 数据模型 / Data Models
│ │ ├── 📁 repository/ # 数据访问层 / Data Access Layer
│ │ ├── 📁 routers/ # 路由定义 / Route Definitions
│ │ └── 📁 services/ # 业务逻辑层 / Business Logic
│ ├── 📁 pkg/ # 公共包 / Common Packages
│ ├── config.yaml # 配置文件 / Config File
│ ├── go.mod # Go 依赖 / Go Dependencies
│ └── Dockerfile # Docker 构建文件 / Docker Build File
│
├── 📁 easydo-agent/ # 执行器 Agent (Go) / Executor Agent (Go)
│ ├── 📁 cmd/ # 入口文件 / Entry Files
│ ├── 📁 internal/
│ │ ├── 📁 client/ # 客户端实现 / Client Implementation
│ │ ├── 📁 executor/ # 执行器 / Executor
│ │ └── 📁 types/ # 类型定义 / Type Definitions
│ ├── go.mod # Go 依赖 / Go Dependencies
│ └── Dockerfile # Docker 构建文件 / Docker Build File
│
├── 📁 docker-compose.yml # Docker Compose 编排配置
├── 📁 Makefile # Make 命令集合 / Make Commands
├── 📁 AGENTS.md # 项目开发规范 / Development Guidelines
├── 📁 README.md # 项目说明文档 / Project Documentation
└── 📁 docs/ # 文档目录 / Documentation Directory
| 工具 / Tool | 最低版本 / Min Version | 推荐版本 / Recommended |
|---|---|---|
| Docker | 20.x | 24.x |
| Docker Compose | 2.x | 2.x |
| Node.js | 18.x | 20.x |
| Go | 1.21 | 1.21+ |
| Git | 2.x | 2.x |
# 查看所有可用命令 / View all available commands
make
# 一键编译所有项目 / Build all projects
make build
# 一键启动所有服务(后台运行)/ Start all services (background)
make up
# 一键停止所有服务 / Stop all services
make down
# 查看服务状态 / View service status
make status
# 查看服务日志 / View service logs
make logs
# 重启所有服务 / Restart all services
make restart# 克隆项目 / Clone project
git clone <repository-url>
cd easydo
# 构建并启动所有服务 / Build and start all services
docker-compose up -d --build
# 查看服务状态 / View service status
docker-compose ps
# 查看服务日志 / View service logs
docker-compose logs -f- 前端 / Frontend:
http://localhost - 后端 API / Backend API:
http://localhost:8080
| 用户名 / Username | 密码 / Password | 角色 / Role | 描述 / Description |
|---|---|---|---|
| demo | 1qaz2WSX | 普通用户 / User | 演示用户账号 / Demo User Account |
| admin | 1qaz2WSX | 管理员 / Admin | 系统管理员账号 / System Admin Account |
| test | 1qaz2WSX | 普通用户 / User | 测试用户账号 / Test User Account |
⚠️ 注意 / Note:首次登录后建议立即修改密码,确保系统安全。/ It is recommended to change the password after first login to ensure system security.
EasyDo - 让工作更智能 / Making Work Smarter 🚀
Made with ❤️ by EasyDo Team




















