A Docker-like CLI and HTTP API for managing headless VMs
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";