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 nano zonder 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