# Serverraum-mit-Matratze Infrastructure [](LICENSE) [](https://github.com/RichardLitt/standard-readme) This is the Infrastructure Code for the "Serverraum mit Matratze" shared apartment. ## Table of Contents - [Dependencies](#dependencies) - [Updating Configuration](#updating-configuration) - [Hosts](#hosts) - [License](#license) ## Dependencies To remotely Deploy Nix-Servers with Native Tools, you will need Access to the nixos-rebuild command. You can either use a NixOS System. Or you can Install the [Nix Package Manager](https://nixos.org/download/) and open a Nix-Shell with the Command available: ``` bash nix-shell -p '(nixos{}).nixos-rebuild' ``` ## Updating Configuration So, you updated the Configuration on your Computer, how can you apply the Updated Config to the Server? You'll need SSH-Access to the Server, with a User which can run Nix-Commands, and can escalate Privileges using sudo. 1. Don't forget to Configure your ssh Config! (See [Hosts](#hosts)) 2. Stage the Changes if you created or deleted Files `git add .` (They will be ignored if you miss this step!) 3. Build and Switch the Config on the Target Server! (Example [mow0m](#mow0m) ``` bash nixos-rebuild switch --flake .#mow0m --target-host master@mow0m --build-host master@mow0m --use-remote-sudo ``` You want to keep the Build-Host the Same as the Target-Host, because the Target will only accept Binarys with a trusted Signature. It is way easier, to just run the Build on the Same Machine then. ## Hosts ### mow0m [Configuration](./systems/x86_64-linux/mow0m)
User | master@mow0m |
Cpu | Intel(R) Core(TM) i5-6400 (4) @ 3.30 GHz |
Ram | 32GB |
Build | nixos-rebuild switch --flake .#mow0m --target-host master@mow0m --build-host master@mow0m --use-remote-sudo |
SSH Config |
Host mow0m
HostName mow0m.lan
User master
Port 9553
IdentityFile ~/.ssh/master@mow0m |