# malobeo infrastructure this repository contains nixos configurations of the digital malobeo infrastructure. it should be used to setup, test, build and deploy different hosts in a reproducible manner. ### deploying configuration hosts are deployed automatically from master. The [hydra build server](https://hydra.dynamicdiscord.de/jobset/malobeo/infrastructure) will build new commits and on success, hosts will periodically pull those changes. Big changes (like updating flake lock) could be commited to the staging branch first. [Hydra builds staging seperate](https://hydra.dynamicdiscord.de/jobset/malobeo/staging), and on success you can merge into master. ### deploy fresh host if you want to deploy a completly new host refer to [docs](https://docs.malobeo.org/anleitung/create.html) ### testing configuration refer to https://docs.malobeo.org/anleitung/microvm.html#testing-microvms-locally ## development ### requirements we use flake based configurations for our hosts. if you want to build configurations on you own machine you have to enable flakes first by adding the following to your *configuration.nix* or *nix.conf* ``` nix nix.extraOptions = '' experimental-features = nix-command flakes ''; ``` More information about flakes can be found [here](https://nixos.wiki/wiki/Flakes) ### dev shell a development shell with the correct environment can be created by running ```nix develop ``` If you're using direnv you can add flake support by following those steps: [link](https://nixos.wiki/wiki/Flakes#Direnv_integration) ### build a configuration to build a configuration run the following command (replace `````` with the actual hostname): ``` shell nix build .#nixosConfigurations..config.system.build.toplevel ``` ### documentation documentation is automatically build from master and can be found here: docs.malobeo.org locally you can run documentation using ```nix run .#docs``` or ```nix run .#docsDev```