47 lines
No EOL
1.5 KiB
Bash
Executable file
47 lines
No EOL
1.5 KiB
Bash
Executable file
#!env /bin/bash
|
|
# First setup:
|
|
|
|
user=albert
|
|
read -p "Hostname: " hostname;
|
|
|
|
# run as root:
|
|
# eIf on the raspberry pi image:
|
|
# sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
|
|
# sudo nix-channel --update
|
|
sudo nix-shell -p git --run git clone https://git.sysctl.io/albert/nix /etc/nixos/git
|
|
sudo git clone https://git.sysctl.io/albert/nix /etc/nixos/git
|
|
sudo ln -s /etc/nixos/git/flake.nix /etc/nixos/flake.nix
|
|
sudo chown -R $user:root /etc/nixos/git
|
|
sudo nixos-rebuild switch --flake '/etc/nixos#$host'
|
|
sudo mkdir /nix/var/nix/profiles/per-user/$user
|
|
echo "Host setup complete."
|
|
|
|
# as $user:
|
|
home-manager switch -b backup --flake /etc/nixos/git
|
|
source ~/.bashrc
|
|
|
|
# Import and trust the GPG key
|
|
read -p "Path to GPG Private Key: " gpgKey
|
|
gpg --import $gpgKey
|
|
echo -e "5\ny\n" | gpg --command-fd 0 --expert --edit-key 64F6C4EB46C4543A trust
|
|
|
|
# Setup SOPS
|
|
sudo nix-shell -p ssh-to-pgp --run "ssh-to-pgp -i /etc/ssh/ssh_host_rsa_key -o /etc/nixos/git/keys/hosts/$(hostname).asc"
|
|
# Update your .sops.yaml with this key
|
|
cd /etc/nixos/git
|
|
nix-shell
|
|
sops-update secrets/secrets.yaml
|
|
|
|
# Set up ssh keys
|
|
ssh-keygen -t rsa -b 8192 -f ~/.ssh/id_rsa -N ""
|
|
echo "" >> /etc/nixos/git/keys/ssh/keys.txt
|
|
echo "# `whoami`@`hostname`" >> /etc/nixos/git/keys/ssh/keys.txt
|
|
cat /home/albert/.ssh/id_rsa.pub >> /etc/nixos/git/keys/ssh/keys.txt
|
|
|
|
|
|
# Add all changes to git and and push
|
|
git add keys/hosts/`hostname`.asc
|
|
git commit -am "Setup of: `whoami`@`hostname`"
|
|
git push
|
|
|
|
echo "Complete. Reboot to complete the config" |