fix(non-clicks): Re-export dependencies

Due to how mkIf continues to check definitions past a `false`, this is
invalid unless `environment.persistence` is defined

config = lib.mkIf false {
  environment.persistence = {
    ...
  };
};

This is a big problem for people importing our modules, who may not have
had, say, `impermanence` imported

We considered using `lib.optionalAttrs` instead, but this causes a lot
of infinite recursion elsewhere in our config, so we decided this was a
more "cost effective" way of spending our time, even if it will likely
cause downstream configs to import more than they technically need...

Change-Id: I433d34395b0449de17af2dea2a8a3138c1ff6dba
Reviewed-on: https://git.clicks.codes/c/Infra/NixFiles/+/808
Reviewed-by: Skyler Grey <minion@clicks.codes>
Tested-by: Skyler Grey <minion@clicks.codes>
1 file changed
tree: ec99a557943656ae07dc3e8d464fc14bde7f344c
  1. .reuse/
  2. .vscode/
  3. lib/
  4. LICENSES/
  5. modules/
  6. overlays/
  7. packages/
  8. secrets/
  9. shells/
  10. systems/
  11. .editorconfig
  12. .envrc
  13. .gitignore
  14. .gitreview
  15. .gitreview.license
  16. CONTRIBUTORS.md
  17. flake.lock
  18. flake.lock.license
  19. flake.nix
  20. README.md
README.md

Clicks - Infrastructure

This repository contains system configuration for Clicks's infrastructure.

Config

Config is written using Snowfall lib. It keeps us organized and has some nice features like namespaces.

Systems

Devices are named after colors, areas are named as a letter, with the matching phonetic alphabet word. Areas are generally managed by one member of Clicks, who has full access to all of the servers in that area. If you require help for a specific area you can email admin@clicks.codes and in the subject line include the area you want help for.

SystemDescriptionAddress
tealPrimary Hostteal.alpha.clicks.domains
a1d2Build Serverd2.a1.clicks.domains

Deploying

Deploys are done with deploy-rs, you'll need to be able to ssh into a machine with its hostname (either by a nifty .ssh/config rule or tailscale).

Once you've done that, you'll be able to deploy with

$ deploy .#MACHINE_NAME