Add infrastructure skeleton for review (refs #21)
check / flake-check (pull_request) Has been cancelled

Lays out the agreed shape from the design discussion: one flake at the
root with three nixosConfigurations (mqtt-ingest, db-host, app-host),
vendored Supabase docker-compose pointed at the external db-host,
Caddy → Kong → PostgREST/GoTrue, a Go MQTT→Postgres ingester stub,
deploy-rs node map, and a Gitea Actions workflow that deploys in
db → app → ingest order on push to main.

No real implementation yet — every host module has TODOs marking the
gaps (real hardware config, actual hostnames, HiveMQ packaging,
vendor the full upstream Supabase compose, etc.).
This commit is contained in:
Klaus
2026-05-27 17:23:02 +00:00
parent 71d74d3b83
commit 2d57db8182
34 changed files with 1005 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
{ pkgs, services-flake }:
{ ... }:
{
imports = [ services-flake.processComposeModules.default ];
# Skeleton — services-flake gives us postgres, plus we'd add Supabase via
# docker-compose run, Caddy, Kong (or skip Kong locally and hit services
# directly), the ingester, and `vite dev`. Fill in as we go.
services = {
postgres."db" = {
enable = true;
port = 5432;
initialDatabases = [{ name = "gebos"; }];
};
};
settings.processes = {
ingester = {
command = "${pkgs.go}/bin/go run ./ingester";
depends_on."db".condition = "process_healthy";
};
frontend = {
command = "${pkgs.nodejs_20}/bin/npm --prefix frontend run dev";
};
# TODO: supabase compose (point POSTGRES_HOST at the services-flake db)
# TODO: kong (use the vendored kong.yml from nix/supabase/)
# TODO: caddy (mirror prod routes locally, no TLS)
};
}