| created | 2026-01-18 | ||||
|---|---|---|---|---|---|
| tags |
|
||||
| aliases |
|
Guide to installing and bootstrapping a fresh Ubuntu server with the Homelab configuration.
Sets up:
- systemd-networkd for networking
- Tailscale for secure remote access
- Docker and Docker Compose
- Dotfiles via GNU Stow
- SSH hardening
- Ubuntu Server 22.04+ (minimal install recommended)
- Internet connection (USB tethering supported)
- SSH access or physical console
sudo apt update && sudo apt install -y git curlImportant: The production location must be
/opt/Homelab
sudo mkdir -p /opt
sudo chown $USER:$USER /opt
git clone https://github.com/YOUR_USERNAME/Homelab.git /opt/Homelab
cd /opt/HomelabBootstrap runs all phases automatically:
./cli/homelab.sh bootstrapThis executes:
| Phase | Description |
|---|---|
| 1. Packages | Install base system packages |
| 2. Network | Configure systemd-networkd |
| 3. SSH | Harden SSH configuration |
| 4. Tailscale | Install and configure Tailscale VPN |
| 5. Dotfiles | Stow bash and vim configurations |
| 6. Vim | Copy vim config to root user |
| 7. CLI | Install homelab command globally |
| 8. Docker | Install Docker and Docker Compose |
| 9. Verify | Run verification checks |
homelab helpCheck dotfiles:
ls -la ~/.bashrc ~/.config/bash/exec bashAfter bootstrap completes, optionally install monitoring:
homelab install observabilityFollow the prompts to configure Grafana password and email alerts.
See Observability Documentation for full setup guide.
Bootstrap logs are stored at:
~/.local/state/homelab/bootstrap.log
View logs:
cat ~/.local/state/homelab/bootstrap.log| Path | Purpose |
|---|---|
/opt/Homelab |
Main repository (production) |
~/.config/bash/ |
Bash configuration (symlinked) |
~/.local/state/homelab/ |
Runtime logs |
~/.dotfiles_backup/ |
Backup of replaced files |
If stow reports conflicts:
rm -f ~/.bashrc
rm -rf ~/.config/bash
./cli/homelab.sh dotfiles restowBootstrap is idempotent. Re-run safely with:
./cli/homelab.sh bootstrap