From 43f19a871acad7693a102d1509aabf35e76e9c8a Mon Sep 17 00:00:00 2001 From: Pierre Penninckx Date: Sun, 14 Apr 2024 15:21:20 -0700 Subject: [PATCH] add contract documentation (#225) --- README.md | 59 +++++---- docs/assets/contracts_after.png | Bin 0 -> 70222 bytes docs/assets/contracts_before.png | Bin 0 -> 42074 bytes .../assets/contracts_separationofconcerns.png | Bin 0 -> 79139 bytes docs/blocks.md | 12 +- docs/contracts.md | 91 ++++++++++++++ docs/default.nix | 5 + docs/manual.md | 4 + flake.nix | 8 +- modules/blocks/monitoring/docs/default.md | 2 +- modules/blocks/ssl.nix | 24 +++- modules/blocks/ssl/docs/default.md | 70 +++-------- modules/contracts/ssl.nix | 17 ++- modules/contracts/ssl/docs/default.md | 119 ++++++++++++++++++ modules/contracts/ssl/dummyModule.nix | 10 ++ 15 files changed, 324 insertions(+), 97 deletions(-) create mode 100644 docs/assets/contracts_after.png create mode 100644 docs/assets/contracts_before.png create mode 100644 docs/assets/contracts_separationofconcerns.png create mode 100644 docs/contracts.md create mode 100644 modules/contracts/ssl/docs/default.md create mode 100644 modules/contracts/ssl/dummyModule.nix diff --git a/README.md b/README.md index faaca68..0ba814c 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,20 @@ [![Documentation](https://github.com/ibizaman/selfhostblocks/actions/workflows/pages.yml/badge.svg)](https://github.com/ibizaman/selfhostblocks/actions/workflows/pages.yml) [![Tests](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgarnix.io%2Fapi%2Fbadges%2Fibizaman%2Fselfhostblocks%3Fbranch%3Dmain)](https://garnix.io) (using Garnix) -SHB's (Self Host Blocks) is yet another server management tool whose goal is to provide a lower -entry-bar for self-hosting. SHB provides opinionated [building blocks](#available-blocks) fitting -together to self-host any service you'd want. Some [common services](#provided-services) are -provided out of the box. +SHB's (Self Host Blocks) is yet another server management tool whose goal is to provide better +building blocks for self-hosting. Indeed, SHB provides opinionated [building +blocks](#available-blocks) fitting together to self-host any service you'd want. Some [common +services](#provided-services) are provided out of the box. -To achieve this, SHB is using the full power of NixOS modules. Indeed, each building block and each -service is a NixOS module and uses the modules defined in -[Nixpkgs](https://github.com/NixOS/nixpkgs/). +SHB's goal is to make these building blocks plug-and-play. To achieve this, SHB pioneers +[contracts](https://shb.skarabox.com/usage.html) which allows you, the final user, to be more in +control of which pieces go where. The promise here is to let you choose, for example, any reverse +proxy you want or any database you want, without requiring work from maintainers of the services you +want to self host. + +To achieve all this, SHB is using the full power of NixOS modules and NixOS VM tests. Indeed, each +building block and each service is a NixOS module using modules defined in +[Nixpkgs](https://github.com/NixOS/nixpkgs/) and they are tested using full VMs on every commit. ## TOC @@ -39,16 +45,18 @@ Self Host Blocks is available as a flake. To use it in your project, add the fol inputs.selfhostblocks.url = "github:ibizaman/selfhostblocks"; ``` -See [the manual](https://shb.skarabox.com/usage.html) for more information about installing Self -Host Blocks. +This is not quite enough though and more information is provided in [the +manual](https://shb.skarabox.com/usage.html). - You are new to self hosting and want pre-configured services to deploy easily. Look at the [services section](https://shb.skarabox.com/services.html). - You are a seasoned self-hoster but want to enhance some services you deploy already. Go to the [blocks section](https://shb.skarabox.com/blocks.html). -- You are a user of Self Host Blocks but would like to use your own implementation for a block. Head - over to the [matrix channel](https://matrix.to/#/#selfhostblocks:matrix.org) to talk about it - (this is WIP). +- You are a user of Self Host Blocks but would like to use your own implementation for a block. Go + to the [contracts section](https://shb.skarabox.com/contracts.html). + +Head over to the [matrix channel](https://matrix.to/#/#selfhostblocks:matrix.org) for any remaining +question, or just to say hi :) ## Why yet another self hosting tool? @@ -59,21 +67,24 @@ specifically: - atomic configuration rollbacks; - real programming language to define configurations; - user-defined abstractions (create your own functions or NixOS modules on top of SHB!); -- integration with the rest of nixpkgs. +- integration with the rest of nixpkgs; +- much fewer "works on my machine" type of issues. In no particular order, here are some aspects of SHB which I find interesting and differentiates it from other server management projects: - SHB intends to be a library, not a framework. You can either go all in and use SHB provided services directly or use just one block in your existing infrastructure. -- SHB introduces contracts to allow you to swap implementation for each self-hosting need. - For example, you should be able to use the reverse proxy you want without modifying any services - depending on it. +- SHB introduces [contracts](https://shb.skarabox.com/contracts.html) to allow you to swap + implementation for each self-hosting need. For example, you should be able to use the reverse + proxy you want without modifying any services depending on it. - SHB contracts also allows you to use your own custom implementation instead of the provided one, as long as it follows the contract and passes the tests. -- SHB provides at least one implementation for each self-hosting need like backups, SSL - certificates, reverse proxy, VPN, etc. Those are called blocks here. They are documented in [the +- SHB provides at least one implementation for each contract like backups, SSL certificates, reverse + proxy, VPN, etc. Those are called blocks here and are documented in [the manual](https://shb.skarabox.com/blocks.html). +- SHB provides several services out of the box fully using the blocks provided. Those can also be + found in [the manual](https://shb.skarabox.com/services.html). - SHB follows nixpkgs unstable branch closely. There is a GitHub action running daily that updates the `nixpkgs` input in the root `flakes.nix`, runs the tests and merges a PR with the new input if the tests pass. @@ -82,9 +93,9 @@ from other server management projects: The manual can be found at [shb.skarabox.com](https://shb.skarabox.com/). -Currently, only some services and blocks are documented. For the rest, unfortunately the source code -is the best place to read about them. [Here](./modules/services) for services and -[here](./modules/blocks) for blocks. +Work is in progress to document everything in the manual but I'm not there yet. For what's not yet +documented, unfortunately the source code is the best place to read about them. +[Here](./modules/services) for services and [here](./modules/blocks) for blocks. ## Roadmap @@ -95,9 +106,11 @@ contracts. Upstreaming changes is also on the roadmap. -Check [the issues](https://github.com/ibizaman/selfhostblocks/issues) to see planned works. +Check [the issues](https://github.com/ibizaman/selfhostblocks/issues) to see planned works. Feel +free to add more! -That being said, I am personally using all the blocks and services in this project, so they do work. +That being said, I am personally using all the blocks and services in this project, so they do work +to some extent. ## Available Blocks diff --git a/docs/assets/contracts_after.png b/docs/assets/contracts_after.png new file mode 100644 index 0000000000000000000000000000000000000000..3b23bb2bcf30a5e8acc806cc1ae86244d474e68f GIT binary patch literal 70222 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 literal 0 HcmV?d00001 diff --git a/docs/assets/contracts_before.png b/docs/assets/contracts_before.png new file mode 100644 index 0000000000000000000000000000000000000000..7a39a38bbc1b7377661055de520ba068b17c01f8 GIT binary patch literal 42074 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 YX6t|F+-Xf?83g=ks_H.enable` +- `services..package` +- `services..openFirewall` +- `services..user` +- `services..group` + +What makes those nearly contracts are: + +- Pretty much every service provides them. +- Users of a service expects them to exist and expects a consistent type and behavior from them. + Indeed, everyone knows what happens if you set `enable = true`. +- Maintainers of a service knows that users expects those options. They also know what behavior the + user expects when setting those options. +- The name of the options is the same everywhere. + +The only thing missing to make these explicit contracts is, well, the contracts themselves. +Currently, they are conventions and not contracts. diff --git a/docs/default.nix b/docs/default.nix index c2df40d..b1af2d6 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -144,6 +144,11 @@ in stdenv.mkDerivation { '@OPTIONS_JSON@' \ ${individualModuleOptionsDocs ../modules/services/nextcloud-server.nix}/share/doc/nixos/options.json + substituteInPlace ./modules/contracts/ssl/docs/default.md \ + --replace \ + '@OPTIONS_JSON@' \ + ${individualModuleOptionsDocs ../modules/contracts/ssl/dummyModule.nix}/share/doc/nixos/options.json + find . -name "*.md" -print0 | \ while IFS= read -r -d ''' f; do substituteInPlace "''${f}" \ diff --git a/docs/manual.md b/docs/manual.md index 869f26f..08a9bb3 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -15,6 +15,10 @@ usage.md services.md ``` +```{=include=} chapters html:into-file=//contracts.html +contracts.md +``` + ```{=include=} chapters html:into-file=//blocks.html blocks.md ``` diff --git a/flake.nix b/flake.nix index 3c82ff2..cdb503b 100644 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,11 @@ modules/services/nextcloud-server.nix modules/services/vaultwarden.nix ]; + + # Only used for documentation. + contractDummyModules = [ + modules/contracts/ssl/dummyModule.nix + ]; in { nixosModules.default = { config, ... }: { @@ -56,7 +61,8 @@ }; packages.manualHtml = pkgs.callPackage ./docs { - inherit allModules nmdsrc; + inherit nmdsrc; + allModules = allModules ++ contractDummyModules; release = "0.0.1"; }; diff --git a/modules/blocks/monitoring/docs/default.md b/modules/blocks/monitoring/docs/default.md index 52a4c34..17240e7 100644 --- a/modules/blocks/monitoring/docs/default.md +++ b/modules/blocks/monitoring/docs/default.md @@ -92,7 +92,7 @@ Self Host Blocks will create automatically the following resources: Those resources are namespaced as appropriate under the Self Host Blocks namespace: -[](./assets/folder.png) +![](./assets/folder.png) ## Errors Dashboard {#blocks-monitoring-error-dashboard} diff --git a/modules/blocks/ssl.nix b/modules/blocks/ssl.nix index b667138..ea88024 100644 --- a/modules/blocks/ssl.nix +++ b/modules/blocks/ssl.nix @@ -32,7 +32,7 @@ in description = '' Paths where CA certs will be located. - This option is the contract output of the `shb.certs.cas` SSL block. + This option implements the SSL Generator contract. ''; type = contracts.ssl.certs-paths; default = rec { @@ -42,7 +42,11 @@ in }; systemdService = lib.mkOption { - description = "Systemd oneshot service used to generate the certs."; + description = '' + Systemd oneshot service used to generate the certs. + + This option implements the SSL Generator contract. + ''; type = lib.types.str; default = "shb-certs-ca-${config._module.args.name}.service"; }; @@ -100,7 +104,7 @@ in description = '' Paths where certs will be located. - This option is the contract output of the `shb.certs.certs` SSL block. + This option implements the SSL Generator contract. ''; type = contracts.ssl.certs-paths; default = rec { @@ -110,7 +114,11 @@ in }; systemdService = lib.mkOption { - description = "Systemd oneshot service used to generate the certs."; + description = '' + Systemd oneshot service used to generate the certs. + + This option implements the SSL Generator contract. + ''; type = lib.types.str; default = "shb-certs-cert-selfsigned-${config._module.args.name}.service"; }; @@ -159,7 +167,7 @@ in description = '' Paths where certs will be located. - This option is the contract output of the `shb.certs.certs` SSL block. + This option implements the SSL Generator contract. ''; type = contracts.ssl.certs-paths; default = { @@ -178,7 +186,11 @@ in }; systemdService = lib.mkOption { - description = "Systemd oneshot service used to generate the certs."; + description = '' + Systemd oneshot service used to generate the certs. + + This option implements the SSL Generator contract. + ''; type = lib.types.str; default = "shb-certs-cert-letsencrypt-${config._module.args.name}.service"; }; diff --git a/modules/blocks/ssl/docs/default.md b/modules/blocks/ssl/docs/default.md index 1e9784c..68090a8 100644 --- a/modules/blocks/ssl/docs/default.md +++ b/modules/blocks/ssl/docs/default.md @@ -1,6 +1,6 @@ -# SSL Block {#ssl-block} +# SSL Generator Block {#ssl-block} -This NixOS module is a block that provides a contract to generate TLS certificates. +This NixOS module is a block that implements the [SSL certificate generator](contracts-ssl.html) contract. It is implemented by: - [`shb.certs.cas.selfsigned`][10] and [`shb.certs.certs.selfsigned`][11]: Generates self-signed certificates, @@ -14,27 +14,7 @@ It is implemented by: [11]: blocks-ssl.html#blocks-ssl-options-shb.certs.certs.selfsigned [12]: blocks-ssl.html#blocks-ssl-options-shb.certs.certs.letsencrypt -## Contract {#ssl-block-contract} - -The contract for this block is defined in [`/modules/contracts/ssl.nix`](@REPO@/modules/contracts/ssl.nix). - -Every module implementing this contract provides the following options: - -- `domain`: Domain to generate the certificate for. -- `extraDomains`: Other domains the certificate should be generated for. -- `group`: The unix group owning this certificate. -- `reloadServices`: Systemd services to reload when the certificate gets renewed. -- `paths.cert`: Path to the cert file. -- `paths.key`: Path to the key file. -- `systemdService`: Systemd oneshot service used to generate the certificate. - The Systemd service file name must include the `.service` suffix. Downstream users of the - certificate can use this option to wait for the certificate to be generated. - -## Implementations {#ssl-block-impl} - -This sections explains how to generate certificates using the SSL block implementations. - -### Self-Signed Certificates {#ssl-block-impl-self-signed} +## Self-Signed Certificates {#ssl-block-impl-self-signed} Defined in [`/modules/blocks/ssl.nix`](@REPO@/modules/blocks/ssl.nix). @@ -72,7 +52,7 @@ shb.certs.certs.selfsigned = { The group has been chosen to be `nginx` to be consistent with the examples further down in this document. -### Let's Encrypt {#ssl-block-impl-lets-encrypt} +## Let's Encrypt {#ssl-block-impl-lets-encrypt} Defined in [`/modules/blocks/ssl.nix`](@REPO@/modules/blocks/ssl.nix). @@ -109,6 +89,7 @@ where the certificate and the private key are located: ```nix config.shb.certs.certs...paths.cert config.shb.certs.certs...paths.key +config.shb.certs.certs...systemdService ``` For example: @@ -116,50 +97,27 @@ For example: ```nix config.shb.certs.certs.selfsigned."example.com".paths.cert config.shb.certs.certs.selfsigned."example.com".paths.key -``` -We can then configure Nginx to use those certificates: - -```nix -services.nginx.virtualHosts."example.com" = - let - cert = config.shb.certs.certs.selfsigned."example.com"; - in - { - onlySSL = true; - sslCertificate = cert.paths.cert; - sslCertificateKey = cert.paths.key; - - locations."/".extraConfig = '' - add_header Content-Type text/plain; - return 200 'It works!'; - ''; - }; +config.shb.certs.certs.selfsigned."example.com".systemdService ``` -To make sure the Nginx webserver can find the generated file, we will make it wait for the -certificate to the generated: - -```nix -systemd.services.nginx = { - after = [ config.shb.certs.certs.selfsigned."example.com".systemdService ]; - requires = [ config.shb.certs.certs.selfsigned."example.com".systemdService ]; -}; -``` - -If needed, we can also wait on the CA bundle to be generated by waiting for the Systemd service: +The full CA bundle is generated by the following Systemd service, running after each individual +generator finished: ```nix config.shb.certs.systemdService ``` +See also the [SSL certificate generator usage](contracts-ssl.html#ssl-contract-usage) for a more detailed usage +example. + ## Debug {#ssl-block-debug} -Each CA and Cert is generated by a systemd service whose name can be seen in `systemdService` -options below. You can then see the latest errors messages using `journalctl`. +Each CA and Cert is generated by a systemd service whose name can be seen in the `systemdService` +option. You can then see the latest errors messages using `journalctl`. ## Tests {#ssl-block-tests} -This block is tested in [`/tests/vm/ssl.nix`](@REPO@/tests/vm/ssl.nix). +The self-signed implementation is tested in [`/tests/vm/ssl.nix`](@REPO@/tests/vm/ssl.nix). ## Options Reference {#ssl-block-options} diff --git a/modules/contracts/ssl.nix b/modules/contracts/ssl.nix index 7bbdb4a..33e2da6 100644 --- a/modules/contracts/ssl.nix +++ b/modules/contracts/ssl.nix @@ -1,4 +1,4 @@ -{ lib }: +{ lib, ... }: rec { certs-paths = lib.types.submodule { freeformType = lib.types.anything; @@ -28,8 +28,14 @@ rec { }; systemdService = lib.mkOption { - description = "Systemd oneshot service used to generate the CA."; + description = '' + Systemd oneshot service used to generate the CA. Ends with the `.service` suffix. + + Use this if downstream services must wait for the certificates to be generated before + starting. + ''; type = lib.types.str; + example = "ca-generator.service"; }; }; }; @@ -48,10 +54,13 @@ rec { systemdService = lib.mkOption { description = '' - Systemd oneshot service used to generate the certificate. The name must include the - `.service` suffix. + Systemd oneshot service used to generate the certificate. Ends with the `.service` suffix. + + Use this if downstream services must wait for the certificates to be generated before + starting. ''; type = lib.types.str; + example = "cert-generator.service"; }; }; }; diff --git a/modules/contracts/ssl/docs/default.md b/modules/contracts/ssl/docs/default.md new file mode 100644 index 0000000..db30337 --- /dev/null +++ b/modules/contracts/ssl/docs/default.md @@ -0,0 +1,119 @@ +# SSL Generator Contract {#ssl-contract} + +This NixOS contract represents an SSL certificate generator. This contract is used to decouple +generating an SSL certificate from using it. In practice, you can swap generators without updating +modules depending on it. + +## Contract Reference {#ssl-contract-options} + +These are all the options that are expected to exist for this contract to be respected. + +```{=include=} options +id-prefix: contracts-ssl-options- +list-id: selfhostblocks-options +source: @OPTIONS_JSON@ +``` + +## Usage {#ssl-contract-usage} + +Let's assume a module implementing this contract is available under the `ssl` variable: + +```nix +let + ssl = <...>; +in +``` + +To use this module, we can reference the path where the certificate and the private key are located with: + +```nix +ssl.paths.cert +ssl.paths.key +``` + +We can then configure Nginx to use those certificates: + +```nix +services.nginx.virtualHosts."example.com" = { + onlySSL = true; + sslCertificate = ssl.paths.cert; + sslCertificateKey = ssl.paths.key; + + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It works!'; + ''; +}; +``` + +To make sure the Nginx webserver can find the generated file, we will make it wait for the +certificate to the generated: + +```nix +systemd.services.nginx = { + after = [ ssl.systemdService ]; + requires = [ ssl.systemdService ]; +}; +``` + +## Provided Implementations {#ssl-contract-impl-shb} + +Multiple implementation are provided out of the box at [SSL block](blocks-ssl.html). + +## Custom Implementation {#ssl-contract-impl-custom} + +To implement this contract, you must create a module that respects this contract. The following +snippet shows an example. + +```nix +{ lib, ... }: +{ + options.my.generator = { + paths = lib.mkOption { + description = '' + Paths where certs will be located. + + This option implements the SSL Generator contract. + ''; + type = contracts.ssl.certs-paths; + default = { + key = "/var/lib/my_generator/key.pem"; + cert = "/var/lib/my_generator/cert.pem"; + }; + }; + + systemdService = lib.mkOption { + description = '' + Systemd oneshot service used to generate the certs. + + This option implements the SSL Generator contract. + ''; + type = lib.types.str; + default = "my-generator.service"; + }; + + # Other options needed for this implementation + }; + + config = { + # custom implementation goes here + }; +} +``` + +You can then create an instance of this generator: + +```nix +{ + my.generator = ...; +} +``` + +And use it whenever a module expects something implementing this SSL generator contract: + +```nix +{ config, ... }: +{ + my.service.ssl = config.my.generator; +} +``` diff --git a/modules/contracts/ssl/dummyModule.nix b/modules/contracts/ssl/dummyModule.nix new file mode 100644 index 0000000..f78912e --- /dev/null +++ b/modules/contracts/ssl/dummyModule.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, ... }: +let + contracts = pkgs.callPackage ../. {}; +in +{ + options.shb.contracts.ssl = lib.mkOption { + description = "Contract for SSL Certificate generator."; + type = contracts.ssl.certs; + }; +}