An open API service indexing awesome lists of open source software.

https://github.com/gitbundle/gitbundle

An out-of-the-box, zero-config, Rust-powered, self-hosted code hosting platform
https://github.com/gitbundle/gitbundle

cicd docker git rust

Last synced: 12 days ago
JSON representation

An out-of-the-box, zero-config, Rust-powered, self-hosted code hosting platform

Awesome Lists containing this project

README

          

# GitBundle

**GitBundle is an out-of-the-box, zero-config, modern, Rust-powered code hosting and workflow automation platform built for performance, security, and full self-hosting.**
It provides a streamlined workflow engine, an efficient Rust backend, and an architecture designed for teams that need reliability, control, and speed.

[demo](https://demo.gitbundle.com)

## Key Highlights

- ⚑ High-performance core powered by Rust with async I/O
- πŸ”’ Reliable and memory-safe architecture
- πŸ”„ Workflow engine compatible with GitHub Actions syntax
- 🧩 Extensible by design for custom CI/CD pipelines and integrations
- 🌐 Multi-language API support for automation and tooling
- 🏒 Ideal for teams and enterprises requiring a secure, self-hosted platform

---

## Overview

The **GitBundle Server** uses release tags such as `server-v3.4.0` for stable builds and `server-v3.4.0-beta` for pre-release builds. Beta releases indicate that the build is feature-complete and near production-ready.

The **GitBundle Runner** follows the same convention, using tags like `runner-v1.2.0` for stable releases and `runner-v1.2.0-beta` for releases that are close to production use.

## Requirements

For both GitBundle Server and GitBundle Runner:

- git
- [gitleaks](https://github.com/gitleaks/gitleaks) @v8.30.0+
- nodejs @18.16.0+
- docker @28.5.2+

## Running GitBundle Server

GitBundle Server loads configuration from the `.env` file in the working directory.

```bash
# Copy the template and start the server
cp .env.slim .env
gitbundle server
```

## Running GitBundle Server in Container (**recommended**)

Using containerized deployment ensures isolation, consistency, and strong performance.

```bash
docker pull ghcr.io/gitbundle/server:v3
# or
docker pull gitbundle/server:v3
```

## Running the GitBundle Runner

The GitBundle Runner is responsible for executing workflows and reporting logs to the server.

```bash
mkdir ~/.gitbundle-runner
cd ~/.gitbundle-runner

# Follow the UI instructions for registration
runner register --server-url --token

# Start the runner
runner start
```

## Operational Recommendation

For stability and performance, deploy GitBundle Server and GitBundle Runner on separate machines.
Running both on the same host may cause resource contention during workflow execution.

## Github Workflow Syntax Compatibility

GitBundle provides broad compatibility with GitHub Actions workflow syntax, including:

- Standard GitHub Actions YAML structure
- Jobs, steps, runs-on, needs, and conditionals
- Matrix expansion
- Expressions using GitHub’s expression language
- All official GitHub contexts and variables
- github
- env
- vars
- job
- jobs
- steps
- runner
- secrets
- strategy
- matrix
- needs
- inputs

## Supported Github Event Types & Operation

- **branch_protection_rule**
- created
- edited
- deleted

- **check_run** (not ready yet)
- created
- edited
- deleted

- **check_suite** (not ready yet)

- **create** (extended)
- **branch**
- created

- **tag**
- created

```yaml
on:
delete:
branches:
- beta/*
branches-ignore:
- alpha/*
tags:
- v*-beta
tags-ignore:
- v*-alpha
paths:
- 'src/**/*.rs'
paths-ignore:
- 'alpha/**/*.rs'
```

- **delete** (extended, refer to create event)
- **branch**
- deleted

- **tag**
- deleted

- **push**
- **branch**
- created
- updated
- deleted

- **tag**
- created
- updated
- deleted

- **pull_request**
- synchronize
- commented
- reviewed
- assigned
- opened
- closed
- reopened
- merged
- edited
- review_requested
- review_commented
- labeled (not ready yet)
- locked (not ready yet)

- **release**
- created
- deleted
- edited
- published
- prereleased

- **repository**
- renamed
- imported
- created
- deleted
- forked
- default_branch_updated
- restored
- public
- watch_started (not ready yet)
- transferred (not ready yet)
- dispatch

- **schedule** (not ready yet)

- **status** (not ready yet)

- **workflow_call**

- **workflow_dispatch**

- **workflow_run**
- completed
- requested
- in_progress

## Gitlab Workflow Syntax Compatibility (WIP)

# FAQ

For issues or inquiries, please report through the official issue tracker:
https://github.com/gitbundle/gitbundle/issues

Thank you for your support.