# Configuration steps

## 1. Install [NixOS](https://nixos.org/)

Follow the steps from the [NixOS Manual Installation](https://nixos.org/manual/nixos/stable/#sec-installation-manual)

> At the edit configuration.nix step you must:
>
> - Add a user to the configuration file and set a password
> - Enable openssh

## 2. Configuring flake

1. Clone this repository
2. Copy hardware configuration to host<br>
   `cp /etc/nixos/hardware-configuration.nix ~/nix/hosts/<host>/hardware-configuration.nix`
3. Rebuild system
   `sudo nixos-rebuild switch --flake .#<host>`
4. Rebuild home-manager
   `home-manager switch --flake .#<user>@<host>`
5. Reboot

## 3. Configuring docker containers

1. Create proxy network<br>
   `docker network create proxy`

2. Configure [Adguard](./adguard/README.md)
3. Configure [Caddy](./caddy/README.md)
4. Configure [Authelia](./authelia/README.md)
5. Configure the rest of the services

# Services

| Name    | Use            | Domain                        | Auth   |
| ------- | -------------- | ----------------------------- | ------ |
| Adguard | DNS            | https://adguard.timo.bmrs.nl/ | local  |
| Caddy   | Reverse proxy  | -                             | -      |
| Forgejo | Git            | https://git.timo.bmrs.nl/     | Openid |
| Ldap    | User directory | https://ldap.timo.bmrs.nl/    | -      |

# Services to try out

- [Beszel](https://github.com/henrygd/beszel)
