toa://toafleet
Hele serverparken din, ett panel.
Oversikt
fleet er kontrollpanelet i toa:// for serverne dine — uansett hvor de står. Koble til leverandørene du allerede bruker (Incus-hjemmelabben, Hetzner Cloud-kontoen), så henter fleet hver instans inn i ett panel: status, type, IP og spesifikasjoner, med start, stopp og restart ett klikk unna. Det er en samleflate, ikke en vert — du tar med kontoer du allerede eier, og nøklene dine krypteres og vises aldri tilbake. Bygget multi-tenant med row-level security i Postgres som resten av suiten, slik at hver tenant bare ser sitt eget, og laget for å utvides: en ny leverandør er bare én adapter til.
Funksjoner
Ett panel, flere leverandører
Koble til Incus (hjemmelabben din — LXC-containere og KVM-VM-er) og Hetzner Cloud, og se hver instans i én liste — status, type, IP, region og spesifikasjoner — i stedet for å sjonglere flere dashbord.
Laget for å utvides
En normalisert instansmodell bak et lag med leverandøradaptere. Skal OVH eller en annen leverandør inn senere, er det bare én ny adapter — kjernen står urørt.
Overvåk og styr
Start, stopp og restart instanser hos alle tilkoblede leverandører, med bekreftelse på hver handling og en logg som bare skrives til, over hvem som gjorde hva.
Nøklene forblir forseglet
Tokens og sertifikater fra leverandørene lagres kryptert, kan bare skrives og aldri vises igjen, og dekrypteres i minnet kun i det øyeblikket en leverandør kalles.
Multi-tenant og privat
Hver tenant kobler til sine egne kontoer og ser bare sine egne instanser — FORCE row-level security i Postgres, med en eierrolle uten superuser, holder alt adskilt. Single sign-on via toa://auth.
Nytt i denne
- changed UI is now English + correct branding — translated all remaining Norwegian interface text to English and fixed leftover
toa://labbranding to toa://fleet (the app was renamed from toalab). Internaltypes/labmodule renamed totypes/fleet.
- fixed Stuck install jobs time out — a running install job whose Incus operation can no longer be resolved (e.g. the operation was garbage-collected) is now marked
failedafter 30 minutes instead of stayingrunningforever. Fresh jobs are unaffected; the failed badge no longer shows a(null)exit code.
- added Expose an installed app in one click — a "Eksponer på domene"-button on a finished install job opens the domain-exposure form with the app's port pre-filled, so publishing a freshly-installed app takes only a domain. Reuses the existing exposure flow; Incus + exposure-capable connections.
API