Make nginx use the haproxy protocol for mail

Mail listens for haproxy proxy messages, which have extra information about
where the query came from (similar to X-Forwarded-For headers in HTTP).
Unfortunately, we were forwarding it raw TCP data from nginx.

This commit uses ProxyStream (introduced in helpers commit
Ia15a18380624375ec4eb5d87d802df1e31f3c82d) to add haproxy proxying.

Finally, this commit removes an extraneous email vhost (ignored since helpers
commit I1e3dc3db735c0ccea5a6b7407cda8338ff7cf1e8)

Change-Id: Ia6142f249b911e11fef1a6476fcef4002d88b86d
4 files changed
tree: 3fe4207d6be99ccfa5d4d2b089c3b70d50e872ee
  1. default/
  2. homes/
  3. host/
  4. modules/
  5. packages/
  6. secrets/
  7. services/
  8. variables/
  9. .editorconfig
  10. .envrc
  11. .gitignore
  12. .gitmodules
  13. .gitreview
  14. .sops.yaml
  15. flake.lock
  16. flake.nix
  17. LICENSE
  18. README.md
README.md

Clicks' NixFiles

Deploying

To deploy these files to our server we use deploy-rs. If you've got a flakes-enabled nix installed on your system you can run

nix run github:serokell/deploy-rs

You can also install deploy-rs to your profile, at which point you'll be able to run

deploy

Updating secrets

Secrets are stored in SOPS and deployed using scalpel.

If you have a service which needs to store secrets in its config file, please set systemd reloadTriggers and restartTriggers to automatically reload/restart the service whenever the configuration changes.

It's notable that changing the secrets will not trigger a reload/restart of the service. If you want to update the secrets without updating the rest of the configuration you currently need to manually restart the service. It's possible that this could be solved by using systemd paths to watch the files (see https://superuser.com/questions/1171751/restart-systemd-service-automatically-whenever-a-directory-changes-any-file-ins) but this is not a priority