* NixOS Server

 Configuration files for my personal server, powered by [[https://nixos.org/][NixOS]].

** Modules

 The configuration is sliced into different files, per category:

 - ZFS pool configuration: hardware-configuration.nix
 - Network configuration: networking.nix
 - Synchronization and backup services: datasync.nix
 - Web services and reverse proxy: webstack.nix
 - Development tools: devops.nix
 - Smartd: monitoring.nix
 - Systemd services and timers: periodic.nix
 - Curated articles: information.nix

 All the modules are imported in *configuration.nix*

** Installation

1. Download the sdcard image
2. Connect a keyboard to the Raspberry Pi and set the password

#+begin_src shell
passwd
sudo su
passwd
#+end_src

The default user is nixos

3. Move the repo to the server and the agenix key

#+begin_src shell
scp -R Projects/zion zion:/home/nixos/system
scp .ssh/zion root@zion:/etc/ssh/id_ed25519
#+end_src

4. Increase the size of tmpfs

#+begin_src shell
sudo mount -o remount,size=4G /run/user/0
sudo mount -o remount,size=2G /run/user/1000
#+end_src

5. Rebuild the system using Flakes

#+begin_src shell
nix-shell -p git
sudo nixos-rebuild switch --flake /home/nixos/system#zion --impure
#+end_src

6. Restore the SQL databases

#+begin_src shell
psql -U postgres -f /vault/backups/zion/databases/all.sql
#+end_src