A Docker-like CLI and HTTP API for managing headless VMs
at main 71 lines 4.2 kB view raw
1export const CONFIG_DIR: string = `${Deno.env.get("HOME")}/.vmx`; 2export const DB_PATH: string = `${CONFIG_DIR}/state.sqlite`; 3export const LOGS_DIR: string = `${CONFIG_DIR}/logs`; 4export const EMPTY_DISK_THRESHOLD_KB: number = 100; 5export const CONFIG_FILE_NAME: string = "vmconfig.toml"; 6export const IMAGE_DIR: string = `${CONFIG_DIR}/images`; 7export const VOLUME_DIR: string = `${CONFIG_DIR}/volumes`; 8export const SEED_DIR: string = `${CONFIG_DIR}/seeds`; 9 10export const UBUNTU_ISO_URL: string = Deno.build.arch === "aarch64" 11 ? "https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso" 12 : "https://releases.ubuntu.com/24.04.3/ubuntu-24.04.3-live-server-amd64.iso"; 13 14export const FEDORA_COREOS_DEFAULT_VERSION: string = "43.20251024.3.0"; 15export const FEDORA_COREOS_IMG_URL: string = 16 `https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${FEDORA_COREOS_DEFAULT_VERSION}/${Deno.build.arch}/fedora-coreos-${FEDORA_COREOS_DEFAULT_VERSION}-qemu.${Deno.build.arch}.qcow2.xz`; 17 18export const NIXOS_DEFAULT_VERSION: string = "25.05"; 19export const NIXOS_ISO_URL: string = 20 `https://channels.nixos.org/nixos-${NIXOS_DEFAULT_VERSION}/latest-nixos-minimal-${Deno.build.arch}-linux.iso`; 21 22export const FEDORA_IMG_URL: string = 23 `https://download.fedoraproject.org/pub/fedora/linux/releases/43/Server/${Deno.build.arch}/images/Fedora-Server-Guest-Generic-43-1.6.${Deno.build.arch}.qcow2`; 24 25export const FEDORA_CLOUD_IMG_URL: string = Deno.build.arch === "aarch64" 26 ? "https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/aarch64/images/Fedora-Cloud-Base-Generic-43-1.6.aarch64.qcow2" 27 : "https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2"; 28 29export const GENTOO_IMG_URL: string = Deno.build.arch === "aarch64" 30 ? "https://distfiles.gentoo.org/releases/arm64/autobuilds/20251116T233105Z/di-arm64-console-20251116T233105Z.qcow2" 31 : "https://distfiles.gentoo.org/releases/amd64/autobuilds/20251116T161545Z/di-amd64-console-20251116T161545Z.qcow2"; 32 33export const DEBIAN_DEFAULT_VERSION: string = "13.2.0"; 34 35export const DEBIAN_ISO_URL: string = Deno.build.arch === "aarch64" 36 ? `https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-${DEBIAN_DEFAULT_VERSION}-arm64-netinst.iso` 37 : `https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-${DEBIAN_DEFAULT_VERSION}-amd64-netinst.iso`; 38 39export const ALPINE_DEFAULT_VERSION: string = "3.22.2"; 40 41export const ALPINE_ISO_URL: string = Deno.build.arch === "aarch64" 42 ? `https://dl-cdn.alpinelinux.org/alpine/v${ 43 ALPINE_DEFAULT_VERSION.split( 44 ".", 45 ) 46 .slice(0, 2) 47 .join(".") 48 }/releases/cloud/generic_alpine-${ALPINE_DEFAULT_VERSION}-${Deno.build.arch}-uefi-tiny-r0.qcow2` 49 : `https://dl-cdn.alpinelinux.org/alpine/v${ 50 ALPINE_DEFAULT_VERSION.split( 51 ".", 52 ) 53 .slice(0, 2) 54 .join(".") 55 }/releases/cloud/generic_alpine-${ALPINE_DEFAULT_VERSION}-${Deno.build.arch}-uefi-tiny-r0.qcow2`; 56 57export const DEBIAN_CLOUD_IMG_URL: string = Deno.build.arch === "aarch64" 58 ? "https://cdimage.debian.org/images/cloud/trixie/20251117-2299/debian-13-generic-arm64-20251117-2299.qcow2" 59 : "https://cdimage.debian.org/images/cloud/trixie/20251117-2299/debian-13-generic-amd64-20251117-2299.qcow2"; 60 61export const UBUNTU_CLOUD_IMG_URL: string = Deno.build.arch === "aarch64" 62 ? "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-arm64.img" 63 : "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img"; 64 65export const ALMA_LINUX_IMG_URL: string = Deno.build.arch === "aarch64" 66 ? "https://repo.almalinux.org/almalinux/10/cloud/aarch64/images/AlmaLinux-10-GenericCloud-latest.aarch64.qcow2" 67 : "https://repo.almalinux.org/almalinux/10/cloud/x86_64/images/AlmaLinux-10-GenericCloud-latest.x86_64.qcow2"; 68 69export const ROCKY_LINUX_IMG_URL: string = Deno.build.arch === "aarch64" 70 ? "https://dl.rockylinux.org/pub/rocky/9/images/aarch64/Rocky-9-GenericCloud.latest.aarch64.qcow2" 71 : "https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2";