Any suggested changes since this was published a year prior?
While not a “default setting”, a thing I always suggest is to avoid setting multiple
substitutersin your config. Instead, settrusted-substitutersandtrusted-public-keys, and then only set the substituters you need in thenixConfig.substitutersattribute of theflake.nixof the project they are needed in (if you’re not using flakes, add a.nix.conffile to your project andexport NIX_USER_CONF_FILES="${NIX_USER_CONF_FILES+$XDG_CONFIG_HOME/nix}:$PWD/.nix.conf"to your.envrc)That’s a good one. Definitely seems selecting substituters closer to runtime is more flexible. Especially when the system may be roaming across networks like a laptop that may move outside your home LAN that links to your local desktop cache.
deleted by creator
Author here! Actually the first time I’ve ever seen anyone (other than myself) share a post of mine.
If there are any suggestions I’m happy to update it, as noted in the post I’ve had a few people reach out with improvements over the years. It seems like this post in particular is liked the search engines.
Hello Patrick! Thanks for the writeup; gradually incorporating it into my config.
BTW, I recall reading a PR you started on fixing the fallback from failing substituters? This may be of interest to you:


