sfos/bootstrap
2025-03-16 20:15:03 -06:00
..
compute_providers checkpoint: switching to nomad 2025-03-16 20:14:44 -06:00
config checkpoint: switching to nomad 2025-03-16 20:14:44 -06:00
modules Wip: terraform stuff done, but nixos-anywhere stil in progress 2024-11-28 23:34:18 -07:00
nixos/common feat: colmena 2025-03-16 20:14:44 -06:00
overlays Wip: terraform stuff done, but nixos-anywhere stil in progress 2024-11-28 23:34:18 -07:00
disko-config.nix checkpoint: switching to nomad 2025-03-16 20:14:44 -06:00
flake.lock feat: colmena 2025-03-16 20:14:44 -06:00
flake.nix checkpoint 2024-12-28 18:29:47 -07:00
main.tf Checkpoint with hetzner-only support 2024-12-15 09:04:05 -07:00
outputs.tf checkpoint: switching to nomad 2025-03-16 20:14:44 -06:00
README.md WIP 2025-02-10 07:39:49 -07:00
todo.md Checkpoint 2024-12-22 15:50:12 -07:00
variables.tf Create host template config 2025-03-16 20:15:03 -06:00

Bootstrap

Stand up a single or multi-machine sfos cluster.

Quick start

  1. Edit main.tf and point the compute_provider module's source at the compute provider you want to use, e.g. source = "./compute_providers/hetzner"
  2. Edit .env and plug in values for your compute provider.
  3. Run tofu apply to create compute resource(s).
  4. Run sfos-init to initialize the system with your nix configs.

Configure

Image registries

ghcr.io

  1. Create a GitHub classic PAT with permissions (https://github.com/settings/tokens) [X] repo [x] write:packages
  2. Encode the token in Docker's JSON format: echo <YOUR PERSONAL ACCESS TOKEN> | docker login ghcr.io -u <GITHUB USERNAME>--password-stdin
  3. cd ../secrets
  4. Encrypt Docker's JSON file as a secret cat /var/run/user/$(id -u)/containers/auth.json | EDITOR="cp /dev/stdin" agenix -e docker_ghcr_auth_config_json.age -i <YOUR SSH PRIVATE KEY PATH>