mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-07 21:35:17 +02:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 410b3c5312 | |||
| f0126c69d0 | |||
| 0fe12bef5a | |||
| 049390581e | |||
| 46398fc688 | |||
| c7b82b9e3e | |||
| c02459fabc | |||
| 30a6ad89ef | |||
| a5110c3aa7 | |||
| 0e5f1801cf | |||
| 6279ac663f | |||
| 92b92969b3 | |||
| ef1c02f3cf | |||
| b493cbae45 | |||
| 8462d34ade | |||
| be429dea2e | |||
| 691af4ae54 | |||
| 400725b36c | |||
| 2ed03e23e3 |
+15
-15
@@ -31,7 +31,7 @@ If rules conflict, follow the higher-priority source and state the conflict brie
|
|||||||
- Never write secret literals into tracked files.
|
- Never write secret literals into tracked files.
|
||||||
- Use environment variables, secret managers, or placeholders.
|
- Use environment variables, secret managers, or placeholders.
|
||||||
- Redact sensitive output in logs and summaries.
|
- Redact sensitive output in logs and summaries.
|
||||||
- For infra/IaC changes, prefer plan/eval/check before apply/switch.
|
- For infra/IaC changes, prefer plan/eval/check before apply/deploy.
|
||||||
|
|
||||||
## 4) Scope Discipline
|
## 4) Scope Discipline
|
||||||
|
|
||||||
@@ -48,35 +48,35 @@ If rules conflict, follow the higher-priority source and state the conflict brie
|
|||||||
|
|
||||||
## 6) Tooling Defaults
|
## 6) Tooling Defaults
|
||||||
|
|
||||||
|
- Use Bash only for quick one-offs, Nushell for personal tooling, Python for everything else.
|
||||||
- Prefer structural search tools first for code find/replace (`ast-grep`/`jq`/`yq`), then text tools
|
- Prefer structural search tools first for code find/replace (`ast-grep`/`jq`/`yq`), then text tools
|
||||||
(`rg`, `fd`).
|
(`rg`, `fd`).
|
||||||
- Prefer project task runners (`just`, `make`, `task`, `npm scripts`, etc.) over ad-hoc commands
|
- Prefer project task runners (`just`, `make`, `npm scripts`, etc.) over ad-hoc commands when
|
||||||
when equivalent.
|
equivalent.
|
||||||
- If a required command is not already available, use only `nix run`, `flake.nix`/`shell.nix` or
|
- Only use `nix run`, `flake.nix`/`shell.nix`, or `uv`/`pnpm` for missing commands & packages.
|
||||||
`uv`/`pnpm` to provide it.
|
Otherwise, ask the user—never use another installer.
|
||||||
- If that is still insufficient, stop and ask the user to prepare the environment instead of using
|
|
||||||
any other installation method.
|
|
||||||
- Use `gh` CLI for GitHub operations, especially code/PR/issue search and inspection.
|
- Use `gh` CLI for GitHub operations, especially code/PR/issue search and inspection.
|
||||||
|
|
||||||
## 7) Environment Defaults
|
## 7) Environment Defaults
|
||||||
|
|
||||||
- Primary OS: NixOS.
|
- Primary OS: NixOS & macOS.
|
||||||
- Shell: default to `nushell`, `bash` also exists.
|
- Shell: default to Nushell, Bash also exists.
|
||||||
|
|
||||||
## 8) Script Engineering Principles
|
## 8) Script Engineering Principles
|
||||||
|
|
||||||
Treat scripts as interruptible jobs that must be diagnosable and safe to rerun:
|
Treat scripts as interruptible jobs that must be diagnosable and safe to rerun:
|
||||||
|
|
||||||
- Split workflows into explicit stages; allow running a selected stage via flags/arguments.
|
- Verbose logging of progress, decisions, and errors.
|
||||||
- Make reruns idempotent; persist progress after each stage and support resume.
|
- Stage workflows with selective execution via cli flags.
|
||||||
- Cache external data with invalidation strategy to speed retries and improve reproducibility.
|
- Idempotent reruns; persist progress and support resume.
|
||||||
- For HTTP flows, separate transport success from business success; support retry/backoff.
|
- Cache external data with invalidation.
|
||||||
- Provide independent verification commands/checks for key outputs (counts, samples, invariants).
|
- Separate HTTP transport from business success; retry with backoff.
|
||||||
|
- Verify key outputs independently.
|
||||||
|
|
||||||
## 9) Communication Defaults
|
## 9) Communication Defaults
|
||||||
|
|
||||||
- Respond in the language the user is currently using, prefer English & Chinese.
|
- Respond in the language the user is currently using, prefer English & Chinese.
|
||||||
- Code, commands, identifiers, and code comments: English.
|
- Code, commands, identifiers, and code comments: Prefer English.
|
||||||
- Be concise, concrete, and action-oriented.
|
- Be concise, concrete, and action-oriented.
|
||||||
|
|
||||||
## 10) Project Overlay
|
## 10) Project Overlay
|
||||||
|
|||||||
Generated
+27
-141
@@ -127,11 +127,11 @@
|
|||||||
},
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765145449,
|
"lastModified": 1781825982,
|
||||||
"narHash": "sha256-aBVHGWWRzSpfL++LubA0CwOOQ64WNLegrYHwsVuVN7A=",
|
"narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "69f538cdce5955fcd47abfed4395dc6d5194c1c5",
|
"rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -186,15 +186,15 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761588595,
|
"lastModified": 1767039857,
|
||||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
"owner": "edolstra",
|
"owner": "NixOS",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "edolstra",
|
"owner": "NixOS",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -327,24 +327,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681202837,
|
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
@@ -531,16 +513,16 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765382359,
|
"lastModified": 1782141370,
|
||||||
"narHash": "sha256-RJmgVDzjRI18BWVogG6wpsl1UCuV6ui8qr4DJ1LfWZ8=",
|
"narHash": "sha256-hqijVSEETttmo8Okql9/LG0Ua34hdciKW1a5zzlj8mU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"rev": "e8c096ade12ec9130ff931b0f0e25d2f1bc63607",
|
"rev": "7c9a54a7f87b4539ddbd8bda09a8a5f5f9361aa9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "v1.0.0",
|
"ref": "v1.1.0",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -555,11 +537,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781228339,
|
"lastModified": 1782695301,
|
||||||
"narHash": "sha256-gYIQvLpoGLH34tw3lZp11IrK82mkttLcw5sPErGe3+k=",
|
"narHash": "sha256-X1xqgUNcYI/UWxDW8W1DC7OEMOjOhTtwWc8v+MGMasY=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "llm-agents.nix",
|
"repo": "llm-agents.nix",
|
||||||
"rev": "27d586e930f255a425ec2f9f238f078880333d09",
|
"rev": "76948750034d89409ac9224173f52ffc05afe946",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -644,21 +626,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixlib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1736643958,
|
|
||||||
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-apple-silicon": {
|
"nixos-apple-silicon": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
@@ -680,27 +647,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-generators": {
|
|
||||||
"inputs": {
|
|
||||||
"nixlib": "nixlib",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769813415,
|
|
||||||
"narHash": "sha256-nnVmNNKBi1YiBNPhKclNYDORoHkuKipoz7EtVnXO50A=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixos-generators",
|
|
||||||
"rev": "8946737ff703382fda7623b9fab071d037e897d5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixos-generators",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpak": {
|
"nixpak": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_3",
|
||||||
@@ -725,11 +671,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780930886,
|
"lastModified": 1782175435,
|
||||||
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=",
|
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e",
|
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -836,11 +782,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780030872,
|
"lastModified": 1783224372,
|
||||||
"narHash": "sha256-u6WU/yd/o8iYQrHX3RAwO1hYa3LkoSL+WNQD0rJfJZQ=",
|
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e9a7635a57597d9754eccebdfc7045e6c8600e6b",
|
"rev": "d407951447dcd00442e97087bf374aad70c04cea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -889,27 +835,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nuenv": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"rust-overlay": "rust-overlay_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731006591,
|
|
||||||
"narHash": "sha256-zCh7F0XKC5IEJKBTSNnUQ3SwJz3izPdxEU3C4udG8qI=",
|
|
||||||
"owner": "DeterminateSystems",
|
|
||||||
"repo": "nuenv",
|
|
||||||
"rev": "45693a438df82b3a604f855c3372f4f7d9efb3eb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "DeterminateSystems",
|
|
||||||
"repo": "nuenv",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur-ryan4yin": {
|
"nur-ryan4yin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -940,11 +865,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765016596,
|
"lastModified": 1781733627,
|
||||||
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
|
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
|
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1005,7 +930,6 @@
|
|||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nixos-apple-silicon": "nixos-apple-silicon",
|
"nixos-apple-silicon": "nixos-apple-silicon",
|
||||||
"nixos-generators": "nixos-generators",
|
|
||||||
"nixpak": "nixpak",
|
"nixpak": "nixpak",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-2505": "nixpkgs-2505",
|
"nixpkgs-2505": "nixpkgs-2505",
|
||||||
@@ -1015,7 +939,6 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"nu_scripts": "nu_scripts",
|
"nu_scripts": "nu_scripts",
|
||||||
"nuenv": "nuenv",
|
|
||||||
"nur-ryan4yin": "nur-ryan4yin",
|
"nur-ryan4yin": "nur-ryan4yin",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"preservation": "preservation",
|
"preservation": "preservation",
|
||||||
@@ -1030,33 +953,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765075567,
|
"lastModified": 1782012058,
|
||||||
"narHash": "sha256-KFDCdQcHJ0hE3Nt5Gm5enRIhmtEifAjpxgUQ3mzSJpA=",
|
"narHash": "sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "769156779b41e8787a46ca3d7d76443aaf68be6f",
|
"rev": "8534567325bd8a8d2928e6afd81e0a87d19efd3c",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay_2": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nuenv",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701397143,
|
|
||||||
"narHash": "sha256-nYUJxZXwCWWVBYZXPgRxGDuQcZRhKTtD/Jp5Jl+9EWU=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "bb71557c93cad40f5921b2342d7fd69f9e6497ab",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1110,21 +1011,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_4": {
|
|
||||||
"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": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v1.0.0";
|
url = "github:nix-community/lanzaboote/v1.1.0";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -87,11 +87,6 @@
|
|||||||
url = "github:nix-community/preservation";
|
url = "github:nix-community/preservation";
|
||||||
};
|
};
|
||||||
|
|
||||||
# generate iso/qcow2/docker/... image from nixos configuration
|
|
||||||
nixos-generators = {
|
|
||||||
url = "github:nix-community/nixos-generators";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
# secrets management
|
# secrets management
|
||||||
agenix = {
|
agenix = {
|
||||||
# lock with git commit at May 18, 2025
|
# lock with git commit at May 18, 2025
|
||||||
@@ -112,11 +107,6 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nuenv = {
|
|
||||||
url = "github:DeterminateSystems/nuenv";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
haumea = {
|
haumea = {
|
||||||
url = "github:nix-community/haumea/v0.2.2";
|
url = "github:nix-community/haumea/v0.2.2";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -133,7 +123,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nixos-apple-silicon = {
|
nixos-apple-silicon = {
|
||||||
# asahi-6.18.9
|
|
||||||
url = "github:nix-community/nixos-apple-silicon";
|
url = "github:nix-community/nixos-apple-silicon";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -19,14 +19,6 @@
|
|||||||
$env.ANTHROPIC_BASE_URL = $env.WORK_ANTHROPIC_BASE_URL
|
$env.ANTHROPIC_BASE_URL = $env.WORK_ANTHROPIC_BASE_URL
|
||||||
$env.ANTHROPIC_AUTH_TOKEN = $env.WORK_ANTHROPIC_AUTH_TOKEN
|
$env.ANTHROPIC_AUTH_TOKEN = $env.WORK_ANTHROPIC_AUTH_TOKEN
|
||||||
|
|
||||||
# using claude-code with glm llm
|
|
||||||
# https://docs.bigmodel.cn/cn/coding-plan/tool/claude
|
|
||||||
# $env.ANTHROPIC_BASE_URL = "https://open.bigmodel.cn/api/anthropic"
|
|
||||||
# $env.ANTHROPIC_AUTH_TOKEN = $env.ZAI_API_KEY
|
|
||||||
# $env.ANTHROPIC_DEFAULT_OPUS_MODEL = "glm-5.1"
|
|
||||||
# $env.ANTHROPIC_DEFAULT_SONNET_MODEL = "glm-5-turbo"
|
|
||||||
# $env.ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-4.5-air"
|
|
||||||
|
|
||||||
# Directories in this constant are searched by the
|
# Directories in this constant are searched by the
|
||||||
# `use` and `source` commands.
|
# `use` and `source` commands.
|
||||||
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}']
|
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}']
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
inkscape # vector graphics
|
inkscape # vector graphics
|
||||||
krita # digital painting
|
krita # digital painting
|
||||||
musescore # music notation
|
musescore # music notation
|
||||||
|
orca-slicer # 3d printer slicer app
|
||||||
# reaper # audio production
|
# reaper # audio production
|
||||||
# sonic-pi # music programming
|
# sonic-pi # music programming
|
||||||
|
|
||||||
|
|||||||
@@ -300,6 +300,10 @@ in
|
|||||||
".local/share/io.github.clash-verge-rev.clash-verge-rev"
|
".local/share/io.github.clash-verge-rev.clash-verge-rev"
|
||||||
".local/share/clash-verge"
|
".local/share/clash-verge"
|
||||||
|
|
||||||
|
# Orca Slicer - 3D Printer Slicer
|
||||||
|
".local/share/orca-slicer"
|
||||||
|
".config/OrcaSlicer"
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
".config/pulse"
|
".config/pulse"
|
||||||
".local/state/wireplumber"
|
".local/state/wireplumber"
|
||||||
|
|||||||
+1
-4
@@ -10,15 +10,12 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (inputs) nixpkgs home-manager nixos-generators;
|
inherit (inputs) nixpkgs home-manager;
|
||||||
in
|
in
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules =
|
modules =
|
||||||
nixos-modules
|
nixos-modules
|
||||||
++ [
|
|
||||||
nixos-generators.nixosModules.all-formats
|
|
||||||
]
|
|
||||||
++ (lib.optionals ((lib.lists.length home-modules) > 0) [
|
++ (lib.optionals ((lib.lists.length home-modules) > 0) [
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
{ nuenv, ... }@args:
|
args: {
|
||||||
{
|
nixpkgs.overlays = import ../../overlays args;
|
||||||
nixpkgs.overlays = [
|
|
||||||
nuenv.overlays.default
|
|
||||||
]
|
|
||||||
++ (import ../../overlays args);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ in
|
|||||||
# Misc
|
# Misc
|
||||||
"iina" # video player
|
"iina" # video player
|
||||||
"stats" # beautiful system status monitor in menu bar
|
"stats" # beautiful system status monitor in menu bar
|
||||||
|
"orcaslicer" # 3d printer slicer app
|
||||||
|
|
||||||
# "reaper" # audio editor
|
# "reaper" # audio editor
|
||||||
# "tencent-lemon" # macOS cleaner
|
# "tencent-lemon" # macOS cleaner
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
# auto upgrade nix to the unstable version
|
# auto upgrade nix to the unstable version
|
||||||
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/package-management/nix/default.nix#L284
|
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/package-management/nix/default.nix#L284
|
||||||
@@ -23,7 +19,28 @@
|
|||||||
|
|
||||||
# Manual optimise storage: nix-store --optimise
|
# Manual optimise storage: nix-store --optimise
|
||||||
# https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
|
# https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
|
||||||
nix.settings.auto-optimise-store = true;
|
nix.settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
|
||||||
|
# Reference: https://github.com/NixOS/nixpkgs/pull/478109
|
||||||
|
# NixOS tests using systemd-nspawn containers require the Nix daemon to be
|
||||||
|
# configured with the following settings:
|
||||||
|
auto-allocate-uids = true;
|
||||||
|
extra-system-features = [ "uid-range" ];
|
||||||
|
experimental-features = [
|
||||||
|
"auto-allocate-uids"
|
||||||
|
"cgroups"
|
||||||
|
];
|
||||||
|
# Use extra-sandbox-paths instead of sandbox-paths here. The plain
|
||||||
|
# sandbox-paths setting replaces Nix's compiled sandbox defaults, including
|
||||||
|
# the sandbox shell that provides /bin/sh for builders with legacy shebangs.
|
||||||
|
# extra-sandbox-paths keeps those defaults and only adds the paths we need.
|
||||||
|
# After deploying, verify the effective daemon config with:
|
||||||
|
# nix config show | grep sandbox-paths
|
||||||
|
extra-sandbox-paths = [
|
||||||
|
"/dev/net"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
nix.channel.enable = false; # remove nix-channel related tools & configs, we use flakes instead.
|
nix.channel.enable = false; # remove nix-channel related tools & configs, we use flakes instead.
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,19 +55,11 @@
|
|||||||
# It supports a richer feature set than the standard linux console VT,
|
# It supports a richer feature set than the standard linux console VT,
|
||||||
# including full unicode support, and when the video card supports drm should be much faster.
|
# including full unicode support, and when the video card supports drm should be much faster.
|
||||||
enable = true;
|
enable = true;
|
||||||
fonts = with pkgs; [
|
|
||||||
{
|
|
||||||
name = "Maple Mono NF CN";
|
|
||||||
package = maple-mono.NF-CN-unhinted;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "JetBrainsMono Nerd Font";
|
|
||||||
package = nerd-fonts.jetbrains-mono;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraOptions = "--term xterm-256color";
|
extraOptions = "--term xterm-256color";
|
||||||
extraConfig = "font-size=14";
|
config = {
|
||||||
# Whether to use 3D hardware acceleration to render the console.
|
font-name = "Maple Mono NF CN";
|
||||||
hwRender = true;
|
font-size = 14;
|
||||||
|
hwaccel = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
preservation.url = "github:nix-community/preservation";
|
preservation.url = "github:nix-community/preservation";
|
||||||
disko.url = "github:nix-community/disko/v1.11.0";
|
disko.url = "github:nix-community/disko/v1.11.0";
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
nuenv.url = "github:DeterminateSystems/nuenv";
|
|
||||||
|
|
||||||
nixos-apple-silicon = {
|
nixos-apple-silicon = {
|
||||||
# 2025-10-07 asahi-6.16.8-1
|
# 2025-10-07 asahi-6.16.8-1
|
||||||
|
|||||||
@@ -56,6 +56,6 @@ in
|
|||||||
|
|
||||||
# generate iso image for hosts with desktop environment
|
# generate iso image for hosts with desktop environment
|
||||||
packages = {
|
packages = {
|
||||||
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.formats.iso;
|
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.system.build.images.iso;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
}:
|
||||||
|
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (_: {
|
||||||
|
autoAllocateUids = true;
|
||||||
|
hasUidRange = true;
|
||||||
|
hasAutoAllocateUidsFeature = true;
|
||||||
|
hasCgroupsFeature = true;
|
||||||
|
hasNoExplicitSandboxPaths = true;
|
||||||
|
hasDevNetExtraSandboxPath = true;
|
||||||
|
})
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
}:
|
||||||
|
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (
|
||||||
|
name:
|
||||||
|
let
|
||||||
|
settings = outputs.nixosConfigurations.${name}.config.nix.settings;
|
||||||
|
effectiveSystemFeatures =
|
||||||
|
(settings.system-features or [ ]) ++ (settings.extra-system-features or [ ]);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
autoAllocateUids = settings.auto-allocate-uids or false;
|
||||||
|
hasUidRange = builtins.elem "uid-range" effectiveSystemFeatures;
|
||||||
|
hasAutoAllocateUidsFeature = builtins.elem "auto-allocate-uids" (
|
||||||
|
settings.experimental-features or [ ]
|
||||||
|
);
|
||||||
|
hasCgroupsFeature = builtins.elem "cgroups" (settings.experimental-features or [ ]);
|
||||||
|
hasNoExplicitSandboxPaths = !(settings ? sandbox-paths);
|
||||||
|
hasDevNetExtraSandboxPath = builtins.elem "/dev/net" (settings.extra-sandbox-paths or [ ]);
|
||||||
|
}
|
||||||
|
)
|
||||||
+1
-1
@@ -142,7 +142,7 @@ in
|
|||||||
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
||||||
src = mylib.relativeToRoot ".";
|
src = mylib.relativeToRoot ".";
|
||||||
hooks = {
|
hooks = {
|
||||||
nixfmt-rfc-style = {
|
nixfmt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.width = 100;
|
settings.width = 100;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -56,6 +56,6 @@ in
|
|||||||
|
|
||||||
# generate iso image for hosts with desktop environment
|
# generate iso image for hosts with desktop environment
|
||||||
packages = {
|
packages = {
|
||||||
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.formats.iso;
|
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.system.build.images.iso;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,5 +47,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,5 +44,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
|
|
||||||
# nixos tests
|
# nixos tests
|
||||||
packages."${name}-nixos-tests" = import ../nixos-tests/idols-ruby.nix systemArgs;
|
packages."${name}-nixos-tests" = import ../nixos-tests/idols-ruby.nix systemArgs;
|
||||||
|
|||||||
@@ -40,5 +40,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,5 +40,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,5 +45,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,5 +42,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,5 +42,5 @@ in
|
|||||||
|
|
||||||
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
|
||||||
|
|
||||||
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso;
|
packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
}:
|
||||||
|
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (_: {
|
||||||
|
autoAllocateUids = true;
|
||||||
|
hasUidRange = true;
|
||||||
|
hasAutoAllocateUidsFeature = true;
|
||||||
|
hasCgroupsFeature = true;
|
||||||
|
hasNoExplicitSandboxPaths = true;
|
||||||
|
hasDevNetExtraSandboxPath = true;
|
||||||
|
})
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
}:
|
||||||
|
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (
|
||||||
|
name:
|
||||||
|
let
|
||||||
|
settings = outputs.nixosConfigurations.${name}.config.nix.settings;
|
||||||
|
effectiveSystemFeatures =
|
||||||
|
(settings.system-features or [ ]) ++ (settings.extra-system-features or [ ]);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
autoAllocateUids = settings.auto-allocate-uids or false;
|
||||||
|
hasUidRange = builtins.elem "uid-range" effectiveSystemFeatures;
|
||||||
|
hasAutoAllocateUidsFeature = builtins.elem "auto-allocate-uids" (
|
||||||
|
settings.experimental-features or [ ]
|
||||||
|
);
|
||||||
|
hasCgroupsFeature = builtins.elem "cgroups" (settings.experimental-features or [ ]);
|
||||||
|
hasNoExplicitSandboxPaths = !(settings ? sandbox-paths);
|
||||||
|
hasDevNetExtraSandboxPath = builtins.elem "/dev/net" (settings.extra-sandbox-paths or [ ]);
|
||||||
|
}
|
||||||
|
)
|
||||||
+3
-1
@@ -8,9 +8,11 @@ rec {
|
|||||||
proxyGateway6 = "fe80::8";
|
proxyGateway6 = "fe80::8";
|
||||||
nameservers = [
|
nameservers = [
|
||||||
# IPv4
|
# IPv4
|
||||||
"119.29.29.29" # DNSPod
|
"119.29.29.29" # DNSPod https://www.dnspod.cn/Products/publicdns
|
||||||
"223.5.5.5" # AliDNS
|
"223.5.5.5" # AliDNS
|
||||||
|
"1.1.1.1" # Cloudflare https://one.one.one.one/dns/
|
||||||
# IPv6
|
# IPv6
|
||||||
|
"2402:4e00::" # DNSPod
|
||||||
"2400:3200::1" # Alidns
|
"2400:3200::1" # Alidns
|
||||||
"2606:4700:4700::1111" # Cloudflare
|
"2606:4700:4700::1111" # Cloudflare
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user