- Introduction
- Getting Started
- 1. Installation
- 2. Prerequisites
- 3. Quick Start
- Concepts
- 4. How vmctl Works
- 5. Imperative vs Declarative
- 6. VM Lifecycle
- 7. Networking Modes
- 8. Image Management
- 9. Cloud-Init and SSH Keys
- Tutorials
- 10. Creating a VM Imperatively
- 11. Declarative Workflow with VMFile.kdl
- 12. Provisioning
- 13. Real-World: OmniOS Builder VM
- VMFile.kdl Reference
- 14. Overview
- 15. VM Block
- 16. Image Sources
- 17. Resources
- 18. Network Block
- 19. Cloud-Init Block
- 20. SSH Block
- 21. Provision Blocks
- 22. Multi-VM Definitions
- 23. Full Example
- CLI Reference
- 24. vmctl
- 25. vmctl create
- 26. vmctl start
- 27. vmctl stop
- 28. vmctl destroy
- 29. vmctl list
- 30. vmctl status
- 31. vmctl console
- 32. vmctl ssh
- 33. vmctl suspend
- 34. vmctl resume
- 35. vmctl image
- 36. vmctl up
- 37. vmctl down
- 38. vmctl reload
- 39. vmctl provision
- 40. vmctl log
- Architecture
- 41. Overview
- 42. Crate Structure
- 43. Hypervisor Backends
- 44. State Management
- 45. SSH Subsystem
- 46. Error Handling
- Library API Guide
- 47. Using vm-manager as a Crate
- 48. Hypervisor Trait
- 49. Core Types
- 50. Image Management API
- 51. SSH and Provisioning API
- 52. VMFile Parsing API
- Advanced Topics
- 53. Running in Docker/Podman
- 54. TAP Networking and Bridges
- 55. illumos / Propolis Backend
- 56. Custom Cloud-Init User Data
- 57. Debugging and Logs