SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-16

UniFi controller op een VPS draaien: handleiding

Host de UniFi Network Application op een VPS. Leer hoe u RAM-gebruik optimaliseert, Docker met MongoDB inricht, Layer 3 adoptie via set-inform regelt en poorten beveiligt.

Wat een UniFi controller op een VPS daadwerkelijk doet

Een UniFi controller op een VPS is een beheerserver die bereikbaar blijft wanneer de locaties die deze beheert uitvallen. De software is de UniFi Network Application van Ubiquiti: een Java-programma met een MongoDB-database erachter. Het configureert uw access points en switches, slaat hun statistieken op en host de beheerinterface. Het verwerkt geen clientverkeer.

Dat laatste punt bepaalt waar de software moet draaien. Plaats de controller op een machine binnen het kantoor dat deze beheert, en u verliest het netwerk en de tool om het netwerk te bekijken op hetzelfde moment. Plaats de controller op een VPS met een stabiel publiek IP-adres en deze blijft draaien, blijft gegevens verzamelen en kan apparaten op verschillende locaties vanaf één plek adopteren. De software vereist uptime, geen rekenkracht.

Wanneer de controller offline is, blijven geadopteerde access points en switches verkeer doorsturen met de configuratie die al naar hen is gepusht. U verliest het dashboard en de statistieken, evenals elke functie die vereist dat de controller actief is: een inlogportaal voor gasten of RADIUS (remote authentication dial-in user service) als de controller uw RADIUS-server is. Clients blijven verbonden.

Hoeveel RAM heeft een UniFi controller nodig?

Twee GB is het minimum en 4 GB is de aanbevolen hoeveelheid. Er zijn twee geheugengebruikers in één omgeving: Java en MongoDB. Zij bepalen hun eigen geheugengrootte onafhankelijk van elkaar.

De Java-heap wordt begrensd door MEM_LIMIT, die in de container-image standaard op 1024 MB is ingesteld. MongoDB vormt de andere helft. De WiredTiger storage engine stelt de cachegrootte in op de helft van het RAM-geheugen boven 1 GB, of 256 MB, afhankelijk van welke waarde groter is. Op een 2 GB VPS komt dit neer op ongeveer 512 MB cache, plus een 1 GB heap, plus het niet-heap geheugen van de JVM en het besturingssysteem. Dit past totdat het druk wordt; daarna beëindigt de out-of-memory killer van de kernel een van beide processen. Voer na een onverklaarde herstart dmesg -T | grep -i 'killed process' uit om te controleren of dit de oorzaak was. Voeg een swap-bestand toe als u over 2 GB beschikt.

CPU en schijfgebruik zijn minimaal. Eén of twee vCPU's kunnen enkele tientallen apparaten aan. Begin met 20 GB schijfruimte en houd dit in de gaten, aangezien de database groeit naarmate u meer clients ziet en statistieken langer bewaart. Een controller alleen laat het grootste deel van een 4 GB-server onbenut. Als u van plan bent er andere applicaties op te draaien, baseer de grootte dan op die applicaties, want PhotoPrism en Immich hebben heel andere minimale RAM-eisen en beide vragen meer dan de controller.

Eén CPU-functie is van belang en wordt bij goedkope abonnementen vaak over het hoofd gezien:

grep -m1 -o avx /proc/cpuinfo

MongoDB 5.0 en later vereisen AVX (advanced vector extensions) op x86_64-hardware. Als dit commando niets retourneert, crasht mongod tijdens het opstarten en blijft de container in een lus herstarten, omdat het binaire bestand een instructie uitvoert die de CPU niet ondersteunt. Oudere Intel Celeron- en Pentium-hosts zijn hiervan meestal de oorzaak, evenals hypervisors die CPU-flags verbergen voor de gastmachine. MongoDB 4.4 heeft geen AVX nodig en is het enige alternatief, maar dit is een databaseversie die upstream niet langer van patches wordt voorzien. Overstappen naar een host met een nieuwere CPU is de betere oplossing. Op een ARM VPS speelt dit probleem niet, aangezien AVX een x86-instructieset is en beide images arm64-builds aanbieden. Als u twijfelt tussen beide, de verschillen tussen ARM en x86 VPS-abonnementen gaan verder dan alleen de prijs.

De UniFi Network Application installeren met Docker Compose

Docker is de methode met de minste verrassingen, omdat u hiermee MongoDB kunt vastzetten op een versie die de applicatie ondersteunt, in plaats van afhankelijk te zijn van wat uw distributie aanbiedt. Als Docker nog niet op de server staat, installeer dan eerst Docker op een VPS.

mkdir -p ~/unifi/config ~/unifi/db
cd ~/unifi

MongoDB heeft een gebruiker nodig voordat de applicatie kan inloggen. De officiële MongoDB-image voert bij de eerste start elk script uit dat het vindt in /docker-entrypoint-initdb.d. Sla dit op als ~/unifi/init-mongo.sh:

#!/bin/bash
if which mongosh > /dev/null 2>&1; then
  mongo_init_bin='mongosh'
else
  mongo_init_bin='mongo'
fi
"${mongo_init_bin}" <<EOF
use ${MONGO_AUTHSOURCE}
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
db.createUser({
  user: "${MONGO_USER}",
  pwd: "${MONGO_PASS}",
  roles: [
    "clusterMonitor",
    { db: "${MONGO_DBNAME}", role: "dbOwner" },
    { db: "${MONGO_DBNAME}_stat", role: "dbOwner" },
    { db: "${MONGO_DBNAME}_audit", role: "dbOwner" },
    { db: "${MONGO_DBNAME}_restore", role: "dbOwner" }
  ]
})
EOF

Dat script wordt alleen uitgevoerd wanneer de databasemap leeg is. Als u de stack één keer start met het verkeerde wachtwoord, wordt de gebruiker met dat verkeerde wachtwoord aangemaakt. Het aanpassen van het compose-bestand heeft daarna geen effect meer, omdat het script nooit opnieuw wordt uitgevoerd. Het symptoom is dat de applicatiecontainer MongoDB-authenticatiefouten logt, terwijl de webinterface nooit verschijnt. Bij een nieuwe installatie is de oplossing om de stack te stoppen, ~/unifi/db te verwijderen en opnieuw te starten.

Schrijf vervolgens ~/unifi/compose.yaml:

services:
  unifi-db:
    image: docker.io/mongo:8.0
    container_name: unifi-db
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=change-this-root-password
      - MONGO_USER=unifi
      - MONGO_PASS=change-this-unifi-password
      - MONGO_DBNAME=unifi
      - MONGO_AUTHSOURCE=admin
    volumes:
      - ./db:/data/db
      - ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro
    restart: unless-stopped

  unifi-network-application:
    image: lscr.io/linuxserver/unifi-network-application:10.5.67-ls141
    container_name: unifi-network-application
    depends_on:
      - unifi-db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MONGO_USER=unifi
      - MONGO_PASS=change-this-unifi-password
      - MONGO_HOST=unifi-db
      - MONGO_PORT=27017
      - MONGO_DBNAME=unifi
      - MONGO_AUTHSOURCE=admin
      - MEM_LIMIT=1024
      - MEM_STARTUP=1024
    volumes:
      - ./config:/config
    ports:
      - "8080:8080"
      - "3478:3478/udp"
      - "127.0.0.1:8443:8443"
    restart: unless-stopped

Beide image-tags zijn bewust vastgezet. 10.5.67-ls141 was de huidige applicatie-release in augustus 2026; controleer dus de release-lijst van de image en zet de versie vast die actueel is op het moment van installatie. De database-tag is belangrijker. MongoDB upgradet zijn databestanden niet uit zichzelf naar een nieuwe hoofdversie. Daarom zal mongo:latest op een dag een nieuwe hoofdversie ophalen, weigeren de gevonden bestanden te openen en in een lus blijven herstarten. Zet de hoofdversie vast en voer upgrades bewust uit. UniFi Network 8.1 en later ondersteunen MongoDB 3.6 tot en met 7.0, en 9.0 voegde ondersteuning toe voor MongoDB 8.0.

PUID en PGID moeten overeenkomen met een echte gebruiker op de host, anders eindigen de bestanden onder ./config met een eigenaar die er niet naar kan schrijven. Voer id uit om uw eigen waarden te achterhalen. hoe PUID en PGID werken in container-images beschrijft hoe een mismatch eruitziet.

Start de stack en monitor het proces:

docker compose up -d
docker compose ps
docker compose logs -f unifi-network-application

docker compose ps zou beide containers als running moeten tonen. Een unifi-db die blijft steken in restarting wijst op het eerder genoemde AVX-probleem of een rechtenprobleem op ./db. Zodra het logbestand stabiel is, controleert u de twee listeners:

curl -sk -o /dev/null -w '%{http_code}\n' https://127.0.0.1:8443/
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/inform

Elke HTTP-statuscode betekent dat de listener is gebonden en antwoordt. Connection refused betekent dat de applicatie nog aan het opstarten is (wat bij de eerste run op een kleine VPS een minuut of twee kan duren) of dat deze helemaal niet is gestart.

Toegang tot de beheerinterface zonder deze bloot te stellen

Poort 8443 is gepubliceerd op 127.0.0.1 in het bovenstaande bestand, waardoor de beheerinterface vanaf buiten de VPS onbereikbaar is. Stuur deze door via SSH om de installatiewizard uit te voeren:

ssh -L 8443:127.0.0.1:8443 you@vps.example.com

Laat deze sessie open en navigeer naar https://127.0.0.1:8443. Het certificaat is zelfondertekend, dus de browser geeft een eenmalige waarschuwing. Maak het beheerdersaccount aan, geef de site een naam en sla het toevoegen van apparaten voor nu over.

Een SSH-tunnel is voldoende voor één beheerder. Voor een team geeft u de VPS een privéadres en bindt u de interface daaraan in plaats daarvan. een WireGuard VPN op uw eigen VPS en een Tailscale subnet router bieden beide een adres waar alleen uw team naartoe kan routeren. Wijzig de gepubliceerde poort naar 10.8.0.1:8443:8443 voor WireGuard, of naar het adres dat Tailscale toewijst. Eén aandachtspunt: Docker kan niet publiceren op een adres dat nog niet bestaat; de tunnelinterface moet dus actief zijn voordat de container start, anders faalt de container met een bind-fout.

Waarom een extern UniFi-apparaat niet adopteert

Standaard zoekt een UniFi-apparaat zijn controller door te broadcasten op het lokale netwerk via UDP-poort 10001. Een broadcast verlaat het LAN niet, waardoor een apparaat op een kantoor in een andere stad nooit een controller op een VPS zal ontdekken. Dit is Layer 3-adoptie, en dit is waar de meeste gebruikers vastlopen. Het apparaat functioneert naar behoren en de controller ook. Niets heeft het apparaat echter verteld waar het moet zoeken.

Geef eerst aan de controller door welk adres moet worden verstrekt. In de instellingen van de controller, onder het gedeelte System, bevindt zich een inform host-instelling met een override-optie. Stel deze in op de publieke hostnaam of het IP-adres van uw VPS. Zonder deze instelling adverteert de controller het adres dat hij op zijn eigen interface ziet, wat binnen een Docker-bridge-netwerk een privaat adres is zoals 172.18.0.3. Het apparaat ontvangt dat adres, kan er niet naartoe routeren en hervat het zoeken.

Wijs het apparaat vervolgens naar dat adres. Maak via SSH verbinding met het apparaat op het externe LAN. Een apparaat met fabrieksinstellingen accepteert de gebruikersnaam ubnt met het wachtwoord ubnt:

ssh ubnt@192.168.1.20
set-inform http://vps.example.com:8080/inform

Nieuwere firmware voor apparaten opent een menu in plaats van een shell. Voer hetzelfde uit als een enkel commando:

ssh ubnt@192.168.1.20 mca-cli-op set-inform http://vps.example.com:8080/inform

Het apparaat verschijnt nu in de controller als gereed voor adoptie. Klik op Adopt; de status verandert in Adopting. Dit is het punt dat iedereen verrast: u moet doorgaans set-inform een tweede keer uitvoeren. Het apparaat herstart tijdens het provisioneren en valt terug op de inform URL die in zijn eigen configuratie is opgeslagen, die de controller nog niet volledig heeft overschreven. Het opnieuw uitvoeren van het commando terwijl de status Adopting is, voltooit de overdracht. Typ info op het apparaat om de huidige inform URL en status te bekijken.

Als het apparaat voorheen door een andere controller is geadopteerd, zal set-inform alleen niet volstaan, omdat het nog steeds de inloggegevens van die controller bevat. Reset het apparaat eerst naar de fabrieksinstellingen, hetzij met de resetknop, hetzij met set-default via SSH met gebruik van de oude inloggegevens.

Gebruik voor meer dan een handvol apparaten liever DHCP. DHCP (dynamic host configuration protocol) option 43 bevat een leveranciersspecifieke waarde, en UniFi-apparaten lezen de inform URL uit suboption 2. Genereer de hex-string op een willekeurige Linux-machine:

URL="http://vps.example.com:8080/inform"
HEX=$(printf '%s' "$URL" | od -An -tx1 | tr -d ' \n')
printf '02%02x%s\n' "${#URL}" "$HEX"

Voor http://192.168.3.10:8080/inform, een string van 31 bytes, geeft dit 021f687474703a2f2f3139322e3136382e332e31303a383038302f696e666f726d als resultaat. Plak dit resultaat in het veld voor DHCP option 43 van uw router als een hex-waarde. Elk apparaat dat op dat netwerk opstart, leert vervolgens het adres van de controller via zijn lease, zonder dat SSH nodig is. Oudere handleidingen tonen suboption 1, 0104 gevolgd door de vier bytes van een IPv4-adres in hex, en apparaten accepteren die vorm nog steeds.

Er is een derde methode als u DNS op locatie beheert. Een UniFi-apparaat probeert bij het opstarten de hostnaam unifi op te lossen. Een A-record voor unifi dat naar het adres van uw VPS wijst, adopteert apparaten zonder dat er per apparaat actie nodig is. Dit werkt alleen als u de resolver beheert die de apparaten daadwerkelijk gebruiken.

Welke UniFi-poorten moeten openstaan en welke moeten privé blijven

Slechts twee poorten moeten bereikbaar zijn vanaf een externe locatie.

  • TCP 8080 is het inform-kanaal; elk geadopteerd apparaat maakt hier verbinding mee. De payload is AES-versleuteld met een sleutel die de controller tijdens de adoptie aan het apparaat heeft verstrekt, daarom is standaard HTTP hier de gebruikelijke instelling.
  • UDP 3478 is STUN (session traversal utilities for NAT), wat apparaten gebruiken om een pad terug naar de controller open te houden.

Al het overige blijft gesloten op een VPS.

  • TCP 8443 is de beheerinterface. Deze mag nooit openbaar zijn. Het bevat de configuratie voor elke site die de controller beheert, beveiligd achter één wachtwoord.
  • UDP 10001 en UDP 1900 zijn voor broadcast-detectie. Broadcasts gaan niet over het internet, dus deze openen heeft geen zin.
  • TCP 8880 en TCP 8843 zijn voor redirects van het gastportaal. Open deze alleen als u een gastportaal gebruikt.
  • TCP 6789 is voor de mobiele snelheidstest en UDP 5514 is voor remote syslog. Voeg deze toe wanneer u ze gebruikt.
  • TCP 27117 is voor MongoDB. In het bovenstaande compose-bestand publiceert de database geen enkele poort, dus deze bestaat alleen op het interne Docker-netwerk. Houd dit zo.

Als uw locaties statische openbare adressen hebben, sta dan alleen die toe:

sudo ufw allow OpenSSH
sudo ufw allow proto tcp from 203.0.113.4 to any port 8080
sudo ufw allow proto udp from 203.0.113.4 to any port 3478
sudo ufw enable
sudo ufw status verbose

de basis van ufw voor een VPS-firewall behandelt de standaard 'deny'-configuratie waar deze regels vanuit gaan.

Er is hier een valkuil waar mensen telkens in trappen. Gepubliceerde poorten van Docker omzeilen ufw. Het publiceren van een poort schrijft NAT- en forwarding-regels direct naar iptables, en dat verkeer wordt gefilterd in de eigen chain van Docker, niet in de INPUT-chain die ufw beheert. Hierdoor lijkt ufw deny 8443 correct in ufw status, terwijl de poort open blijft voor de wereld. Test dit vanaf een andere machine, nooit vanaf de VPS zelf:

nc -vz vps.example.com 8443

Een weigering of een time-out is wat u wilt zien. Als er verbinding wordt gemaakt, is de poort openbaar, ongeacht wat ufw aangeeft. De betrouwbare oplossing is degene die al in het compose-bestand staat: publiceer de poort op 127.0.0.1 of op een tunneladres, zodat Docker deze nooit bindt aan de openbare interface. Een regel in de DOCKER-USER-chain werkt ook, maar binden is eenvoudiger en een fout in de volgorde van regels kan dit niet ongedaan maken.

Hoe zit het met de eigen installers van Ubiquiti?

Ubiquiti publiceert een Debian-pakket voor de Network Application. Dit werkt, maar op huidige Ubuntu-versies roept dit een MongoDB-vraag op die de distributie niet langer beantwoordt: Ubuntu 22.04 en 24.04 leveren geen MongoDB-serverpakket meer, waardoor u handmatig de repository van MongoDB moet toevoegen en versies op elkaar moet afstemmen. De bovenstaande container voert die afstemming uit in één vastgezette tag, wat de reden is dat dit hier de aanbevolen methode is.

Het nieuwere zelfgehoste product van Ubiquiti is UniFi OS Server. Dit voert de UniFi-applicaties uit in Podman-containers en biedt hetzelfde UniFi OS als hun hardware-consoles. Sinds augustus 2026 vereist dit x86_64 Ubuntu 22.04 of 24.04, Podman 4.3.1 of nieuwer met slirp4netns, en vraagt het minimaal 2 vCPU met 4 GB RAM, waarbij 4 vCPU met 8 GB wordt aanbevolen. De installer bevindt zich achter een gratis Ubiquiti-account op hun downloadpagina, waardoor er geen stabiele URL is die u direct in een handleiding kunt plakken. Het creëert een systeemgebruiker genaamd uosserver en voert de containers uit als deze gebruiker. Kies hiervoor als u de eigen verpakking van de leverancier wilt gebruiken. Kies voor de container-stack als u zelf versies wilt vastzetten en de server vrij wilt houden voor andere taken.

Waar UniFi-back-ups worden opgeslagen en hoe u deze van de server haalt

De controller schrijft zijn eigen back-ups volgens een schema dat u instelt in Settings, in het gedeelte voor back-ups, waar u ook aangeeft hoeveel back-ups er bewaard moeten blijven. De bestanden worden opgeslagen in /config/data/backup/autobackup binnen de container, wat op de host overeenkomt met ~/unifi/config/data/backup/autobackup, met bestandsnamen zoals autobackup_10.5.67_20260813_1200_1755086400004.unf.

Controleer of ze daadwerkelijk verschijnen:

ls -l ~/unifi/config/data/backup/autobackup

Een lege map een dag nadat u een schema hebt ingesteld, is een bekend probleem bij nieuwe containerinstallaties. De applicatie verwacht dat de map autobackup bestaat, maar maakt deze niet zelf aan, waardoor de geplande taak stilletjes niets schrijft. Maak de map zelf aan met dezelfde gebruiker als waaronder de container draait en wacht vervolgens op de volgende uitvoering:

mkdir -p ~/unifi/config/data/backup/autobackup
docker compose restart unifi-network-application

Een .unf-bestand bevat de siteconfiguratie en de beheerdersaccounts; behandel dit bestand daarom als een cryptografische sleutel. Haal kopieën op naar een machine die u beheert en houd deze privé:

rsync -av you@vps.example.com:~/unifi/config/data/backup/autobackup/ ~/unifi-backups/

Herstellen is een eenvoudige stap. De eerste pagina van de installatiewizard bij een nieuwe installatie biedt de mogelijkheid om te herstellen vanaf een back-upbestand, en een actieve controller kan er een inlezen via dezelfde instellingenpagina. Herstel naar dezelfde versie of een nieuwere versie. Een back-up die is aangemaakt door een nieuwere versie van de applicatie dan degene waarnaar u terugzet, wordt geweigerd. Dit is de reden waarom u het versienummer samen met het bestand moet noteren.

Wat een controller-upgrade kan verbreken

Maak voor elke upgrade een handmatige back-up en download deze. Doe daarna het volgende:

docker compose pull
docker compose up -d
docker compose logs -f unifi-network-application

De database is het eerste dat misgaat. Het wijzigen van de mongo-tag naar een nieuwe hoofdversie in dezelfde bewerking als de applicatie is de snelste manier om een controller te krijgen die niet opstart, omdat MongoDB geen databestanden van een andere hoofdversie opent zonder een gefaseerde upgrade. Upgrade de applicatie afzonderlijk. Verplaats MongoDB apart, één hoofdversie per keer, met een verse back-up bij de hand.

Geheugen is het volgende punt. Een grotere release vereist een grotere heap. Als de applicatie opstart, enkele minuten draait en vervolgens stopt, verhoog dan MEM_LIMIT en MEM_STARTUP naar 1536 of 2048 en start opnieuw op. dmesg -T | grep -i 'killed process' op de host bevestigt of de kernel het proces beëindigt.

Apparaatfirmware is het risico dat mensen vergeten. Nadat de controller zichzelf heeft geüpgraded, biedt deze firmware-upgrades aan voor geadopteerde apparaten. Accepteer deze niet in dezelfde sessie. Als een apparaat-upgrade en een controller-upgrade elkaar overlappen en de verbinding tussen beide wegvalt, kan het apparaat half geconfigureerd achterblijven en bent u aangewezen op set-inform via SSH op hardware in een ander gebouw.

Het upgradevenster zelf is minder ingrijpend dan het klinkt. Apparaten blijven verkeer doorsturen terwijl de controller herstart, dus gebruikers merken niets. Wat wel stopt, is het gastportaal en RADIUS als de controller deze beheert, dus kies een tijdstip waarop beide niet in gebruik zijn. Een controller die stilletjes om 3 uur 's nachts uitvalt, is het waard om op te merken; stel daarom een Uptime Kuma-statusmonitor in op poort 8080 en laat deze u waarschuwen.

Het eerlijke alternatief: Ubiquiti's gehoste console

Ubiquiti verkoopt dezelfde taak als een dienst. Sinds augustus 2026 begint de Official UniFi Cloud Console bij $29 per maand en beheert deze tot 500 UniFi-apparaten, waarbij Ubiquiti de updates en back-ups uitvoert. De zelfgehoste applicatie die u zojuist heeft geïnstalleerd, is gratis en vereist geen abonnement.

Kies voor de gehoste console als u één locatie beheert en liever betaalt dan zelf onderhoudt. Kies voor een VPS als u meerdere locaties beheert, of als u de controller wilt draaien binnen een netwerk dat u zelf beheert en deze wilt delen met andere services die u uitvoert. Het kostenverschil op kleine schaal is reëel, maar het is niet de enige factor om te overwegen: een gehoste console betekent dat u afhankelijk bent van de uptime van een ander, terwijl uw VPS van u is, inclusief de nacht dat de schijf volloopt. Als de server toch al in gebruik is, is wat u nog meer op een VPS kunt draaien de lijst die u als volgende moet lezen.

FAQ

Waarom wordt mijn UniFi-apparaat niet geadopteerd door een controller op een VPS?

Apparaten ontdekken controllers door te broadcasten op UDP-poort 10001. Een broadcast verlaat het lokale netwerk nooit, waardoor een apparaat op een externe locatie een controller op het publieke internet niet kan vinden. Stel de inform host override in de systeeminstellingen van de controller in op uw VPS-hostnaam en wijs het apparaat vervolgens aan met ssh ubnt@<device-ip> gevolgd door set-inform http://vps.example.com:8080/inform. Als het apparaat in de status Adopting blijft staan, voer dan set-inform opnieuw uit terwijl het zich in die status bevindt. Als een andere controller het apparaat eerder heeft geadopteerd, zet het dan eerst terug naar de fabrieksinstellingen, omdat het nog steeds de inloggegevens van de oude controller bevat.

Hoeveel RAM heeft een zelfgehoste UniFi-controller nodig?

Twee GB is het absolute minimum en 4 GB is comfortabel. De applicatie bestaat uit Java en MongoDB, die hun geheugen afzonderlijk beheren: de container-image begrenst de Java-heap standaard op 1024 MB, terwijl de WiredTiger-cache van MongoDB de helft van het RAM-geheugen boven 1 GB inneemt. Controleer op x86_64 ook of de CPU AVX ondersteunt met grep -m1 -o avx /proc/cpuinfo, omdat MongoDB 5.0 en later niet zonder AVX opstarten en de database-container anders in een lus blijft herstarten.

Moet ik poort 8443 openstellen voor het internet?

Nee. Poort 8443 is de beheerinterface en bevat de configuratie voor elke site die de controller beheert. Publiceer deze op 127.0.0.1 en benader de interface via ssh -L 8443:127.0.0.1:8443 you@vps.example.com, of bind deze aan een WireGuard- of Tailscale-adres. Alleen TCP 8080 en UDP 3478 moeten bereikbaar zijn vanaf uw locaties; u kunt deze beperken tot de publieke adressen van de locaties als deze statisch zijn. Onthoud dat een gepubliceerde Docker-poort niet wordt gefilterd door ufw, dus test vanaf een externe machine in plaats van te vertrouwen op ufw status.

Stopt mijn netwerk met werken als de VPS-controller uitvalt?

Nee. Geadopteerde access points en switches blijven verkeer doorsturen met de configuratie die de controller al heeft gepusht, dus clients blijven verbonden en de wifi blijft werken. Wat stopt, is het beheer. U verliest het dashboard en de statistiekenverzameling, evenals alle live-functies die de controller aanbiedt, zoals authenticatie via een gastenportaal of RADIUS wanneer de controller als RADIUS-server fungeert.

Waar slaat de UniFi-controller zijn automatische back-ups op?

In de hier gebruikte container-image komen deze terecht in /config/data/backup/autobackup, wat op de host is gekoppeld aan uw datapad plus data/backup/autobackup, als .unf-bestanden vernoemd naar de versie en een tijdstempel. Bij sommige nieuwe installaties bestaat de map autobackup niet, waardoor de geplande back-up niets schrijft zonder een foutmelding te geven. Controleer deze map een dag nadat u een schema heeft ingesteld en maak de map zelf aan als deze leeg is. Kopieer de bestanden van de VPS af, aangezien een .unf de siteconfiguratie en de beheerdersaccounts bevat.

#unifi#ubiquiti#network-management#docker#self-hosting