- Shell 73%
- Jinja 27%
A Debian 13 VM on which Claude Code runs independently of a PC: - Claude Code is the native build from Anthropic, installed for the admin user. Version and checksum come from the release manifest on downloads.claude.ai, the binary is fetched with get_url and verified before "claude install" runs. "update" moves to the newest release. - The tmux session "claude" of the admin user is a systemd unit (ai-workstation-tmux) and is restarted when it ends – also after a reboot. - Developer tools and Docker from Debian only (git, gh, Python, Node.js, Go, Rust, docker.io, ripgrep, fd, jq, shellcheck, database clients …), no third-party repositories. - Optional module "desktop" (roles/desktop): XFCE, Firefox and xrdp on port 3389 for private networks, with an admin password generated per instance; deselecting it removes the packages and locks the password. Based on ai-workstation-trixie-vm by code-orange, reduced to what an iac guest needs: no desktop by default, no third-party repositories, no monitoring or security agents, no password in the manifest. Tested in the dev container: install, smoke test, idempotence, the desktop module selected and removed again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| handlers | ||
| image | ||
| roles/desktop | ||
| tasks | ||
| templates | ||
| tests | ||
| .clinerules | ||
| .cursorrules | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| GEMINI.md | ||
| iac.json | ||
| README.md | ||
| vm.sh | ||
iac-ai-workstation
Debian-13-VM für KI-Coding-Agenten auf Proxmox VE: Claude Code läuft rund um die Uhr in einer tmux-Sitzung, unabhängig von deinem PC. Dazu Entwicklerwerkzeuge (Git, Python, Node.js, Go, Rust, Docker, ripgrep, …) – alles aus Debian, ohne Fremd-Repositories. Teil von iac.
Installation (auf der Proxmox-Node)
bash -c "$(curl -fsSL https://iac.heyer.systems/ai-workstation/vm.sh)" # VM
Standard: 4 CPUs, 8 GB RAM, 64 GB Disk. Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen –
am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/ai-workstation/.
Claude Code benutzen
ssh heyeradmin@<ip>
tmux attach -t claude # die Sitzung läuft immer, auch nach einem Neustart der VM
claude # beim ersten Mal: Anmeldung über den angezeigten Link
Aus der Sitzung lösen, ohne Claude Code zu beenden: Ctrl+b, dann d. Wird die Sitzung
versehentlich geschlossen, ist sie nach wenigen Sekunden wieder da (systemd-Dienst
ai-workstation-tmux).
Claude Code ist die native Version von Anthropic (~/.local/bin/claude), installiert mit
geprüfter Checksumme. Es aktualisiert sich selbst; update holt ebenfalls die neueste Version.
Desktop (optional)
Modul desktop: XFCE mit Firefox, per RDP auf Port 3389 (nur aus privaten Netzen).
Anmelden als heyeradmin, das Passwort steht in der VM:
sudo grep admin_password /etc/iac/settings.env
Einschalten beim Anlegen (var_modules=desktop) oder später in der VM:
update --modules desktop # an
update --modules '' # wieder aus – das Passwort wird gesperrt
Update (in der VM)
update
Selbsttest (in der VM)
bash /var/lib/iac/src/core/bin/iac-smoke