diff options
| author | Franck Cuny <franck@fcuny.net> | 2025-11-23 08:45:51 -0800 |
|---|---|---|
| committer | Franck Cuny <franck@fcuny.net> | 2025-11-23 08:45:51 -0800 |
| commit | b06f459e9a2da4facb42e2680d30e26bae0d37d8 (patch) | |
| tree | cf478a5a3cf3143526b7c6bae1c6b03128bc8b07 /docs | |
| parent | configure miniflux and integrate with authelia (diff) | |
| download | infra-b06f459e9a2da4facb42e2680d30e26bae0d37d8.tar.gz | |
simplify the configuration
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/backups.org | 4 | ||||
| -rw-r--r-- | docs/dns.org | 3 | ||||
| -rw-r--r-- | docs/install.org | 41 | ||||
| -rw-r--r-- | docs/network.org | 51 | ||||
| -rw-r--r-- | docs/secrets.org | 17 |
5 files changed, 0 insertions, 116 deletions
diff --git a/docs/backups.org b/docs/backups.org deleted file mode 100644 index d636006..0000000 --- a/docs/backups.org +++ /dev/null @@ -1,4 +0,0 @@ -* General -Backups are managed with =restic= and are stored on the NAS. - -There's a single password for all the repositories, it's managed with =agenix=, and the file is under secrets (=restic_password.age=). diff --git a/docs/dns.org b/docs/dns.org deleted file mode 100644 index f04ec0d..0000000 --- a/docs/dns.org +++ /dev/null @@ -1,3 +0,0 @@ -* Cloudflare -** fcuny.net -To access the console: https://dash.cloudflare.com/2c659eeaf2ae9a0206c589c706b3748e/fcuny.net diff --git a/docs/install.org b/docs/install.org deleted file mode 100644 index b846cd3..0000000 --- a/docs/install.org +++ /dev/null @@ -1,41 +0,0 @@ -#+TITLE: Installation -#+AUTHOR: Franck Cuny -#+EMAIL: franck@fcuny.net - -* Darwin -** =agenix= -Create SSH host keys with =sudo ssh-keygen -A=. - -You then need to add the public key (=/etc/ssh/ssh_host_ed25519_key.pub=) to [[file+emacs:../secrets/secrets.nix][secrets.nix]] and re-key the secrets, running =agenix -i ~/.ssh/agenix -r=. - -You can then validate that they key is encrypted properly with =sudo agenix -i /etc/ssh/ssh_host_ed25519_key -d ssh-remote-builder.age=. -* Virtual machine running on the Synology NAS -** Creating the VM -- chose VGA for the display (otherwise ~systemd-udevd~ gets stuck) -** Install NixOS on the VM -1. Boot to the installer -2. Copy the local configuration to the remote host ~rsync -avz --exclude='.git' --exclude='result' world/ nixos@192.168.1.151:~/world/~ -3. On the VM, from the =world= directory: - 1. Run =sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount nix/machines/vm-synology/disk.nix= - 2. Run =nixos-install --root /mnt/ --flake .#vm-synology= -4. Reboot the VM -* Create the nixos installer -Run -#+begin_src fish -nix build .#nixosConfigurations.iso.config.system.build.isoImage -#+end_src - -Then copy to a USB stick with: -#+begin_src fish -sudo dd if=result/iso/nixos-minimal-25.05git.25e53aa156d-x86_64-linux.iso of=/dev/rdisk5 bs=1M conv=sync status=progress -#+end_src -* Bare metal machine -We can install remotely a machine with =nixos-anywhere=, including full disk encryption. - -First, create a password in 1password for the machine (using the convention "nix/<hostname>/encryption"). Next run the following snippet to create the SSH host key for init boot (this is needed so we can ssh to the host to unlock it). - -#+begin_src fish -set temp (mktemp -d) -ssh-keygen -t ed25519 -N "" -C "initrd-root-ssh" -f "$temp/etc/initrd/ssh_host_ed25519_key" -nix run github:nix-community/nixos-anywhere -- --flake .#rivendell --build-on remote --disk-encryption-keys /tmp/pass (op read "op://Private/vmifhwbjtvaqp3422gfbjxdq2y/password"|psub) --target-host root@192.168.1.112 --extra-files "$temp" -#+end_src diff --git a/docs/network.org b/docs/network.org deleted file mode 100644 index d3801b0..0000000 --- a/docs/network.org +++ /dev/null @@ -1,51 +0,0 @@ -** Wireguard -*** New host -On a host, run the following: -#+begin_src shell -fcuny@vm-synology ~> wg genkey > wireguard -Warning: writing to world accessible file. -Consider setting the umask to 077 and trying again. -fcuny@vm-synology ~> wg pubkey < wireguard > wireguard.pub -fcuny@vm-synology ~> ll -total 12 -drwxr-xr-x 2 fcuny users 4096 Aug 10 14:24 tmp --rw-r--r-- 1 fcuny users 45 Oct 18 10:42 wireguard --rw-r--r-- 1 fcuny users 45 Oct 18 10:42 wireguard.pub -fcuny@vm-synology ~> cat wireguard.pub jf7T7TMKQWSgSXhUplldZDV9G2y2BjMmHIAhg5d26ng= -#+end_src - -Then create the secret in ../secrets/secrets.nix with -#+begin_src shell -agenix -i ~/.ssh/agenix -e <hostname>/wireguard.age -#+end_src - -Then add the following to the host's configuration: -#+begin_src nix -age = { - secrets = { - wireguard = { - file = ../../../../secrets/rivendell/wireguard.age; - }; - }; -}; - -networking.wireguard = { - enable = true; - interfaces.wg0 = { - ips = [ "10.100.0.60/32" ]; - listenPort = 51871; - privateKeyFile = config.age.secrets.wireguard.path; - peers = [ - { - # digital ocean droplet - publicKey = "I+l/sWtfXcdunz2nZ05rlDexGew30ZuDxL0DVTTK318="; - allowedIPs = [ "10.100.0.0/24" ]; - endpoint = "165.232.158.110:51871"; - persistentKeepalive = 25; - } - ]; - }; -}; - -networking.firewall.allowedUDPPorts = [ 51871 ]; -#+end_src diff --git a/docs/secrets.org b/docs/secrets.org deleted file mode 100644 index 10d4e9b..0000000 --- a/docs/secrets.org +++ /dev/null @@ -1,17 +0,0 @@ -* Secrets - -** SSH keys - -Start by synchronizing the SSH key by running `sync-ssh-key` in the repository. - -Then, to create or edit a secret: -#+begin_src - cd (git rev-parse --show-toplevel)/secrets - agenix -i ~/.ssh/agenix -e users/fcuny/llm.age -#+end_src - -And to rekey a secret: -#+begin_src - cd (git rev-parse --show-toplevel)/secrets - agenix -i ~/.ssh/agenix -r -#+end_src |
