Nix system configuration for Deuxfleurs clusters
Go to file
Alex f03cafd49b
Modularize and prepare to support multiple clusters
2022-02-09 12:09:49 +01:00
app Remove spoutnik for now, and update garage to 0.6.0-rc1 2022-01-27 14:51:09 +01:00
cluster/staging Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
nix Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
.gitignore Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
README.md Add readme and cleanup a bit 2021-12-30 21:23:24 +01:00
configuration.nix Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
deploy.sh Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
genpki.sh Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
ssh_known_hosts fix IPs for nomad 2021-11-18 16:06:17 +01:00
tlsenv.sh Add readme and cleanup a bit 2021-12-30 21:23:24 +01:00
tlsproxy.sh Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
upgrade.sh Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00

README.md

Deuxfleurs on NixOS!

This repository contains code to run Deuxfleur's infrastructure on NixOS.

It sets up the following:

  • A Wireguard mesh between all nodes
  • Consul, with TLS
  • Nomad, with TLS

The following scripts are available here:

  • genpki.sh, a script to generate Consul and Nomad's TLS PKI (run this once only)
  • deploy.sh, the main script that updates the NixOS config and sets up all of the TLS secrets
  • upgrade.sh, a script to upgrade NixOS
  • tlsproxy.sh, a script that allows non-TLS access to the TLS-secured Consul and Nomad, by running a simple local proxy with socat
  • tlsenv.sh, a script to be sourced (source tlsenv.sh) that configures the correct environment variables to use the Nomad and Consul CLI tools with TLS

Stuff should be started in this order:

  • app/core
  • app/frontend
  • app/garage-staging

At this point, we are able to have a systemd service called mountgarage that mounts Garage buckets in /mnt/garage-staging. This is used by the following services that can be launched afterwards:

  • app/im