feat: add headscale

Headscale is an open source implementation of the tailscale server.
We've written a module that will allow you to easily run it with some
basic but sensible options, and set it up for running on a1d1.

Change-Id: If67dd498cbe0b0c3c81c66a0216845d0eaf1282c
Reviewed-on: https://git.clicks.codes/c/Infra/NixFiles/+/728
Tested-by: Samuel Shuert <coded@clicks.codes>
Reviewed-by: Samuel Shuert <coded@clicks.codes>
5 files changed
tree: 93f8e75a88ca7e74363e4a07bbc773654a6cfa4b
  1. .reuse/
  2. .vscode/
  3. lib/
  4. LICENSES/
  5. modules/
  6. shells/
  7. systems/
  8. .editorconfig
  9. .envrc
  10. .gitignore
  11. .gitreview
  12. .gitreview.license
  13. .sops.nix
  14. configure.sh
  15. CONTRIBUTORS.md
  16. flake.lock
  17. flake.lock.license
  18. flake.nix
  19. 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

a stands for "area", d stands for "device". So for example, a1d1 is device 1 in area 1. 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
a1d1Primary Hostd1.a1.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