You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BitBuilder Hypervisor is a next-generation hypervisor system that leverages the full power of systemd's virtualization and containerization capabilities to provide secure, isolated multi-tenant environments. Each tenant's configuration is version-controlled in Git repositories, enabling true infrastructure-as-code workflows with automatic provisioning and updates at boot time.
Key Features
Feature
Description
Benefits
Git-Ops Native
All configurations stored in Git repositories, pulled at boot time
Version control, atomic deployments, rollback capability
Multi-Tenant Isolation
Complete separation between tenants using systemd's security features
Zero trust architecture, cryptographic boundaries
Immutable Host OS
Read-only host system with all changes applied through git-controlled overlays
Eliminates configuration drift, enhanced security
Declarative Configuration
Everything defined as code, no manual configuration required
Infrastructure as Code, automated provisioning
Zero-Trust Architecture
Each tenant runs in completely isolated environments
Hardware-backed security, namespace isolation
Dynamic Provisioning
Automatic tenant setup and teardown based on git repository state
The host OS boots from an immutable image downloaded via systemd-import-generator
DDI images, systemd-import
Tenant Isolation
Each tenant runs in isolated systemd-vmspawn/nspawn instances
Hardware virtualization, namespaces
Git-Based Configuration
All tenant configurations pulled from dedicated Git repositories
Git-ops, declarative config
Dynamic Mount Generation
Custom systemd generators create tenant-specific mount points
systemd generators, overlay mounts
Layered Extensions
System capabilities extended through sysext/confext layers
Extension images, overlayfs
Tenant Management
Each tenant in the BitBuilder Hypervisor follows a complete lifecycle management approach:
graph LR
A[Git Repository] --> B[Discovery]
B --> C[Provisioning]
C --> D[VM/Container]
D --> E[Updates]
E --> A
style A fill:#e3f2fd
style B fill:#f3e5f5
style C fill:#e8f5e8
style D fill:#fff3e0
style E fill:#fce4ec
Loading
Tenant Lifecycle
Step
Process
Details
1
Dedicated Git Repository
Each tenant has its own configuration repository
2
Automatic Provisioning
Boot-time provisioning via setup-tenant@<tenantname>.service
3
Isolated Execution
Runs in systemd-vmspawn or systemd-nspawn instances
4
Custom Extensions
Can have tenant-specific sysext/confext layers
5
Network Isolation
Complete network isolation via systemd-networkd
6
Automatic Updates
Updates automatically when Git repository changes
Boot Process
sequenceDiagram
participant UEFI as UEFI Boot
participant Boot as systemd-boot
participant Import as systemd-import-gen
participant Host as Host OS
participant Git as Git Sync
participant Discovery as Tenant Discovery
participant Provision as Tenant Provisioning
UEFI->>Boot: Load boot configuration
Boot->>Import: Download and verify EFI image
Import->>Host: Start immutable host OS
Host->>Git: Pull system configurations
Git->>Discovery: Scan for tenant configs
Discovery->>Provision: For each tenant:
Note over Provision: • Clone/pull tenant repo<br/>• Mount tenant directories<br/>• Apply sysext/confext layers<br/>• Start VM/container<br/>• Execute provisioning units
Loading
Boot Sequence Details
Phase
Component
Action
Result
1
UEFI Boot
systemd-boot loads the boot configuration
Secure boot validation
2
Image Import
systemd-import-generator downloads and verifies the host EFI image
DDI image verification
3
Host Boot
Immutable host OS starts with minimal services
Base system ready
4
Git Sync
System-level configurations pulled from Git repositories
This project is currently under active development. The architecture is designed and documented, with reference implementations being built. Contributions and feedback are welcome.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Fork the repository
Create your feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add some amazing feature')
Push to the branch (git push origin feature/amazing-feature)