From 87ead51331bc57326882055e1635a84c2d409af7 Mon Sep 17 00:00:00 2001
From: Ben Sima <ben@bsima.me>
Date: Fri, 20 Dec 2024 13:57:22 -0500
Subject: Create a bootstrap image for Digital Ocean droplets

I need a way to reliably get a NixOS VM provisioned in the cloud, and the
easiest way to do this is to create a qcow2 image, upload it to Digital Ocean,
and use that to start a droplet. This is very much a manual process, but that's
fine, I shouldn't need to do it very often (for now).
---
 Omni/Bild.nix | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'Omni/Bild.nix')

diff --git a/Omni/Bild.nix b/Omni/Bild.nix
index 90fa979..a7c4e32 100644
--- a/Omni/Bild.nix
+++ b/Omni/Bild.nix
@@ -240,6 +240,15 @@ let
     # build an operating system. 'cfg' is the NixOS config
     os = cfg: (stable.nixos (_args: cfg)).toplevel;
 
+    # build an os image for a digital ocean droplet
+    droplet = cfg:
+      (stable.nixos ({ modulesPath, ... }: {
+        imports = [
+          "${toString modulesPath}/virtualisation/digital-ocean-image.nix"
+          (_args: cfg)
+        ];
+      })).digitalOceanImage;
+
     # build a docker image
     image = stable.dockerTools.buildImage;
   };
-- 
cgit v1.2.3