How mathalama/zovic works
Zovik is a self-hosted distributed CI/CD system: users configure projects and runners, GitHub pushes can trigger builds, and pipeline steps run in Docker on pull-based agents; users then inspect logs and artifacts. The graph includes the documented DAG, webhook, runner, Docker, artifact, and live-log capabilities. Build orchestration and several advertised capabilities (including encrypted secret storage) are not represented in the supplied tree or sampled implementation, so their wiring is omitted.
Main entry points: App.vue Web Console · DockerRunnerService.java Docker Executor · GitHubWebhookService.java Webhook Verification · client.ts API Client
Components 27
Control Panel
- Web Console
frontend/src/App.vue - Project Pages
frontend/src/pages/ProjectsPage.vue - Runner Pages
frontend/src/pages/RunnersPage.vue - API Client
frontend/src/api/client.ts
Projects And Triggers
- Project API
server/src/main/java/dev/mathalama/zovik/project/controller/ProjectController.java - Project Service
server/src/main/java/dev/mathalama/zovik/project/service/impl/ProjectServiceImpl.java - GitHub Integration
server/src/main/java/dev/mathalama/zovik/project/service/impl/GitHubIntegrationService.java - Webhook API
server/src/main/java/dev/mathalama/zovik/webhook/controller/WebhookController.java - Webhook Verification
server/src/main/java/dev/mathalama/zovik/webhook/service/impl/GitHubWebhookService.java
Pipeline Execution
- DAG Parser
server/src/main/java/dev/mathalama/zovik/pipeline/service/impl/PipelineServiceImpl.java - Pipeline Definition
server/src/main/java/dev/mathalama/zovik/pipeline/api/dto/PipelineDefinition.java - Runner API
server/src/main/java/dev/mathalama/zovik/runner/controller/RunnerController.java - Job Pull API
server/src/main/java/dev/mathalama/zovik/runner/controller/RunnerPullController.java - Job Queue
server/src/main/java/dev/mathalama/zovik/runner/service/impl/RunnerJobQueueService.java - Docker Executor
server/src/main/java/dev/mathalama/zovik/runner/service/impl/DockerRunnerService.java - Go Agent
agents/go/main.go
Build Results
- Artifact Collector
server/src/main/java/dev/mathalama/zovik/artifact/service/impl/ArtifactCollectorService.java - Artifact API
server/src/main/java/dev/mathalama/zovik/artifact/controller/ArtifactController.java - Artifact Records
server/src/main/java/dev/mathalama/zovik/artifact/repository/BuildArtifactRepository.java - Log Collector
server/src/main/java/dev/mathalama/zovik/log/service/impl/LogCollectorService.java - Live Log Stream
server/src/main/java/dev/mathalama/zovik/log/service/impl/LogStreamingService.java - Log API
server/src/main/java/dev/mathalama/zovik/log/controller/LogController.java - Email Notifications
server/src/main/java/dev/mathalama/zovik/notification/service/impl/EmailNotificationService.java
Other components
- Developer
- GitHub
- Docker Engine
- Mail Service
Connections 27
- Developer → Web Console: uses console
- Web Console → Project Pages: routes to
- Web Console → Runner Pages: routes to
- Project Pages → API Client: requests
- Runner Pages → API Client: requests
- API Client → Project API: calls API
- Project API → Project Service: delegates
- Project Service → GitHub Integration: integrates
- GitHub → Webhook API: sends push
- Webhook API → Webhook Verification: processes payload
- Webhook Verification → GitHub: verifies signature
- Webhook Verification → Project Service: loads project
- DAG Parser → Pipeline Definition: parses YAML
- Go Agent → Runner API: registers
- Go Agent → Job Pull API: polls jobs
- Job Pull API → Job Queue: requests job
- Docker Executor → Job Queue: dispatches job
- Docker Executor → Docker Engine: runs containers
- Docker Executor → Log Collector: publishes logs
- Log Collector → Live Log Stream: emits chunks
- Log API → Live Log Stream: opens stream
- Web Console → Log API: views logs
- Artifact Collector → DAG Parser: reads patterns
- Artifact Collector → Artifact Records: saves metadata
- Artifact API → Artifact Records: loads metadata
- Web Console → Artifact API: downloads artifacts
- Email Notifications → Mail Service: sends email