mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-03-22 22:29:06 +01:00
Compare commits
2 commits
71132b3c94
...
aa12d74f45
| Author | SHA1 | Date | |
|---|---|---|---|
| aa12d74f45 | |||
| 3ecc10c445 |
6 changed files with 108 additions and 23 deletions
26
.github/copilot-instructions.md
vendored
26
.github/copilot-instructions.md
vendored
|
|
@ -51,19 +51,19 @@ Hosts enable services declaratively: `custom.web-services.forgejo = { enable = t
|
|||
|
||||
## Developer Workflows
|
||||
|
||||
| Task | Command |
|
||||
|---|---|
|
||||
| Rebuild & switch locally | `just switch` |
|
||||
| Test config without switching | `just test` |
|
||||
| Deploy to remote host(s) | `just deploy hostname1 hostname2` |
|
||||
| Format all files | `just fmt` or `nix fmt` |
|
||||
| Run flake checks + tests | `just check` |
|
||||
| Check without building | `just check-lite` |
|
||||
| Update flake inputs | `just update` |
|
||||
| Edit SOPS secrets | `just sops-edit hosts/<host>/secrets.json` |
|
||||
| Rotate all secrets | `just sops-rotate-all` |
|
||||
| Install a new host | `just install <host> root@<ip>` |
|
||||
| Open nix repl for a host | `just repl <hostname>` |
|
||||
| Task | Command |
|
||||
| ----------------------------- | ------------------------------------------ |
|
||||
| Rebuild & switch locally | `just switch` |
|
||||
| Test config without switching | `just test` |
|
||||
| Deploy to remote host(s) | `just deploy hostname1 hostname2` |
|
||||
| Format all files | `just fmt` or `nix fmt` |
|
||||
| Run flake checks + tests | `just check` |
|
||||
| Check without building | `just check-lite` |
|
||||
| Update flake inputs | `just update` |
|
||||
| Edit SOPS secrets | `just sops-edit hosts/<host>/secrets.json` |
|
||||
| Rotate all secrets | `just sops-rotate-all` |
|
||||
| Install a new host | `just install <host> root@<ip>` |
|
||||
| Open nix repl for a host | `just repl <hostname>` |
|
||||
|
||||
SOPS commands auto-enter a `nix develop .#sops` shell if `sops` isn't available, which handles Bitwarden login and age key retrieval.
|
||||
|
||||
|
|
|
|||
20
flake-parts/checks.nix
Normal file
20
flake-parts/checks.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ inputs, self, ... }:
|
||||
{
|
||||
perSystem =
|
||||
{ inputs', pkgs, ... }:
|
||||
{
|
||||
checks = {
|
||||
formatting = (inputs.treefmt.lib.evalModule pkgs "${self}/treefmt.nix").config.build.check self;
|
||||
|
||||
statix = pkgs.runCommand "statix" { buildInputs = [ inputs'.statix.packages.statix ]; } ''
|
||||
statix check ${self}
|
||||
touch $out
|
||||
'';
|
||||
|
||||
deadnix = pkgs.runCommand "deadnix" { buildInputs = [ pkgs.deadnix ]; } ''
|
||||
deadnix --fail ${self}
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,16 +1,8 @@
|
|||
{ inputs, ... }:
|
||||
{ inputs, self, ... }:
|
||||
{
|
||||
perSystem =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
formatter =
|
||||
(inputs.treefmt.lib.evalModule pkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
nixfmt.enable = true;
|
||||
prettier.enable = true;
|
||||
just.enable = true;
|
||||
};
|
||||
}).config.build.wrapper;
|
||||
formatter = (inputs.treefmt.lib.evalModule pkgs "${self}/treefmt.nix").config.build.wrapper;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
60
flake.lock
generated
60
flake.lock
generated
|
|
@ -114,6 +114,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"statix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754487366,
|
||||
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -284,6 +305,7 @@
|
|||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"radicale-birthday-calendar": "radicale-birthday-calendar",
|
||||
"sops": "sops",
|
||||
"statix": "statix",
|
||||
"treefmt": "treefmt",
|
||||
"vscode-extensions": "vscode-extensions"
|
||||
}
|
||||
|
|
@ -308,6 +330,44 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"statix": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760596293,
|
||||
"narHash": "sha256-duH6Il124g+CdYX+HCqOGnpJxyxOCgWYcrcK0CBnA2M=",
|
||||
"owner": "oppiliappan",
|
||||
"repo": "statix",
|
||||
"rev": "e9df54ce918457f151d2e71993edeca1a7af0132",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oppiliappan",
|
||||
"repo": "statix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
statix = {
|
||||
url = "github:oppiliappan/statix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
vscode-extensions = {
|
||||
url = "github:nix-community/nix-vscode-extensions";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
|
|
|||
8
treefmt.nix
Normal file
8
treefmt.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
nixfmt.enable = true;
|
||||
prettier.enable = true;
|
||||
just.enable = true;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue