After upgrading my homelab with a new HP 800 G2 to run production Docker containers, I migrate my existing VM from an old Proxmox host to the new one. I walk through backing up the VM to a single file, transferring the backup between servers via FileZilla, and restoring it, with everything working after just nine minutes of downtime...
I walk through setting up Uptime Kuma, a self-hosted monitoring tool, in a Docker container to watch network devices and web services, with notifications pushed to a phone via NTFY. I cover basic monitor types like ping and HTTP checks, how NTFY’s topic-based subscriptions work, and the security trade-offs of its open public topics...
I walk through moving a server from password-based SSH logins to key-based authentication as a defence against brute force attacks. I cover generating an SSH key pair on a Mac, installing the public key on the target machine with ssh-copy-id, and disabling password authentication on Ubuntu 22 by adding PasswordAuthentication no to a config file in sshd_config.d and reloading the ssh daemon. I also note console login still works if something goes wrong...
How I got Chrome to offer saving the Proxmox root password, which it won’t do while the web UI’s self-signed certificate is untrusted. I cover grabbing the Proxmox root CA, importing it into the macOS Keychain and trusting it, allowing insecure content for the site, and clearing the cache to finally get the save prompt...
A copy of the system sudoers file that I placed into /etc/sudoers.d created an infinite include loop that broke sudo, and with no root login the VM seemed locked out. The qemu guest agent I covered in the previous post, accessed through Proxmox, provided a way to edit the protected file and undo the mistake...
I walk through installing and enabling the Qemu Guest Agent in an Ubuntu Server VM under Proxmox, including the gotcha that the agent should be activated by enabling the option in Proxmox and shutting down the VM, not by running systemctl or rebooting. I also cover verifying the agent from both the guest and host sides, and note the security trade-off that anyone with Proxmox access can run commands as root inside VMs running the daemon...
When a rebuilt or cloned virtual machine reuses the IP address of a previously connected host, SSH rejects the connection with a “remote host identification has changed” warning. I explain why SSH behaves this way and show how to remove the stale entry from the known_hosts file using ssh-keygen -R so the host can be connected to again...
A step-by-step walkthrough of creating my first virtual machine in Proxmox 7.3, using Ubuntu Server as the example guest OS. I cover uploading an ISO to local storage, working through the Create VM wizard’s choices for VM ID, name, disk size, CPU cores, and memory, then starting the VM and installing the operating system via the console...
After trying to run a docker command on a new home server and hitting the “user is not in the sudoers file” error, I look up the incident report in the journalctl logs, then explain how to properly gain sudo access. Instead of hand-editing /etc/sudoers, I add my user to the sudo group with usermod, covering why visudo exists and why I prefer sudo over logging in as root...