Scrum4Me/docs/recommendations/beelink-ubuntu-scrum4me-server-caveman-plan.md
Madhura68 0d126695db docs: add plans and recommendations
- docs/plans/Local github setup.md
- docs/plans/lees-de-readme-md-validated-book.md
- docs/plans/zustand-store-rearchitecture.md
- docs/recommendations/beelink-ubuntu-scrum4me-server-caveman-plan.md
- docs/recommendations/claude-vm-job-flow-git-strategy.md
- docs/INDEX.md updated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 22:54:23 +02:00

9.5 KiB

title status audience language last_updated
Caveman plan — Beelink naar Ubuntu Scrum4Me server draft
maintainer
operator
nl 2026-05-09

Caveman plan — Beelink naar Ubuntu Scrum4Me server

Doel

Zet de Beelink mini-PC om naar een dual-boot machine waarop Ubuntu Server 24.04 LTS de standaard server-boot is. Windows blijft bestaan als fallback, maar Scrum4Me draait op Ubuntu.

Doelopstelling:

Beelink mini-PC
├─ Windows fallback
└─ Ubuntu Server 24.04 LTS default
   ├─ Docker Engine
   ├─ Postgres
   ├─ Scrum4Me webserver
   ├─ worker-idea
   ├─ worker-implementation
   └─ worker-orchestrator

Hardware

Bekende specs:

Onderdeel Waarde
Merk Beelink
CPU Intel Core i5-12450H
CPU boost Tot 4,4 GHz
RAM 32 GB DDR4
Opslag 1 TB
GPU Intel integrated graphics
Vorm Mini-PC

Conclusie: geschikt voor Scrum4Me als single-user/small-team server, mits implementation-concurrency op 1 blijft en resource limits strak staan.

Caveman Regels

  • Geen Ubuntu Desktop installeren.
  • Geen GPU-driver installeren tenzij beeld echt kapot is.
  • Geen Docker Desktop.
  • Geen Postgres-poort naar internet.
  • Geen Docker socket mounten in workercontainers.
  • Geen repos, caches of worktrees op de Windows-partitie.
  • Alles onder /srv/scrum4me.
  • Eerst één worker werkend krijgen, daarna pas drie.
  • Eerst via lokaal IP testen, daarna pas domein/TLS.
  • Ubuntu wordt default boot; Windows is fallback.

Waarom Geen Drivergedoe Verwacht Wordt

De CPU heeft Intel integrated graphics. Ubuntu Server heeft geen desktop nodig. Intel geeft aan dat de meeste Linux-distributies Intel graphics drivers al meeleveren. Voor deze machine verwacht je de kernel-driver i915.

Na installatie alleen checken:

lspci -k | grep -EA3 'VGA|3D|Display'
lsmod | grep i915

Als i915 zichtbaar is: klaar. Niet verder aan sleutelen.

Fase 0 — Voorbereiding In Windows

  1. Maak backup van belangrijke Windows-data.
  2. Sla BitLocker recovery key op als BitLocker aan staat.
  3. Zet Windows Fast Startup uit:
    • Control Panel
    • Power Options
    • Choose what the power buttons do
    • Turn off fast startup
  4. Maak vrije ruimte:
    • Open Disk Management.
    • Shrink C:.
    • Laat ongeveer 600 GB unallocated voor Ubuntu.

Aanbevolen diskverdeling:

Windows:          250-300 GB
Ubuntu /:         120 GB
/srv/scrum4me:    rest van vrije ruimte
swapfile:         16 GB
EFI:              bestaande EFI behouden

Fase 1 — Ubuntu USB Maken

  1. Download Ubuntu Server 24.04 LTS amd64.
  2. Maak USB-stick met Rufus of Balena Etcher.
  3. Sluit ethernet aan op de Beelink.
  4. Boot van USB.

Veelvoorkomende Beelink toetsen:

Boot menu: F7
BIOS:      Del

BIOS-checks:

UEFI boot: aan
Secure Boot: mag aan blijven, maar uitzetten als install gedoe geeft
Power on after power loss: aan
Ubuntu later als eerste boot entry

Fase 2 — Ubuntu Installeren

Kies tijdens installatie:

Install Ubuntu Server
OpenSSH server: YES
Desktop: NO
Storage: Custom layout

Storage:

Bestaande EFI partition:
  mount: /boot/efi
  formatteren: NEE

Nieuwe ext4 partition 120 GB:
  mount: /

Nieuwe ext4 partition rest:
  mount: /srv/scrum4me

Niet kiezen:

Use entire disk

Dat zou Windows verwijderen.

Fase 3 — Eerste Boot

Login op Ubuntu.

sudo apt update
sudo apt upgrade -y
sudo reboot

Na reboot:

sudo hostnamectl set-hostname scrum4me-server
ip a

Zet in je router een DHCP reservation voor het IP-adres. Dat is simpeler dan handmatige netwerkconfiguratie.

Fase 4 — Server Niet Laten Slapen

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

In BIOS:

Power on after power loss: ON
Sleep: OFF als optie bestaat
Boot order: Ubuntu eerst

Fase 5 — Basis Tools

sudo apt install -y git curl ca-certificates gnupg htop iotop ufw fail2ban unzip jq

Firewall:

sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status

Let op: Docker kan gepubliceerde containerpoorten buiten gewone ufw-verwachtingen om bereikbaar maken. Publiceer straks alleen reverse proxy poorten naar buiten.

Fase 6 — Docker Engine Installeren

Gebruik Docker Engine native op Ubuntu. Geen Docker Desktop.

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
sudo reboot

Na reboot:

docker run hello-world
docker compose version

Fase 7 — Scrum4Me Directories

sudo mkdir -p /srv/scrum4me/{postgres,repos,worker-cache,worker-logs,worker-state,backups,compose,caddy}
sudo chown -R $USER:$USER /srv/scrum4me

Doelstructuur:

/srv/scrum4me/postgres       database data
/srv/scrum4me/repos          cloned GitHub repos / mirrors
/srv/scrum4me/worker-cache   npm/git/cache
/srv/scrum4me/worker-logs    worker logs
/srv/scrum4me/worker-state   worker state
/srv/scrum4me/backups        local backup staging
/srv/scrum4me/compose        docker compose files
/srv/scrum4me/caddy          reverse proxy config

Fase 8 — Services

Einddoel:

postgres
scrum4me-web
worker-idea
worker-implementation
worker-orchestrator
caddy

Aanbevolen resource limits voor 32 GB RAM:

Service CPU limit Memory limit Opmerking
postgres 2 CPU 3-4 GB Lokale DB
scrum4me-web 2 CPU 2-3 GB Next.js runtime
worker-idea 2 CPU 4 GB Grill, plan, chat
worker-implementation 4-5 CPU 10-12 GB Zwaarste worker
worker-orchestrator 2-3 CPU 5-6 GB PR review, CI triage, conflicts
caddy of nginx 0.25 CPU 256 MB Reverse proxy

Laat 5-7 GB vrij voor Ubuntu, Docker overhead, filesystem cache en pieken.

Fase 9 — Tokens en Secrets

Maak aparte tokens per rol:

SCRUM4ME_TOKEN_IDEA
SCRUM4ME_TOKEN_IMPLEMENTATION
SCRUM4ME_TOKEN_ORCHESTRATOR

GH_TOKEN_IDEA
GH_TOKEN_IMPLEMENTATION
GH_TOKEN_ORCHESTRATOR

CLAUDE_CODE_OAUTH_TOKEN_IDEA
CLAUDE_CODE_OAUTH_TOKEN_IMPLEMENTATION
CLAUDE_CODE_OAUTH_TOKEN_ORCHESTRATOR

Tokenbeleid:

Token Rechten
Idea Read-only waar mogelijk, markdown/status updates via Scrum4Me
Implementation GitHub contents RW + pull requests RW
Orchestrator PR RW, contents RW alleen voor conflict/repair

Bestandsrechten:

chmod 600 /srv/scrum4me/compose/*.env

Geen secrets in git.

Fase 10 — Backups

Minimum:

Elke nacht pg_dump
Elke nacht backup van /srv/scrum4me/compose
Offsite kopie naar cloud, NAS of externe disk
Backup restore maandelijks testen

Lokale backup alleen is onvoldoende. Als de SSD stuk gaat, is alles weg.

Fase 11 — Monitoring

Simpel beginnen:

docker ps
docker stats
htop
iotop
df -h
du -sh /srv/scrum4me/*
journalctl -u docker --no-pager -n 100

Dagelijkse health checklist:

Docker containers up?
Disk < 80% vol?
Backups gelukt?
Workers online?
Postgres bereikbaar?
Webserver bereikbaar via HTTPS?
Geen runaway logs?

Fase 12 — Uitrolvolgorde

Niet alles tegelijk.

  1. Ubuntu werkt.
  2. SSH werkt.
  3. Docker werkt.
  4. Caddy/nginx testpagina werkt.
  5. Postgres container werkt.
  6. Scrum4Me webserver werkt lokaal.
  7. Scrum4Me webserver werkt via HTTPS.
  8. Eén worker werkt: worker-idea.
  9. Tweede worker werkt: worker-implementation.
  10. Derde worker werkt: worker-orchestrator.
  11. Role-aware queue claiming aanzetten.
  12. Backups testen.

Eerste Smoke Test

Na installatie:

hostnamectl
free -h
df -h
lscpu
docker version
docker compose version
docker run hello-world
lspci -k | grep -EA3 'VGA|3D|Display'
lsmod | grep i915

Verwacht:

Ubuntu 24.04 LTS
~32 GB RAM zichtbaar
Docker werkt
1 TB disk verdeeld zoals gepland
i915 zichtbaar voor Intel integrated graphics

Foutscenario's

Geen beeld na Ubuntu install

Eerst:

Gebruik HDMI-poort 1
Gebruik andere kabel
Boot recovery mode
Probeer tijdelijk Secure Boot uit

Niet meteen drivers installeren.

Windows start direct, geen Ubuntu menu

BIOS boot order aanpassen:

Ubuntu boven Windows Boot Manager

Docker permission denied

groups

Als docker ontbreekt:

sudo usermod -aG docker $USER
sudo reboot

Server wordt traag

Check:

docker stats
free -h
htop
iotop

Eerste maatregel:

implementation-worker alleen laten draaien
orchestrator zware builds verbieden
worker memory limits verlagen

Bronnen