Nix system configuration for Deuxfleurs clusters
Find a file
2022-03-08 14:28:57 +01:00
app fix logging 2022-03-08 14:28:57 +01:00
cluster Updates; change crontab 2022-03-07 16:57:43 +01:00
doc Scrape meterics from system process on each node 2022-02-26 20:31:57 +01:00
nix Wireguard directly using LAN addresses when possible 2022-02-26 00:13:08 +01:00
.gitignore Modularize and prepare to support multiple clusters 2022-02-09 12:09:49 +01:00
configuration.nix Remove mount garage using rclone systemd service 2022-02-27 14:18:43 +01:00
deploy.sh Remove mount garage using rclone systemd service 2022-02-27 14:18:43 +01:00
genpki.sh Config for prod cluster 2022-02-09 15:38:36 +01:00
README.md Add readme and cleanup a bit 2021-12-30 21:23:24 +01:00
ssh_known_hosts Reinstall cariacou with encryption 2022-02-26 00:00:10 +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

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