This post serves as an informal playbook to deploy a new machine in my homelab.
1. OS
- Download a Debian live install image (as I remember the traditional installer being a pain last time) on another machine
- Create a live disk (e.g. using Ubuntu’s Startup Disk Creator)
- Inserted the live disk into the new machine and followed the installation prompts
2. System Configurations (Static IP Address)
- Disable IPv6
- Disable DHCP
- Set a static IP and gateway
nmcli con mod <connection-name> ipv6.method "disabled" # disable IPv6
nmcli con mod <connection-name> ipv4.method "manual" # disable DHCP
nmcli con mod <connection-name> ipv4.address <static-ip-address> # set static IP
nmcli con mod <connection-name> ipv4.gateway <gateway-ip-address> # set gateway IP
nmcli con up <connection-name> # restart connection with new changes3. System Services
3.1. SSH Server
- Install a SSH server (to access the machine remotely)
sudo apt install openssh-server3.2. Fail2Ban
- Install Fail2Ban (to rate-limit access attempts via SSH)
sudo apt install fail2ban3.3. Cockpit
sudo apt install cockpit cockpit-storaged cockpit-networkmanager cockpit-podman3.4. Podman Compose
- Install Podman Compose
sudo apt install podman-compose3.5. iptables-persistent
- Install
iptables-persistent(to persistiptablesrules after system restarts)
sudo apt install iptables-persistent