A simple CLI tool to spin up OpenBSD virtual machines using QEMU with minimal fuss.

Update README.md to enhance image management section and clarify features

+50 -15
+50 -15
README.md
··· 15 15 16 16 - ๐Ÿš€ **Quick Start**: Launch OpenBSD VMs with a single command 17 17 - ๐Ÿ“ฆ **Auto-Download**: Automatically fetches OpenBSD ISO images from official 18 - CDN 18 + CDN or OCI registries 19 19 - ๐Ÿ”ข **Version Support**: Specify any OpenBSD version (e.g., `7.8`, `6.4`) 20 20 - ๐Ÿ’พ **Flexible Storage**: Support for persistent disk images in multiple 21 21 formats with auto-creation 22 - - โš™๏ธ **Configurable**: Customize CPU, memory, cores, and more 22 + - ๐Ÿณ **OCI Support**: Push, pull, and manage OpenBSD VM images using OCI 23 + registries 24 + - โš™๏ธ **Configurable**: Customize CPU, memory, cores, and more via TOML config 23 25 - ๐ŸŒ **Network Ready**: Support for both NAT (SSH port forwarding) and bridge 24 26 networking 25 - - ๏ฟฝ **Port Forwarding**: Custom port mapping with `--port-forward` option 26 - - ๏ฟฝ๐Ÿ“ **Serial Console**: Direct terminal access via `-nographic` mode 27 + - ๐Ÿ”Œ **Port Forwarding**: Custom port mapping with `--port-forward` option 28 + - ๐Ÿ“ **Serial Console**: Direct terminal access via `-nographic` mode 27 29 - ๐Ÿ—ƒ๏ธ **VM Management**: Persistent state tracking with SQLite database 28 - - ๐Ÿ“‹ **VM Lifecycle**: Start, stop, restart, list, and inspect VMs with unique names 29 - - ๐Ÿ—‘๏ธ **VM Cleanup**: Remove VMs from tracking with `rm` command 30 + - ๐Ÿ“‹ **VM Lifecycle**: Start, stop, restart, list, and inspect VMs with unique 31 + names 32 + - ๐Ÿ—‘๏ธ **VM Cleanup**: Remove VMs and images with `rm` and `rmi` commands 30 33 - ๐Ÿ“Š **Logs Management**: View and follow VM logs in real-time 31 34 - ๐Ÿ”„ **Background Mode**: Run VMs detached with `--detach` option 32 35 - ๐ŸŽฏ **Smart Detection**: Automatically detects existing disk images to avoid 33 36 data loss 34 37 - ๐Ÿ”— **Bridge Support**: Automatic bridge network creation and QEMU 35 38 configuration 39 + - ๐Ÿท๏ธ **Image Tags**: Tag and manage VM images with custom names 36 40 37 41 ## ๐Ÿ› ๏ธ Requirements 38 42 ··· 99 103 openbsd-up logs my-vm-name --follow 100 104 ``` 101 105 106 + ### Image Management 107 + 108 + ```bash 109 + # Pull an OpenBSD image from an OCI registry 110 + openbsd-up pull ghcr.io/tsirysndr/openbsd:7.8 111 + 112 + # Push an OpenBSD image to an OCI registry 113 + openbsd-up push my-openbsd-image:latest 114 + 115 + # Tag an image 116 + openbsd-up tag ghcr.io/tsirysndr/openbsd:7.8 my-openbsd:latest 117 + 118 + # List local images 119 + openbsd-up images 120 + 121 + # Remove an image 122 + openbsd-up rmi my-openbsd:latest 123 + 124 + # Run a container from an image 125 + openbsd-up run ghcr.io/tsirysndr/openbsd:7.8 126 + 127 + # Inspect image details 128 + openbsd-up inspect ghcr.io/tsirysndr/openbsd:7.8 129 + ``` 130 + 102 131 ### Advanced Configuration 103 132 104 133 ```bash ··· 143 172 144 173 ### Subcommands 145 174 146 - | Command | Description | Example | 147 - | ---------------- | ---------------------------------------------- | -------------------------- | 148 - | `ps` | List virtual machines | `openbsd-up ps --all` | 149 - | `start <name>` | Start a stopped VM by name or ID | `openbsd-up start my-vm` | 150 - | `stop <name>` | Stop a running VM by name or ID | `openbsd-up stop my-vm` | 151 - | `restart <name>` | Restart a VM by name or ID | `openbsd-up restart my-vm` | 152 - | `rm <name>` | Remove a VM from state tracking | `openbsd-up rm my-vm` | 153 - | `inspect <name>` | Show detailed VM information and configuration | `openbsd-up inspect my-vm` | 154 - | `logs <name>` | View VM logs | `openbsd-up logs my-vm` | 175 + | Command | Description | Example | 176 + | -------------- | ----------------------------------- | ------------------------------------------ | 177 + | `ps` | List virtual machines | `openbsd-up ps --all` | 178 + | `start <n>` | Start a stopped VM by name or ID | `openbsd-up start my-vm` | 179 + | `stop <n>` | Stop a running VM by name or ID | `openbsd-up stop my-vm` | 180 + | `restart <n>` | Restart a VM by name or ID | `openbsd-up restart my-vm` | 181 + | `rm <n>` | Remove a VM from state tracking | `openbsd-up rm my-vm` | 182 + | `inspect <n>` | Show detailed VM/image information | `openbsd-up inspect my-vm` | 183 + | `logs <n>` | View VM logs | `openbsd-up logs my-vm` | 184 + | `pull <image>` | Pull an OpenBSD image from registry | `openbsd-up pull ghcr.io/user/openbsd:7.8` | 185 + | `push <image>` | Push an OpenBSD image to registry | `openbsd-up push my-openbsd:latest` | 186 + | `tag <s> <t>` | Tag an image with a new name | `openbsd-up tag source:tag target:tag` | 187 + | `images` | List local images | `openbsd-up images` | 188 + | `rmi <image>` | Remove an image | `openbsd-up rmi my-openbsd:latest` | 189 + | `run <image>` | Run a container from an image | `openbsd-up run ghcr.io/user/openbsd:7.8` | 155 190 156 191 ## ๐Ÿ–ฅ๏ธ Console Setup 157 192