Adds a complete Nix flake for NixOS integration: Package: - Pure reproducible builds using bun2nix (no network during build) - Bundles restic, rclone, shoutrrr, and other runtime dependencies - Supports x86_64-linux, aarch64-linux, x86_64-darwin, aarch64-darwin - Version read from package.json to avoid drift NixOS Module: - Systemd service with security hardening - FUSE support for remote mounts (NFS, SMB, WebDAV) - Configurable options: port, dataDir, user/group, timezone, etc. - protectHome option for backing up home directories - CAP_DAC_READ_SEARCH capability when protectHome=false - PORT env var properly passed to server Development: - devShell with bun, node, biome, typescript, and runtime tools - bun2nix CLI for regenerating bun.nix after dependency changes Also includes: - Overlay exposing zerobyte and shoutrrr packages - NixOS VM integration tests - Experimental darwin module (requires TCC permissions for home dirs) - Configurable MIGRATIONS_PATH and PORT for Nix store compatibility Note: package.json includes additional peer dependencies (@standard-community/*, @standard-schema/spec, openapi-types, quansync, react-is) required by bun2nix for pure builds - bun requires all transitive peer deps to be satisfied.
170 lines
4.3 KiB
JSON
170 lines
4.3 KiB
JSON
{
|
|
"nodes": {
|
|
"bun2nix": {
|
|
"inputs": {
|
|
"flake-parts": "flake-parts",
|
|
"import-tree": "import-tree",
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
],
|
|
"systems": "systems",
|
|
"treefmt-nix": "treefmt-nix"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1765198123,
|
|
"narHash": "sha256-pkahE6wwIszQ8e107qa95wyNr4Qj94hEdL9fA/IE288=",
|
|
"owner": "nix-community",
|
|
"repo": "bun2nix",
|
|
"rev": "29d2c26c269b2bc7d8885c6a2fc90ec0fc86ec40",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "bun2nix",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-parts": {
|
|
"inputs": {
|
|
"nixpkgs-lib": "nixpkgs-lib"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1763759067,
|
|
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
|
"owner": "hercules-ci",
|
|
"repo": "flake-parts",
|
|
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "hercules-ci",
|
|
"repo": "flake-parts",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-utils": {
|
|
"inputs": {
|
|
"systems": "systems_2"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1731533236,
|
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"import-tree": {
|
|
"locked": {
|
|
"lastModified": 1763762820,
|
|
"narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=",
|
|
"owner": "vic",
|
|
"repo": "import-tree",
|
|
"rev": "3c23749d8013ec6daa1d7255057590e9ca726646",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "vic",
|
|
"repo": "import-tree",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs": {
|
|
"locked": {
|
|
"lastModified": 1766651565,
|
|
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-unstable",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs-lib": {
|
|
"locked": {
|
|
"lastModified": 1761765539,
|
|
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
|
|
"owner": "nix-community",
|
|
"repo": "nixpkgs.lib",
|
|
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "nixpkgs.lib",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"root": {
|
|
"inputs": {
|
|
"bun2nix": "bun2nix",
|
|
"flake-utils": "flake-utils",
|
|
"nixpkgs": "nixpkgs"
|
|
}
|
|
},
|
|
"systems": {
|
|
"locked": {
|
|
"lastModified": 1681028828,
|
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"systems_2": {
|
|
"locked": {
|
|
"lastModified": 1681028828,
|
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"treefmt-nix": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"bun2nix",
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1762938485,
|
|
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
|
"owner": "numtide",
|
|
"repo": "treefmt-nix",
|
|
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "treefmt-nix",
|
|
"type": "github"
|
|
}
|
|
}
|
|
},
|
|
"root": "root",
|
|
"version": 7
|
|
}
|