nixfiles/guides/HETZNERVM_RESTORE_GUIDE.md

73 lines
2.1 KiB
Markdown
Raw Normal View History

2022-08-04 21:53:51 +01:00
# ok so you fucked up, what next,
## Step 1
Either create a new VM or if still have access, go to ISOs and put in nixos 22.05 iso and reboot server.
If create new vm, please change DNS and update IPs in the main nix config and this document (v6) and set rhost
## Step 2
Use console to set ssh password.
SSH in `ssh root@hetzner-vm.servers.genderfucked.monster`
Add ssh key `echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeN3T1aZkTm5xS0b66cRDyKUbdEQCFyzVWXeW+eIbsa chaos@chaos" >> /root/.ssh/authorized_keys`
## Step 3
Install NixOS.
```
parted -s "/dev/sda" -- mklabel msdos
parted -s "/dev/sda" -- mkpart primary 512MiB 100%
parted -s "/dev/sda" -- print
mkfs.ext4 /dev/sda1
mount /dev/sda1 /mnt
nixos-generate-config --root /mnt
```
Edit configuration.nix and replace with
```nix
{ config, pkgs, ... }:
{
imports = [ ./hardware-configuration.nix ];
users.users.root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeN3T1aZkTm5xS0b66cRDyKUbdEQCFyzVWXeW+eIbsa chaos@chaos"
];
};
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.initrd.kernelModules = [ "nvme" ];
services.openssh.enable = true;
networking.enableIPv6 = true;
networking.usePredictableInterfaceNames = false;
networking.dhcpcd.enable = true;
systemd.network = {
enable = true;
networks.eth0 = {
name = "eth0";
address = [ "2a01:4f9:c010:8beb::1/64" ];
gateway = [ "fe80::1" ];
};
};
system.stateVersion = "21.11";
}
```
Then run `nixos-install` and reboot if successful.
## Step 4
Redeploy with `deploy -s .#hetzner-vm --magic-rollback=false --auto-rollback=false --ssh-user root`
## Step 5
Restore using restic.
`B2_ACCOUNT_ID=id B2_ACCOUNT_KEY=key RESTIC_REPOSITORY=b2:Chaos-Backups:HetznerVM restic restore latest`
## Step 6
re-connect to tailscale `tailscale up` and redo dns
## Step 7
Restore Postgres `cat /var/backup/postgresql/all.sql.zstd | zstd -d | sudo -u postgres psql`
## Step 8
Restore music, either via `mkdir -p /storage/music && env B2_ACCOUNT_ID=id B2_ACCOUNT_KEY=key RESTIC_REPOSITORY=b2:Chaos-Backups:Music restic restore latest --target /storage/music` or ./sync.sh on laptop.