# VPS See the online [tasks and bug tracker](tasks-and-bugs.html). ## Workflow ### Re-creating everything from scratch ```shell ./shell.sh git crypt unlock direnv allow ./terraform-apply.sh ./guix-reconfigure.sh ``` ### After an update on `vps.tf` Same as above. ### After editing `sync/vps.scm` or other OS files Just run the `./guix-reconfigure.sh` script. ## "base-guix-image" The base `sync/vps.scm` file in the current snapshot (snapshot ID 5c35fb3a74873) is: ```scheme (use-modules (gnu)) (use-service-modules networking ssh) (use-package-modules ssh) (define ssh-public-key "ssh-rsa ...") (define sudoers "\ root ALL=(ALL) ALL %wheel ALL=NOPASSWD: ALL\n") (operating-system (locale "fr_FR.UTF-8") (timezone "America/Sao_Paulo") (keyboard-layout (keyboard-layout "us")) (host-name "guix-pet-server") (users (cons* (user-account (name "andreh") (group "users") (home-directory "/home/andreh") (supplementary-groups '("wheel"))) %base-user-accounts)) (sudoers-file (plain-file "sudoers" sudoers)) (packages (append (map specification->package '("nss-certs" "rsync")) %base-packages)) (services (append (list (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (password-authentication? #false) (authorized-keys `(("andreh" ,(plain-file "id_rsa.pub" ssh-public-key)))))) (service dhcp-client-service-type)) %base-services)) (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/vda") (keyboard-layout keyboard-layout))) (swap-devices (list (uuid "79a91c82-f3e1-4ed7-8c4e-23569f1ae0ca"))) (file-systems (cons* (file-system (mount-point "/") (device (uuid "fddb6a4c-8b8c-4f57-b274-5d6d33200f28" 'ext4)) (type "ext4")) %base-file-systems))) ``` This basic setup allows it to boot, starts the OpenSSH server agent and allows the listed `ssh-public-key` to login, and commands from the "andreh" user can run `sudo` without password.