+ Mirrors are a very good idea for project to have. +
+-
+
-
+
+ Increases project resiliance as all servers go down so ideally something should be online to fallback to +
+
+ -
+
+ Helps accessibility as some regions block users based on sanctions & others might not agree to the terms of service or privacy laws in the jurisdiction of some options +
+
+ -
+
+ If self-hosted, then you/your project owns the codeâââwhich can help with potential censorship +
+
+
+ At the time of writing, Nix flakes does not & cannot support mirrors in input pinning requiring an input pinner like Nixtamal to automate it. +
++ How to pin a repository with mirrors in Nix + Nixtamal +
++ Mirrors are not supported on all kinds (fetcher limitations) however these can be supported: +
+-
+
-
+
+ File +
+
+ -
+
+ Archive +
+
+ -
+
+ Darcs +
+
+ -
+
+ Pijul +
+
+ -
+
+ Git (only in eval time fetching using builtins.fetchGit) +
+
+
+ Letâs show the way using the Soupault repository, but if itâs one of the supported kinds, any will work. +
++ Latest revision +
+// manifest.kdl +inputs { + soupault { + archive { + url "https://codeberg.org/PataphysicalSociety/soupault/archive/{{fresh-value}}.tar.gz" + mirrors "https://github.com/PataphysicalSociety/soupault/archive/{{fresh-value}}.tar.gz" + } + } + fresh-cmd { + $ git ls-remote --branches main "https://codeberg.org/PataphysicalSociety/soupault.git" + | cut -f1 + } +}+