Skip to main content

Checklist: Nieuwe server/service uitrollen

Template voor BookStack. Kopieer per nieuwe server en vink af. Datum notatie: YYYYMMDD


0. Beslissingen vooraf

  • Vorm bepalen:
    • LXC (unprivileged waar mogelijk) → lichtgewicht, één dienst
    • VM → kernel-afhankelijk, appliances, of isolatie nodig
    • Docker-container → past het in de bestaande stack? Eigen IP nodig → macvlan
  • Host kiezen: tinkelbel, vidia, knabbel, babbel, mooiweertje... (resources, rol, wat draait er al)
  • Naam kiezen (Disney/animatie-conventie). Check dat de naam nog vrij is
  • IP reserveren in 192.168.109.x (servers/infra). Registreren in Baserow
  • Resources inschatten: vCPU / RAM / disk (+ groei)
  • Publiek bereikbaar? Zo ja: subdomain bepalen (*.oniria.xyz), DNS-only vs proxied via Cloudflare

1. Provisioning (Proxmox)

  • LXC template of VM ISO up-to-date
  • Hostname = gekozen naam
  • Statisch IP, gateway (Zeus), DNS → Unbound
  • LXC: unprivileged, nesting=1 indien Docker binnenin
  • Mount points via Proxmox UI (niet manueel) indien extra storage
  • VM: qemu-guest-agent installeren en enablen
  • Start on boot + boot order/delay instellen

2. Basisconfiguratie OS

  • apt update && apt full-upgrade
  • Timezone: Europe/Brussels, locale check
  • SSH key deployen, password login uit (of beperken)
  • Niet-root gebruiker + sudo indien VM
  • Update-beleid: unattended-upgrades aan of bewust manueel
  • Basistools: curl htop vim (naar smaak)

3. Netwerk & DNS

  • Unbound: intern A-record aanmaken
  • OPNsense (Zeus): firewall rules/aliases indien nodig
  • Port forward indien publiek bereikbaar
  • Cloudflare: extern record (DNS-only tenzij proxy gewenst)
  • Reverse proxy config indien achter proxy
  • Test: interne resolutie + externe bereikbaarheid (indien van toepassing)

4. Dienst installeren

  • Docker: compose file, image-versie pinnen (geen latest)
  • Secrets in .env, niet in compose zelf
  • Data op volume/bind mount die in backup zit
  • Eerste functionele test

5. Backup (PBS – WinnieDePoeh)

  • Toevoegen aan backup job / systemd timer
  • Retentie: Daily 7 / Weekly 4 / Monthly 6 (tenzij afwijkend — bewust kiezen)
  • App-level export indien relevant (config dumps, DB dumps)
  • Eerste backup verifiëren in PBS
  • Test restore (minstens file-level) — pas dan is het een backup
  • Valt de server onder de offsite sync (Seagate rotatie)? Zo ja: checken dat de datastore meegaat

6. Monitoring

  • Uptime Kuma check (HTTP/ping/TCP naargelang dienst)
  • Notificatie gekoppeld
  • Grafana/metrics indien zinvol
  • Bewust beslissen wat niet gemonitord wordt

7. Registratie & documentatie

  • GLPI: asset aanmaken ahv GLPI Agent
  • Baserow: IP/inventaris bijwerken
  • BookStack-pagina met minimaal:
    • Doel van de server
    • Naam, IP, Proxmox host, CT/VM ID
    • Installatiestappen (repliceerbaar)
    • Verwijzing naar credentials (password manager, nooit plaintext)
    • Backup-regeling en herstelprocedure
    • Afhankelijkheden (welke diensten rekenen hierop?)
  • Wachtwoorden/API keys in password manager

8. Afronding

  • Reboot-test: komt alles vanzelf terug op?
  • Snapshot nemen als startpunt ("clean install YYYYMMDD")
  • Backup na eerste run nog eens gecontroleerd
  • Kort in agenda/Vikunja: restore-test herhalen over X maanden

Snelle beslisboom vorm

Eén dienst, Linux-native, geen kernel-gedoe?  → LXC (unprivileged)
Past in bestaande Docker-stack op babbel?      → Docker (macvlan bij eigen IP)
Appliance / eigen kernel / sterke isolatie?    → VM