[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2041":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":21,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},2041,"holos","zeroecco\u002Fholos","zeroecco","docker compose for kvm\u002Fqemu",null,"Go",142,4,134,0,1,8,2.1,"Apache License 2.0",false,"main",true,[],"2026-06-12 02:00:36","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fdocs\u002Fholos-lockup-dark.svg\">\n  \u003Cimg alt=\"holos\" src=\".\u002Fdocs\u002Fholos-lockup-light.svg\" width=\"340\">\n\u003C\u002Fpicture>\n\nDocker compose for KVM. Define multi-VM stacks in one YAML file. No libvirt, no\nXML, no distributed control plane.\n\nWebsite and docs: \u003Chttps:\u002F\u002Fzeroecco.github.io\u002Fholos\u002F>\n\nThe primitive is a VM, not a container. Every workload instance gets its own\nkernel boundary, qcow2 overlay, cloud-init seed, and generated SSH access.\n\n## Quick Start\n\n> Requires Linux + `\u002Fdev\u002Fkvm`. macOS builds run offline commands like\n> `validate`, `import`, `images`, and `pull`, but `up` and `run` need a KVM\n> host.\n\nOne disposable VM, no compose file:\n\n```bash\nholos run alpine\nholos exec \u003Cprinted-project-name>\nholos down \u003Cprinted-project-name>\n```\n\nA single-service stack you can `curl`. Save as `holos.yaml`:\n\n```yaml\nname: hello\n\nservices:\n  web:\n    image: ubuntu:noble\n    ports:\n      - \"8080:80\"\n    cloud_init:\n      packages:\n        - nginx\n      write_files:\n        - path: \u002Fvar\u002Fwww\u002Fhtml\u002Findex.html\n          content: \"hello from holos\\n\"\n      runcmd:\n        - systemctl restart nginx\n```\n\n```bash\nholos up\ncurl localhost:8080\nholos down hello\n```\n\nThat is a real VM booting a cloud image, installing a package, writing config,\nand forwarding a host port.\n\n## Install\n\nPre-built binaries are attached to every\n[GitHub release](https:\u002F\u002Fgithub.com\u002Fzeroecco\u002Fholos\u002Freleases):\n\n```bash\nTAG=v0.2.3\nASSET=holos_${TAG#v}_Linux_x86_64.tar.gz\nBASE=https:\u002F\u002Fgithub.com\u002Fzeroecco\u002Fholos\u002Freleases\u002Fdownload\u002F$TAG\ncurl -LO $BASE\u002F$ASSET\ncurl -LO $BASE\u002Fchecksums.txt\ngrep \" $ASSET$\" checksums.txt | sha256sum -c -\ngh attestation verify $ASSET --repo zeroecco\u002Fholos\nsudo tar -xz -C \u002Fusr\u002Flocal\u002Fbin -f $ASSET holos\nholos version\nholos doctor\n```\n\nRelease pages include SHA-256 checksums and GitHub artifact attestations for\nsigned provenance. Verify both before installing binaries on production hosts.\n\nOr build from source:\n\n```bash\ngo build -o bin\u002Fholos .\u002Fcmd\u002Fholos\ngo test .\u002F...\nbin\u002Fholos doctor\n```\n\n## CLI\n\n```text\nholos up [-f holos.yaml] [--lock-timeout 5m|--no-wait]\n                                     start all services\nholos run [flags] \u003Cimage> [-- cmd...] launch a one-off VM\nholos down \u003Cproject>                 stop and remove a project\nholos ps [-f holos.yaml]             list running projects\nholos start [-f holos.yaml] [svc]    start a stopped service or all services\nholos stop [-f holos.yaml] [svc]     stop a service or all services\nholos console \u003Cproject> [\u003Cinst>]     attach serial console\nholos exec \u003Cproject> [\u003Cinst>] [-- cmd...]\n                                     SSH into an instance\nholos logs \u003Cproject> [\u003Csvc|inst>]    show console logs\nholos validate [-f holos.yaml]       validate compose file\nholos pull \u003Cimage>                   pull a cloud image\nholos verify \u003Cimage>|--all           verify cached image checksums\nholos images                         list available images\nholos devices [--gpu]                list PCI devices and IOMMU groups\nholos doctor [--json]                check host dependencies\nholos install [-f holos.yaml] [--system] [--enable]\n                                     install a systemd unit\nholos uninstall [-f holos.yaml] [--system]\n                                     remove the systemd unit\nholos import [vm...] [--all] [--xml file] [--connect uri] [-o file]\n                                     convert virsh VMs into holos.yaml\n```\n\n## Docs\n\n- [Website](https:\u002F\u002Fzeroecco.github.io\u002Fholos\u002F): landing page and rendered docs.\n- [CLI guide](.\u002Fdocs\u002Fcli.md): ad hoc VMs, `exec`, systemd install, virsh import,\n  and `doctor`.\n- [Compose file](.\u002Fdocs\u002Fcompose.md): services, volumes, healthchecks,\n  networking, PCI passthrough, Dockerfile provisioning, and defaults.\n- [JSON Schema](.\u002Fdocs\u002Fholos.schema.json): editor completion and validation for\n  `holos.yaml`.\n- [Examples](.\u002Fexamples\u002FREADME.md): runnable and template stacks with\n  README-style explanations.\n- [Development](.\u002Fdocs\u002Fdevelopment.md): build, test, host requirements, and\n  release process.\n- [Security policy](.\u002FSECURITY.md): supported versions and private reporting.\n- [Threat model \u002F hardening](.\u002Fdocs\u002Fthreat-model.md):\n  image verification, state permissions, locks, and operational guidance.\n- [Contributing](.\u002FCONTRIBUTING.md): build, test, style, and PR conventions.\n\n## Examples\n\nStart with the small nginx example:\n\n```bash\nholos up -f examples\u002Falpine-nginx\u002Fholos.yaml\ncurl localhost:8080\nholos down alpine-nginx\n```\n\nThe examples directory also includes Dockerfile provisioning, GPU passthrough,\nand a multi-service stack that shows `depends_on`, generated config, and\nreplicas.\n\n## Host Requirements\n\n- Linux with `\u002Fdev\u002Fkvm`\n- `qemu-system-x86_64`\n- `qemu-img`\n- One of `cloud-localds`, `genisoimage`, `mkisofs`, or `xorriso`\n- OVMF \u002F edk2-ovmf firmware for UEFI or PCI passthrough\n- `ssh` for `holos exec` and healthchecks\n\nRun `holos doctor` to check the host.\n\n## Troubleshooting\n\n### SSH resets on first boot\n\n`kex_exchange_identification: read: Connection reset by peer` usually means\ncloud-init is still regenerating host keys and restarting sshd. `holos exec`\nwaits up to 60s by default, but very slow first boots may need another retry or\n`holos exec -w 5m \u003Cproject>`.\n\n### Console shows `Login incorrect`\n\nThe serial console may attempt autologin before cloud-init creates the user.\nWait for `cloud-init ... finished` in the console log, then use `holos exec`.\nCloud images generally do not ship with a console password, and holos does not\nadd one.\n\n### `up` fails on macOS\n\nKVM is a Linux kernel feature. macOS binaries are useful for authoring and\noffline commands, but `holos up` and `holos run` must execute on a Linux KVM\nhost.\n\n## Non-Goals\n\nholos is not Kubernetes. It does not try to solve multi-host clustering, live\nmigration, service meshes, overlay networks, schedulers, CRDs, or control plane\nquorum.\n\nThe goal is to make KVM workable for single-host stacks without importing the\noperational shape of Kubernetes.\n\n## License\n\nLicensed under the [Apache License, Version 2.0](.\u002FLICENSE). See\n[`NOTICE`](.\u002FNOTICE) for attribution.\n","Holos 是一个用于KVM的Docker Compose替代方案，允许用户通过单一YAML文件定义多虚拟机堆栈。它使用Go语言开发，核心功能包括简化虚拟机配置流程、支持基于YML文件快速启动和管理多个独立的虚拟机实例，并为每个实例提供独立的内核边界、qcow2覆盖层、cloud-init初始化以及自动生成的SSH访问权限。Holos适用于需要在Linux环境下快速部署测试环境或进行软件开发与调试的场景，特别适合那些偏好轻量级虚拟化解决方案而不愿依赖libvirt及复杂XML配置文件的开发者。此外，项目遵循Apache License 2.0许可协议，保证了其开源性质的同时也便于二次开发。",2,"2026-06-11 02:47:43","CREATED_QUERY"]