From eb655915d0edf4fa54565efba8e80f9689ac866f Mon Sep 17 00:00:00 2001 From: baritone Date: Sun, 30 Mar 2025 23:47:45 +0200 Subject: [PATCH] added readme --- README.md | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c32c38 --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# Server nixos configuration + +This is the configuration running on my homebrew server. +It is perfect in and no other config is in any way shape or form better. + + +# Features + +- Forgejo git instance +- Vaultwarden password manager +- Jellyfin media server + - Sonnar, Radarr, Jackett and transmission auto-torrenting setup in declarative [astro/microvm](https://github.com/astro/microvm.nix) virtual machine behind a VPN. +- ZFS RaidZ (Raid5) for data resilience with automated emails for failed drives +- Self-hosted mail server for sending emails +- Simple file structure for easy extension + + +# How to Install + +## Prepare device + +Install the [nixos boot ISO](https://nixos.org/download/) and run it on your device. +Once booted run + +```sh +$ sudo passwd +$ ip a +``` + +to set a password for the `nix` user and display your ip. +Once done you can ssh into the device and generate a nix hardware config with + +```sh +$ ssh nix@ +$ sudo mkdir /mnt +$ sudo nixos-generate-config --root /mnt --no-filesystem +``` + +This will generate the file `/mnt/hardware-config.nix` that you can then copy to your +computer. + +## Install configuration + +### Prepare repo + +1. Clone the repo +- Copy the `hardware-config.nix` from your device to the repo folder. +- Add/change the device configuration in `flake.nix` + +### Install remotely + +Run the command + +```sh +nix run github:nix-community/nixos-anywhere -- --flake '.#' --target-host nixos@ +``` + +This will automatically install the configuration to your server. + +## Copy configuration to server + +Once the configuration has been installed push your modified repo to a git service and pull it on the server.