Metadata-Version: 2.4
Name: kurukuru
Version: 0.1.5
Summary: Kurukuru — local cloud infrastructure: a single-host cloud platform over QEMU
Author: Paul Nwokolo
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Paul-Nwokolo/kurukuru
Project-URL: Repository, https://github.com/Paul-Nwokolo/kurukuru
Project-URL: Issues, https://github.com/Paul-Nwokolo/kurukuru/issues
Project-URL: Changelog, https://github.com/Paul-Nwokolo/kurukuru/blob/main/CHANGELOG.md
Keywords: qemu,virtualization,vm,hypervisor,iaas,self-hosted
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Emulators
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: fastapi==0.120.4
Requires-Dist: starlette==0.49.3
Requires-Dist: uvicorn[standard]==0.34.2
Requires-Dist: sqlmodel==0.0.24
Requires-Dist: pydantic-settings==2.9.1
Requires-Dist: PyYAML==6.0.3
Requires-Dist: pycdlib==1.20.0
Requires-Dist: argon2-cffi==23.1.0
Requires-Dist: psutil==7.2.2
Requires-Dist: httpx==0.28.1
Requires-Dist: typer<1.0,>=0.12
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: pytest==8.3.5; extra == "dev"
Provides-Extra: build
Requires-Dist: pyinstaller==6.22.2; extra == "build"
Dynamic: license-file

# Kurukuru — local cloud infrastructure

Launch virtual machines on your own computer the way you would in a cloud: pick
a size, get an SSH command back, and forget where it is running. An HTTP API, a
web dashboard and a CLI over the whole VM lifecycle, on top of QEMU, with an
image catalog, cloud-init provisioning, a browser console, and sizing bounded by
what your machine can actually spare.

One machine, one account: it manages VMs on the computer it runs on, for the
person signed in to it. There is no remote mode and nothing here is
multi-tenant.

Source, documentation and issues:
<https://github.com/Paul-Nwokolo/kurukuru>

## Where this package fits

**On Windows, you want the installer, not this package.** Download
`Kurukuru-<version>-Setup.exe` from
<https://github.com/Paul-Nwokolo/kurukuru/releases/latest>. It bundles a tested
QEMU and needs nothing else first, not Python and not QEMU. Windows 10 and 11
with hardware acceleration is the one platform Kurukuru supports.

This package is the same application without QEMU. It installs and runs on
Windows (CI installs it with pipx, serves the dashboard from it, and checks
what `kurukuru doctor` tells you), but you must supply QEMU yourself, and
`kurukuru doctor` says how.

**On Linux, the packaging is complete and unverified on real KVM hardware.**
`pipx install`, a systemd user service, XDG state directories and a
data-safe uninstall are built, checked in CI on Ubuntu, and were checked by
hand in WSL2. **No
virtual machine has ever been booted under KVM from this package.** Until one
has, on real hardware, Linux is not a supported platform. That is also why the
only operating-system classifier on this page is Windows: a classifier is a
claim, and this one cannot yet be evidenced for Linux. The open questions, and
what would settle each, are listed in
<https://github.com/Paul-Nwokolo/kurukuru/blob/main/docs/PORTABILITY.md>.
Linux instructions:
<https://github.com/Paul-Nwokolo/kurukuru/blob/main/docs/INSTALL-LINUX.md>

macOS has code paths and nothing else.

## Before you rely on it

- **Plain HTTP on loopback.** The API and dashboard listen on 127.0.0.1 by
  default, with no TLS. Anything beyond loopback needs a TLS-terminating proxy:
  <https://github.com/Paul-Nwokolo/kurukuru/blob/main/docs/SECURITY.md>
- **Authentication, no authorization.** Every account is a full administrator.
- **Known limitations** are kept current at the end of
  <https://github.com/Paul-Nwokolo/kurukuru/blob/main/docs/DECISIONS.md>.

## License

Apache-2.0. See
<https://github.com/Paul-Nwokolo/kurukuru/blob/main/LICENSE> and
<https://github.com/Paul-Nwokolo/kurukuru/blob/main/NOTICE>.
