Van SSH-ellende naar een strakke homelab workflow met code-server & Proxmox
Table of Contents
DEV WORKFLOW
[ OK ] code-server
[ OK ] SSH keys
[ OK ] SSHFS mounts
[ OK ] Central management
Als je met meerdere LXC-containers in Proxmox werkt, ziet je workflow er waarschijnlijk ongeveer zo uit:
PC → SSH → server → SSH → Proxmox → pct enter → nano
Het werkt… maar het voelt alsof je continu tegen je eigen setup aan het vechten bent.
Voor kleine aanpassingen is het prima. Maar zodra je dit dagelijks doet, wordt het traag, onoverzichtelijk en gewoon irritant.
Het probleem#
Mijn workflow bestond uit:
- meerdere SSH-sessies tegelijk
- werken in
nanozonder overzicht - constant schakelen tussen systemen
- geen centrale plek voor configs
👉 Technisch werkte alles, maar efficiënt was het totaal niet.
Het doel#
Ik wilde het anders.
Mijn ideale situatie:
- één centrale beheeromgeving
- een goede editor (VS Code ervaring)
- toegang tot alle LXC-containers
- werken vanuit de browser, vanaf elke locatie
👉 Minder frictie, meer overzicht.
De oplossing#
Ik heb dit opgelost door drie dingen te combineren:
- een dedicated dev LXC
- code-server (VS Code in de browser)
- SSH + SSHFS voor directe toegang tot andere containers
👉 In plaats van “inloggen op alles”, werk ik nu vanuit één plek.
Stap 1 — Een centrale dev omgeving#
Ik heb een aparte LXC gemaakt in Proxmox:
hostname: dev
cores: 2
memory: 1024
Deze container is nu mijn centrale werkplek.
Stap 2 — code-server installeren#
In deze container draait code-server:
apt update && apt upgrade -y
apt install -y curl sudo git openssh-client
curl -fsSL https://code-server.dev/install.sh | sh
Daarna een user aangemaakt:
adduser user
usermod -aG sudo user
En de basisconfig:
bind-addr: 0.0.0.0:8080
auth: password
password: KIES-EEN-STERK-WACHTWOORD
cert: false
Stap 3 — Altijd beschikbaar via je browser#
Met een simpele systemd service blijft code-server draaien:
[Unit]
Description=code-server
After=network.target
[Service]
Type=simple
User=user
Environment=HOME=/home/user
ExecStart=/usr/bin/code-server
Restart=always
[Install]
WantedBy=multi-user.target
En via mijn reverse proxy is hij bereikbaar op:
👉 https://code.jouwdomein.nl
Stap 4 — SSH zonder gedoe#
Om andere containers te bereiken gebruik ik SSH keys.
Op de dev container:
ssh-keygen -t ed25519
De public key plaats ik op alle LXC’s in:
/root/.ssh/authorized_keys
Daarna kan ik overal direct inloggen zonder wachtwoorden:
ssh root@container-ip
Stap 5 — Geen SSH meer nodig (SSHFS)#
De grootste verbetering kwam hier.
In plaats van in te loggen op containers, mount ik hun bestanden direct:
mkdir -p /home/user/lxc/app
sshfs root@192.168.x.x:/etc /home/user/lxc/app
👉 Deze map open ik gewoon in code-server alsof hij lokaal is.
Stap 6 — Integratie met Proxmox (FUSE)#
Om SSHFS in LXC te laten werken:
features: fuse=1,nesting=1
lxc.cgroup2.devices.allow: c 10:229 rwm
lxc.mount.entry: /dev/fuse dev/fuse none bind,create=file
Daarna werkt alles zoals verwacht.
Het resultaat#
Mijn workflow is veranderd van:
SSH → SSH → pct enter → nano
Naar:
- browser openen
- code-server starten
- bestanden direct bewerken
- alles centraal beheren
👉 Geen context switching meer 👉 Geen gedoe meer
Conclusie#
Door een kleine extra container toe te voegen en tools slim te combineren:
- werk ik sneller
- heb ik meer overzicht
- maak ik minder fouten
En misschien nog belangrijker:
👉 mijn homelab voelt nu als een omgeving waar ik graag in werk