Skip to content

Linux homelab (dpl)

Host dpl is a homelab box: never-sleep, auto-login, coding-agent handoff, extra disks.

DiskSizeUse
Samsung 860 EVO (/)1 TBOS, $HOME configs, dotfiles
Samsung 970 EVO Plus NVMe2 TBhot /media/ubuntu/work (~/work): git/<org>, docker/data
WD Volume A16 TB~/archive datasets/media
WD Volume B16 TB~/backup snapshots of the lab

Git is ~/work/git/{cnb,crashchat,ab-spectrum,bhcoe,dpl,nlb,personal}. Worktrees sit next to the clone (.worktrees/). Docker images/volumes/json-logs: ~/work/docker/data after the sudo root script.

Managed home repos (same layout as Mac): ~/dotfiles, ~/skills, ~/firstmate. Hourly git-sync-repos keeps them on origin/main without discarding WIP. Vault stays at ~/git/personal/vault.

Curated work clones get a fetch-only refresh every 2h via git-fetch-repos (never checkout/merge) when ~/.config/git-fetch-repos/repos lists them (see repos.example; no built-in defaults). Entering a git repo also runs a debounced git-fetch-cwd from the shell hook.

On either host, from this repo:

Terminal window
make ensure-home-repos # clone/migrate ~/firstmate
make stow-install # also runs ensure-home-repos after stow

Mac: launchd dev.vanducng.git-sync-repos (hourly merge-safe sync) and dev.vanducng.git-fetch-repos (2h fetch-only). Linux: git-sync-repos.timer and git-fetch-repos.timer. Sync units call ensure-home-managed-repos first.

Terminal window
make linux-homelab

Mounts disks via udisks, inhibits sleep, starts sshd on :2222, clones last-30-day repos onto the NVMe.

Terminal window
sudo -E ~/.dotfiles/scripts/linux-homelab-root.sh
sudo tailscale up --hostname=linux01 --accept-dns=false

That installs sshd :22, docker (data-root on NVMe), tailscale, fstab, and masks suspend. Leave Tailscale SSH off so Moshi key auth reaches OpenSSH on :2222. Prefer the tailnet over forwarding :22 to the WAN.

LAN IP: 192.168.1.193 (set as NetworkManager manual). Reserve it on the router.

GDM already auto-logs in ubuntu; linger is on so herdr-server and moshi-hook come back after reboot.

User-space, no sudo:

WhatWhereHow
SSH:2222 pubkeyssh -p 2222 ubuntu@192.168.1.193
ScreenGNOME RDP :3389Microsoft Remote Desktop on the LAN, or 127.0.0.1:13389 via SSH forward
Chrome CDP127.0.0.1:9222 onlyssh dpl then agent-browser connect 9222 on the Mac
Off-LANKernel Tailscale TUNdpl-remote status; Moshi host = tailscale ip -4. Userspace daemon stays off.

Do not port-forward 3389 or 9222. IPv4 WAN is NAT; IPv6 may already reach :2222 if the ISP leaves inbound open. Details: ~/.config/homelab/REMOTE.md and dpl-remote status.