Stage 4e-a of the clan migration. Set up signed-file gossip (data-mesher, experimental, clan-core) and pull-based NixOS deploy (dm-pull-deploy, experimental, clan-community) across both servers. - sunken-ship is the data-mesher bootstrap node + dm-pull-deploy push role; phantom-ship joins via /dns/sunken-ship.clan/tcp/7946/... — the hostname resolves via /etc/hosts (clanHostsModule) to sunken-ship's ZT IPv6 since we don't run a DNS server for the clan domain. - Both machines run the dm-pull-deploy default role with action="switch": they watch /var/lib/data-mesher/files/home/ dm_pull_deploy/target and nixos-rebuild switch against the pushed git+…?rev=…&narHash=… flake ref on each change. - Signing keys (shared + per-host status) generated via clan vars generate, ran on sunken-ship because data-mesher isn't packaged for aarch64-darwin. The legacy dotfiles-rebuild timer stays installed as a fallback until dm-pull-deploy is proven; a smart push timer on sunken-ship (calls dm-send-deploy only when origin/main moves) comes next.
43 lines
1.6 KiB
Nix
43 lines
1.6 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
|
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
|
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
|
|
# Auto-loads every .nix file under ./flake-modules as a flake-parts module.
|
|
import-tree.url = "github:vic/import-tree";
|
|
|
|
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
|
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
home-manager.url = "github:nix-community/home-manager";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
|
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
disko.url = "github:nix-community/disko";
|
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
nix-openclaw.url = "github:openclaw/nix-openclaw";
|
|
nix-openclaw.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
clan-core.url = "https://git.clan.lol/clan/clan-core/archive/main.tar.gz";
|
|
clan-core.inputs.nixpkgs.follows = "nixpkgs";
|
|
clan-core.inputs.flake-parts.follows = "flake-parts";
|
|
|
|
# clan-community: dm-pull-deploy (and other user-curated services).
|
|
clan-community.url = "https://git.clan.lol/clan/clan-community/archive/main.tar.gz";
|
|
clan-community.inputs.nixpkgs.follows = "nixpkgs";
|
|
clan-community.inputs.clan-core.follows = "clan-core";
|
|
};
|
|
|
|
outputs = inputs @ { flake-parts, import-tree, ... }:
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [ "x86_64-linux" "aarch64-darwin" ];
|
|
imports = [ (import-tree ./flake-modules) ];
|
|
};
|
|
}
|