https://github.com/xe/waifud
For your server and all of its waifus <3
https://github.com/xe/waifud
Last synced: 10 months ago
JSON representation
For your server and all of its waifus <3
- Host: GitHub
- URL: https://github.com/xe/waifud
- Owner: Xe
- License: mit
- Archived: true
- Created: 2021-05-16T03:47:30.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-10-02T01:43:35.000Z (over 2 years ago)
- Last Synced: 2025-08-14T19:05:20.069Z (11 months ago)
- Language: Rust
- Homepage:
- Size: 563 KB
- Stars: 177
- Watchers: 4
- Forks: 7
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# waifud






A few tools to help me manage and run virtual machines across a homelab cluster.
waifud was made for my own personal use and I do not expect it to be very useful
outside that context. If you do want to run this on your
infrastructure anyways, please [contact me](https://xeiaso.net/contact).
THIS IS EXPERIMENTAL! USE IT AT YOUR OWN PERIL!
TODO(Xe): Link to blogpost on the design/implementation once it is a thing.
Blogposts about waifud:
- [waifud Plans](https://xeiaso.net/blog/waifud-plans-2021-06-19)
- [waifud Progress Report #1](https://xeiaso.net/blog/waifud-progress-2022-02-06)
- [waifud Progress Report #2](https://xeiaso.net/blog/waifud-progress-report-2)
Overall architecture diagram (with incomplete components marked with a
clock):
```mermaid
flowchart TD
subgraph control plane
WD[fa:fa-rust waifud]
WC[fa:fa-rust waifuctl]
ID[fa:fa-golang fa:fa-clock isekaid]
MD[fa:fa-golang fa:fa-clock megamid]
PD[fa:fa-golang fa:fa-clock portald]
end
subgraph VM plane
LV[fa:fa-c libvirt]
WH[fa:fa-linux runner\nnodes]
VM[fa:fa-linux virtual\nmachines]
end
subgraph external
TS[fa:fa-golang Tailscale]
end
PD --> |tailnet ingress for| WD
WC --> |operator tool for| WD
WC --> |usually connects via|PD
ID --> |fetches node metadata\nand secrets for| WD
VM --> |cloud-init\nmetadata| ID
WD --> |manages libvirt on| WH
LV --> |actually runs VMs| VM
VM --> |network storage| MD
WD --> |sets limits for\nrequests metrics from| MD
WH --> |runs| LV
WH <--> |subnet router\ninterconnect| TS
TS --> |network layer for| PD
VM --> |usually a part of| TS
```