“The best tools are the ones you forget you’re using”
Indice Serie Homelab
Libertà digitale: creare un ecosistema di servizi personali senza dipendere dalle big tech.
- Homelab: Necessità o Capriccio?
- Homelab: Proxmox e Container LXC
- Homelab: Setup Immich
- Homelab: Setup Navidrome
- Homelab: Accesso Remoto Sicuro
- Homelab: Migrazione da iCloud a Immich
- Homelab: Setup AFFiNE
- Homelab: Strategia Backup KISS
- Homelab: Migrazione di Rete e Wireguard
- Homelab: UPS e Network UPS Tools
- Homelab: Da AFFiNE a Obsidian con Syncthing
- Homelab: Container Development con tmux e Claude Code
Il Problema Link to heading
Ogni volta che perdo la connessione o che chiudo un terminale mi trovo con tutte le sessioni
Mi serviva un ambiente di sviluppo che non dipenda dal laptop, magari comandabile da remoto. Ho istanziato un container sul server Proxmox, accessibile via SSH da Mac o telefono, con sessioni che non si interrompono mai. Vediamo come ho configurato tmux.
Container LXC per Development Link to heading
Ho creato un container dedicato su Proxmox. Specifiche:
- CT ID: 108
- Hostname: dev-workspace
- Template: Ubuntu 22.04
- Storage: 50GB su local-lvm
- RAM: 4GB + 2GB swap
- CPU: 4 core
- IP: 192.168.1.216/24
- Features: nesting=1
pct start 108
pct enter 108
Setup Base Link to heading
Ho installato solo l’essenziale:
apt update && apt upgrade -y
apt install -y git curl vim tmux
Node.js con nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm alias default 'lts/*'
npm install -g pnpm yarn @angular/cli
La prassi sarebbe quella di usare un altro utente, ma uso root direttamente. Il server è accessibile solo via VPN Wireguard, quindi non c’è esposizione diretta su Internet e mi sento più sicuro.
SSH Link to heading
Ho installato OpenSSH e modificato la configurazione per permettere login root:
apt install -y openssh-server
systemctl enable ssh
# Modifica config per permettere root login
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart ssh
Sul Mac ho aggiunto un alias in ~/.ssh/config:
Host dev-workspace
HostName 192.168.1.216
User root
ServerAliveInterval 60
Ora mi connetto con ssh dev-workspace.
tmux Link to heading
tmux mantiene le sessioni attive sul server anche quando disconnetto. Configurazione minimale:
echo "set -g history-limit 10000" > ~/.tmux.conf
Comandi base:
tmux new -s dev # Crea sessione
tmux attach -t dev # Riconnetti
Ctrl+a d # Disconnetti (sessione resta attiva)
Ctrl+a c # Nuova finestra
Ctrl+a 0-9 # Switch finestra
Connessione Link to heading
ssh dev-workspace
Se ricevo l’errore “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”, rimuovo la vecchia chiave:
ssh-keygen -R 192.168.1.216
Accesso da Android Link to heading
Ho installato Termux da F-Droid:
pkg update && pkg upgrade
pkg install openssh
Connessione (con Wireguard VPN attivo):
ssh [email protected]
tmux attach -t dev
Termux ha una riga extra con tasti speciali (Ctrl, Alt, ESC). Uso Ctrl+a come prefix tmux.
Claude Code Link to heading
Installazione:
npm install -g @anthropic-ai/claude-code
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Workspace:
mkdir -p ~/workspace/{projects,docs/context}
cd ~/workspace/projects
Uso in tmux:
tmux new -s dev
claude code # Finestra 0
Ctrl+a c # Nuova finestra per git/npm
Syncthing per File di Contesto Link to heading
Ho installato Syncthing per sincronizzare documentazione e specifiche dal Mac al server:
apt install -y syncthing
systemctl enable syncthing@root
systemctl start syncthing@root
Configurazione per accesso remoto:
systemctl stop syncthing@root
nano /root/.local/state/syncthing/config.xml
# Cambio <address>127.0.0.1:8384</address> in <address>0.0.0.0:8384</address>
systemctl start syncthing@root
Accedo alla UI da http://192.168.1.216:8384 e configuro:
- Sul Mac: aggiungo sottocartella come nuova folder in Syncthing
- Connetto i due device scambiando Device ID
- Sul server: accetto la folder e mappo su
/root/workspace/docs/context
Ora i file di contesto si sincronizzano automaticamente e Claude Code può accedervi.
Workflow Link to heading
Il setup è completo. Ora posso:
- Scrivere specifiche sul Mac → Syncthing sincronizza sul server
- Connettermi via SSH da Mac o telefono
- Agganciare la sessione tmux esistente
- Claude Code ha accesso ai file di contesto aggiornati
- Disconnettermi quando voglio, le sessioni restano attive