Zlorb

A lightweight, systemd-managed continuous integration tool for Git-based projects. zlorbrs monitors repositories, detects changes, and triggers builds using Bun, keeping your projects up-to-date effortlessly.


Ask DeepWiki

📖 Overview

zlorbrs is a Rust-based system with three components: zlorbrs-service (the monitoring daemon), zlorbrs-ctl (a CLI for easy management), and zlorbrs-lib (shared functionality). It watches Git repositories for updates, performs safe fast-forward merges, and runs build commands when changes are detected or build artifacts are missing.

🔑 Key Features

🔍 Automatic Change Detection: Tracks repository updates using the git2 crate.
🔒 Safe Git Operations: Ensures only fast-forward merges are applied.
🏗️ Build Triggering: Executes Bun builds when changes occur or dist/ is missing.
⚙️ Systemd Integration: Runs reliably with automatic restarts.
🖥️ CLI Management: Easily add, remove, or list repositories without service restarts.

❓ What Problem Did This Solve?

Normally when I push updates to sites I have deployed to the interwebs, i have to sign into my VPS and manually run the build scripts, which can get annoying!

I decided I needed some sort of Continous Deployment process set up because I just couldnt take it anymore! I first thought, i could just use a script and setup some cronjob. I quickly decided against that as i dont wanna deal with bash but I knew I needed different flows for different repos and I really couldnt be bothered to try and parse files and such.

I LOVE Rust, and said "mhm, yeah we're going rust". Is there any other reason other than me just liking the language? Nah not really. I mean, i like the ease of development and the feel of the language. But anyway, yeah, so I built the ctl and the daemon as an easy, lightweight solution to my initial problem. Now i just push to my repo and the project auto builds and deploys, thanks to Git and Nginx!