hypeman

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2026 License: MIT Imports: 1 Imported by: 0

README

 ██╗  ██╗  ██╗   ██╗  ██████╗   ███████╗  ███╗   ███╗   █████╗   ███╗   ██╗
 ██║  ██║  ╚██╗ ██╔╝  ██╔══██╗  ██╔════╝  ████╗ ████║  ██╔══██╗  ████╗  ██║
 ███████║   ╚████╔╝   ██████╔╝  █████╗    ██╔████╔██║  ███████║  ██╔██╗ ██║
 ██╔══██║    ╚██╔╝    ██╔═══╝   ██╔══╝    ██║╚██╔╝██║  ██╔══██║  ██║╚██╗██║
 ██║  ██║     ██║     ██║       ███████╗  ██║ ╚═╝ ██║  ██║  ██║  ██║ ╚████║
 ╚═╝  ╚═╝     ╚═╝     ╚═╝       ╚══════╝  ╚═╝     ╚═╝  ╚═╝  ╚═╝  ╚═╝  ╚═══╝

Run containerized workloads in VMs, powered by Cloud Hypervisor. GitHub License Discord


Requirements

Hypeman server runs on Linux with KVM virtualization support. The CLI can run locally on the server or connect remotely from any machine.

Quick Start

Install Hypeman on your Linux server:

curl -fsSL https://get.hypeman.sh | bash

This installs both the Hypeman server and CLI. The installer handles all dependencies, KVM access, and network configuration automatically.

CLI Installation (Remote Access)

To connect to a Hypeman server from another machine, install just the CLI:

Homebrew:

brew install kernel/tap/hypeman

Go:

go install 'github.com/kernel/hypeman-cli/cmd/hypeman@latest'

Configure remote access:

  1. On the server, generate an API token:
hypeman-token
  1. On your local machine, set the environment variables:
export HYPEMAN_API_KEY="<token-from-server>"
export HYPEMAN_BASE_URL="http://<server-ip>:8080"

Usage

# Pull an image
hypeman pull nginx:alpine

# Boot a new VM (auto-pulls image if needed)
hypeman run --name my-app nginx:alpine

# List running VMs
hypeman ps

# Show all VMs
hypeman ps -a

# View logs (supports VM name, ID, or partial ID)
hypeman logs my-app
hypeman logs -f my-app

# Execute a command in a running VM
hypeman exec my-app whoami

# Shell into the VM
hypeman exec -it my-app /bin/sh

VM Lifecycle

# Stop the VM
hypeman stop my-app

# Start a stopped VM
hypeman start my-app

# Put the VM to sleep (paused)
hypeman standby my-app

# Wake the VM (resumed)
hypeman restore my-app

# Delete all VMs
hypeman rm --force --all

Ingress (Reverse Proxy)

Create a reverse proxy from the host to your VM:

# Create an ingress
hypeman ingress create --name my-ingress my-app --hostname my-nginx-app --port 80 --host-port 8081

# List ingresses
hypeman ingress list

# Test it
curl --header "Host: my-nginx-app" http://127.0.0.1:8081

# Delete an ingress
hypeman ingress delete my-ingress

TLS & Subdomain Routing

# TLS-terminating ingress (requires DNS credentials in server config)
hypeman ingress create --name my-tls-ingress my-app \
  --hostname hello.example.com -p 80 --host-port 7443 --tls

# Test TLS
curl --resolve hello.example.com:7443:127.0.0.1 https://hello.example.com:7443

# Subdomain-based routing
hypeman ingress create --name subdomain-ingress '{instance}' \
  --hostname '{instance}.example.com' -p 80 --host-port 8443 --tls

# Delete all ingresses
hypeman ingress delete --all

Advanced Logging

# View Cloud Hypervisor logs
hypeman logs --source vmm my-app

# View Hypeman operational logs
hypeman logs --source hypeman my-app

For all available commands, run hypeman --help.

Development

See DEVELOPMENT.md for build instructions, configuration options, and contributing guidelines.

License

See LICENSE.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var OpenAPIYAML []byte

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cmd
api command
gen-jwt command
lib
builds
Package builds implements registry token generation for secure builder VM authentication.
Package builds implements registry token generation for secure builder VM authentication.
builds/builder_agent command
Package main implements the builder agent that runs inside builder microVMs.
Package main implements the builder agent that runs inside builder microVMs.
dns
Package dns provides a local DNS server for dynamic instance resolution.
Package dns provides a local DNS server for dynamic instance resolution.
hypervisor
Package hypervisor provides an abstraction layer for virtual machine managers.
Package hypervisor provides an abstraction layer for virtual machine managers.
hypervisor/cloudhypervisor
Package cloudhypervisor implements the hypervisor.Hypervisor interface for Cloud Hypervisor VMM.
Package cloudhypervisor implements the hypervisor.Hypervisor interface for Cloud Hypervisor VMM.
hypervisor/qemu
Package qemu implements the hypervisor.Hypervisor interface for QEMU.
Package qemu implements the hypervisor.Hypervisor interface for QEMU.
logger
Package logger provides structured logging with subsystem-specific levels and OpenTelemetry trace context integration.
Package logger provides structured logging with subsystem-specific levels and OpenTelemetry trace context integration.
middleware
Package middleware provides HTTP middleware for the hypeman API.
Package middleware provides HTTP middleware for the hypeman API.
oapi
Package oapi provides primitives to interact with the openapi HTTP API.
Package oapi provides primitives to interact with the openapi HTTP API.
otel
Package otel provides OpenTelemetry initialization and configuration.
Package otel provides OpenTelemetry initialization and configuration.
paths
Package paths provides centralized path construction for hypeman data directory.
Package paths provides centralized path construction for hypeman data directory.
registry
Package registry implements an OCI Distribution Spec registry that accepts pushed images and triggers conversion to hypeman's disk format.
Package registry implements an OCI Distribution Spec registry that accepts pushed images and triggers conversion to hypeman's disk format.
resources
Package resources provides host resource discovery, capacity tracking, and oversubscription-aware allocation management for CPU, memory, disk, and network.
Package resources provides host resource discovery, capacity tracking, and oversubscription-aware allocation management for CPU, memory, disk, and network.
system/init command
Package main implements the hypeman init binary that runs as PID 1 in guest VMs.
Package main implements the hypeman init binary that runs as PID 1 in guest VMs.
vmconfig
Package vmconfig defines the configuration schema passed from host to guest VM.
Package vmconfig defines the configuration schema passed from host to guest VM.
vmm
Package vmm provides primitives to interact with the openapi HTTP API.
Package vmm provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL