镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
tejas-warakePublic

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DockFlow - Distributed CI/CD Platform

DockFlow is a self-hosted, distributed CI/CD platform that orchestrates build pipelines across remote agents. It features isolated Docker environments, real-time log streaming, and artifact management.

🚀 Key Features

  • Distributed Architecture: Backend orchestrates; lightweight Go Agents execute.
  • Docker Isolation: Each step runs in a container with a shared workspace (Docker Volumes).
  • Infinite Scale: Add more Agents to scale your build capacity horizontally.
  • Real-Time Logs: Watch build logs stream instantly via WebSockets.
  • Artifact Management: Automatically zip and store build outputs (JARs, Binaries).
  • YAML Pipelines: Simple, declarative build configuration.

🏗️ System Components

  1. Backend (Java/Spring Boot): The brain. Manages users, projects, and dispatches jobs.
  2. Agent (Golang): The worker. Connects to backend and executes Docker commands.
  3. Frontend (React): The interface. For managing pipelines and viewing status.

🛠️ Prerequisites

  • Docker & Docker Compose (for Backend infrastructure).
  • Java 17+ (to run Backend).
  • Go 1.21+ (to replicate/build Agent).
  • Node.js 18+ (to run Frontend).

🏁 Getting Started

1. Start Infrastructure (DB & Redis)

docker compose up -d

2. Start Backend (Orchestrator)

cd backend
mvn spring-boot:run

Server runs on http://localhost:8080.

3. Start Agent (Worker)

The Agent connects to the Backend to pick up jobs.

cd agent
export BACKEND_URL=ws://localhost:8080/api/ws/agents
go run cmd/agent/main.go
# OR build and run
# go build -o dockflow-agent cmd/agent/main.go && ./dockflow-agent

You should see "Connected to ws://..." in the logs.

4. Start Frontend (UI)

cd frontend
npm install
npm run dev

Access UI at http://localhost:5173.


📖 Pipeline Configuration

Define your pipeline using YAML. You can configure steps and artifacts.

Example: Java Build with Artifacts

artifacts:
  paths:
    - "target/*.jar"
    - "logs/*.log"

steps:
  - name: Clone Repository
    image: alpine/git
    run: git clone https://github.com/my-org/my-repo.git .

  - name: Build Application
    image: maven:3.8-openjdk-17
    run: mvn clean package -DskipTests

  - name: Run Tests
    image: maven:3.8-openjdk-17
    run: mvn test

Explanation

  • Shared Workspace: All steps share the /workspace directory. Step 1 checkouts code there, Step 2 builds it.
  • Artifacts: After all steps succeed, the Agent zips files matching target/*.jar and uploads them to the Backend.
  • Downloads: You can download these artifacts from the Execution Details page in the UI.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages