= vapor.systems nixos configuration

All our server configuration managed by a git flake.

== Structure

* lib: library functions
* machines: hardware definitions for each server
* modules: service slices for specific purposes
* pkgs: custom package definitons
* secrets: submodule for sensitive information 
* flake.nix: main entrypoint

== Servers

* ettves: main server for webshit & games
* phaenn: storage server for media
* DNS & CDN:
  * fra01.ns
  * nyc01.ns
  * sin01.ns

== Usage

This project uses a slightly modified version of https://github.com/maxaudron/nixinate[nixinate] to
provide easy to use deployment scripts. You can show what is available to run with `+nix flake
show+`. One caveat exists: to include the required secrets submodule you have to invoke nix run like
this:

[,shell]
----
$ nix run '.?submodules=1#ettves'
----

Each server each server has three targets `+server+`, `+server-boot+` and `+server-dry-run+` that
each correspond to `+nixos-rebuild switch+`, `+boot+` and `+dry-run+`.

