Skip to content

Latest commit

 

History

127 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zlorb πŸ› οΈ

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

πŸ“– Overview

zlorb is a Rust-based system with three components: zlorb-service (the monitoring daemon), zlorb-ctl (a CLI for easy management), and zlorb-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 library.
  • πŸ”’ 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.

πŸ› οΈ Installation

Clone the repository:

git clone <repository-url>

Build and install:

just build
sudo systemctl enable zlorb
sudo systemctl start zlorb

βš™οΈ Configuration

Service Config

currently being refactored

Repositories Config

~/.config/zlorb/repositories.toml

[[repository]]
name = "SomeRepo"
path = "/root/SomeRepo"
remote = "origin"
branch = "master"
build_command = "bun"

πŸ–±οΈ Usage

Manage repositories with zlorb-ctl commands:

# Add a repository
zlorb-ctl add

# List all configured repositories
zlorb-ctl list

# Remove a repository
zlorb-ctl remove my-repo

πŸš€ Deployment

The justfile handles building and installing binaries to /usr/local/bin/ and the systemd unit file to /usr/lib/systemd/system/. The service runs in the foreground with automatic recovery on failure, ensuring reliable operation.

🌟 Getting Started

  1. Install zlorb as described above.
  2. Configure your repositories using zlorb-ctl add.
  3. Start the service with sudo systemctl start zlorb.
  4. Monitor build logs via journalctl -u zlorb.

zlorb will automatically keep your repositories updated and built, saving you time and effort.

🀝 Contributing

Want to contribute? Check the System Architecture and Workspace Structure for details. Pull requests and feedback are welcome!

Roadmap

  • watch ctl flag that triggers journalctl log watcher
  • web output ctl flag that spins up web server
  • need to load configs into memory so daemon doesnt need to keep reading file system every iteration

About

Zlorb is a quirky Rust-powered CI/CD tool that automates git repository updates and builds with cosmic flair.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages