Een op Docker gebaseerde website toevoegen en configureren in ServBay
ServBay is een lokale webontwikkelomgeving voor macOS en Windows met ondersteuning voor diverse talen en technologieën. Naast het direct draaien van ingebouwde ServBay-softwarepakketten (zoals PHP, Node.js, Python, Go, Java, databases, etc.), kun je ook Docker containers gebruiken voor het runnen en beheren van je websites of services. Dit biedt maximale flexibiliteit, omgevingsisolatie en consistentie—ideaal voor projecten die specifieke vereisten of afhankelijkheden hebben.
Dit artikel legt stap voor stap uit hoe je een website, gehost in een Docker-container, toevoegt aan ServBay en deze via ServBay’s reverse proxy-functionaliteit integreert in je lokale ontwikkelflow.
Overzicht
Met ServBay als reverse proxy kun je verzoeken naar specifieke domeinen doorsluizen naar services die draaien in Docker-containers op een bepaald poortnummer. ServBay regelt het inkomende verkeer (zoals HTTPS-certificaten, domeinroutering, etc.), terwijl de Docker-container zich focust op het draaien van jouw applicatie. Je profiteert van de gebruiksvriendelijke interface van ServBay en de kracht van containerisatie in Docker.
De onderstaande stappen begeleiden je door het gehele proces van het toevoegen en configureren van een Docker-gehoste website in ServBay.
Vereisten
Zorg voordat je begint dat aan de volgende voorwaarden is voldaan:
- ServBay is geïnstalleerd en gestart: Je hebt ServBay succesvol geïnstalleerd en actief op macOS.
- Docker is geïnstalleerd en actief: Docker Desktop of een andere Docker-omgeving staat op je macOS en de Docker-service draait.
- Docker-images en containers zijn gereed: Je hebt een Docker-image gebouwd of gedownload waarin jouw website/applicatie zit, en je kunt het image uitvoeren als container.
Stappen om een website toe te voegen
Stap 1: Docker-container voorbereiden en starten
Zorg eerst dat je Docker-container draait, en dat de interne service (zoals webserver) via port-mapping bereikbaar is op een poort van je host (macOS).
Bijvoorbeeld, stel dat je een eenvoudige Nginx-container hebt die intern op poort 80 luistert. Je kunt deze als volgt mappen op poort 8080 van de host:
bash
docker run -d --name my-nginx-servbay -p 8080:80 nginx
1
In dit voorbeeld luistert Nginx binnen de container op poort 80
, maar via het -p 8080:80
parameter wordt deze intern geporteerde poort doorgestuurd naar poort 8080
op je macOS. ServBay zal verbinding maken via deze poort op de host.
Controleer je Dockerfile en containerconfiguratie, zodat de interne service luistert op de juiste poort, en deze correct wordt doorgemapd naar een hostpoort.
Stap 2: ServBay-beheerinterface openen
Zoek het ServBay-pictogram in de Programma’s-map op je macOS en dubbelklik om de beheerinterface van ServBay te openen.
Stap 3: Ga naar de websitebeheerpagina
Na het openen van ServBay zie je het hoofdscherm. Klik in het linker navigatiemenu op Websites
. Je komt nu op de beheerpagina waar je alle toegevoegde lokale sites kunt bekijken en configureren.
Afbeelding: Klik op "Websites" in de linker navigatiebalk om naar de beheerpagina te gaan.
Stap 4: Nieuwe website toevoegen
Onderaan de websitebeheerpagina vind je een +
-knop. Klik erop; ServBay toont rechts een formulier waar je de gegevens voor de nieuwe website kunt invoeren.
Afbeelding: Klik op de “+”-knop onderaan de pagina om een nieuwe website toe te voegen.
Stap 5: Websitesettings configureren
Vul in het configuratieformulier de volgende essentiële informatie in:
- Naam (Name): Geef jouw website een herkenbare naam, bijvoorbeeld
Docker Nginx Demo
. Deze naam is alleen voor ServBay intern beheer. - Domein (Domain): Voer het lokale domein in waarmee je de Docker-website wilt bezoeken. Gebruik bij voorkeur de
.servbay.demo
extensie, bijvoorbeelddocker.servbay.demo
, om botsingen met publieke domeinen te voorkomen. ServBay past automatisch je hosts-bestand aan zodat dit domein naar127.0.0.1
wijst. - Protocol (Protocol): Kies het ondersteunde protocol. Gewoonlijk kun je ‘HTTP/HTTPS’ laten staan. ServBay luistert dan op zowel HTTP (80) als HTTPS (443) afhankelijk van je SSL-instellingen.
- SSL-certificaataanvraagmethode (SSL Certificate Request Method): Kies bij voorkeur voor
ServBay CA
. ServBay genereert en beheert dan automatisch een lokaal vertrouwd SSL-certificaat ondertekend door ServBay User CA. Door ServBay Public CA aan je systeem keychain toe te voegen, worden deze certificaten vertrouwd door je browser, waardoor je veilig lokaal met HTTPS kunt ontwikkelen. Voor andere behoeften kun je eventueel kiezen voorACME
(zoals voor Let's Encrypt) ofCustom
(eigen certificaten). - Websitetype (Website Type): [Belangrijk] Selecteer
Reverse Proxy
(omgekeerde proxy). Dit betekent dat ServBay het domeinverkeer doorstuurt naar het door jou opgegeven backendadres. - IP-adres (IP Address): Vul het IP-adres waarop jouw Docker service op de host luistert in. Dit is meestal
127.0.0.1
bij lokale Docker-configuratie. - Poort (Port): Geef de hostpoort in waarop de Docker-service draait. Dit is het
<host-port>
uit jedocker run -p <host-port>:<container-port>
-commando. Gebruik bijvoorbeeld8080
als je-p 8080:80
hebt ingesteld.
Afbeelding: Vul de configuratiegegevens voor de Docker reverse proxy-website in.
Stap 6: Configuratie afronden en opslaan
Nadat je alle vereiste informatie hebt ingevuld, klik je onderaan het formulier op Toevoegen (Add)
.
ServBay verwerkt jouw aanvraag, voegt automatisch de reverse proxy-regel toe aan de webserverconfiguratie (zoals Caddy of Nginx), en werkt het hosts-bestand bij zodat het domein naar het opgegeven lokale IP wijst.
Na succesvolle opslag past ServBay kort de configuratie toe, waarna je het domein direct kunt uitproberen.
Stap 7: Website bezoeken en snelkoppelingen gebruiken
Na succesvol opslaan zie je het nieuwe website-item terug op de websitebeheerpagina; de status dient “Actief” te zijn.
Nu kun je het gespecificeerde domein in je browser bezoeken (bijvoorbeeld http://docker.servbay.demo
of https://docker.servbay.demo
). Bij juiste configuratie stuurt ServBay je verzoeken door naar de Docker-container en toont het de pagina van je container in je browser.
In de websiteslijst zijn diverse handige snelkoppelingknoppen beschikbaar, zoals:
- Open website-root met IDE: (Voor reverse proxy-sites werkt deze knop mogelijk niet of toont het ServBay-configuratiemap, afhankelijk van versie en instellingen)
- Open website in browser: Snel een nieuw tabblad openen met de URL van de site.
- Bekijk websitelogboeken: Inzage in toegang- en foutlogboeken van ServBay, nuttig voor debugging.
- Website pauzeren/activeren: Tijdelijk de reverse proxyconfiguratie uitschakelen of weer inschakelen.
- Website verwijderen: Verwijdert de website uit ServBay-configuratie.
Afbeelding: Snelkoppelingsknoppen in de ServBay websiteslijst.
Belangrijke tips en best practices
- Dockercontainerstatus: Controleer dat je doelcontainer altijd draait; anders kan ServBay verzoeken niet doorsturen.
- Port-mapping: Controleer nauwkeurig de Docker-port-mapping (
-p
parameter) en het opgegeven hostpoortnummer in ServBay, en zorg dat de poort niet door andere software in gebruik is. - Firewall: Check de firewallinstellingen van macOS; zorg dat poorten 80, 443 (voor ServBay) en de hostpoort die Docker gebruikt niet worden geblokkeerd.
- Docker-netwerkmodus: Meestal is de standaard
bridge
-modus plus-p
port-mapping het eenvoudigst. Gebruik jehost
-netwerkmodus, dan kan ServBay direct de containerpoort bereiken (bijvoorbeeld, container luistert op 80, dan stel je ServBay poort in op 80). Let op: de host-modus kan portconflicten geven. - ServBay CA: Installeer ServBay Public CA ten behoeve van HTTPS-ontwikkeling; hiermee worden lokaal uitgegeven certificaten door je browser geaccepteerd en voorkom je beveiligingswaarschuwingen.
Veelgestelde vragen & probleemoplossing (FAQ)
Vraag: Kan ik de website niet bereiken na toevoegen, browser geeft een verbindingsfout of timeout?
Antwoord: Volg deze checklijst:
- Site-status in ServBay: Controleer op de websitebeheerpagina dat de site als “Actief” weergegeven wordt.
- Dockercontainerstatus: Via terminal
docker ps
gebruiken om te zien of de container draait. - Check Docker-port-mapping: Gebruik
docker ps
en bekijk de poortinformatie (PORTS
-kolom), controleer of het hostpoort (zoals0.0.0.0:8080->80/tcp
of127.0.0.1:8080->80/tcp
met poort8080
) overeenkomt met de ServBay-configuratie. - Controleer interne Docker-service: Controleer of je webservice (zoals Nginx, Apache, Node-app) daadwerkelijk op het juiste poortnummer luistert en geen fouten heeft; bekijk eventueel de containelog (
docker logs <containernaam of ID>
). - Bekijk ServBay logs: Klik op het logboekicoon naast de website in ServBay, en analyseer de toegangs- en foutenlogs voor details over eventuele proxy-mislukkingen.
- Controleer hosts-bestand: Meestal regelt ServBay dit automatisch, maar je kunt
/etc/hosts
handmatig inspecteren om te zien of het domein naar127.0.0.1
wijst. - Firewallcheck: Zorg dat geen portblokkades actief zijn op poorten die ServBay of Docker gebruikt.
Vraag: Kan ik Docker-containers zelf beheren met ServBay?
Antwoord: ServBay focust op het beheer van lokale webservices, databases, programmeeromgevingen en doorverwijzing van verkeer naar backendservices zoals Docker-containers. Containerbeheer (starten, stoppen, images bouwen, enz.) blijft gewoon met Docker tools zoals Docker CLI of Docker Desktop.
Vraag: Wat is ServBay CA en waarom moet ik deze installeren?
Antwoord: ServBay CA (Certificate Authority) is het certificaatsysteem van ServBay dat lokaal HTTPS-ontwikkeling eenvoudig en veilig maakt. ServBay User CA ondertekent SSL-certificaten voor jouw lokale sites; ServBay Public CA is de root-CA. Door ServBay Public CA in je systeem keychain te plaatsen, worden alle door ServBay User CA ondertekende certificaten door de browser geaccepteerd, zodat je géén “onveilig” waarschuwingen krijgt. Dit is essentieel om HTTPS nauwkeurig te testen zoals in een productiesituatie.
Samenvatting
Het toevoegen van een door Docker gehoste website aan ServBay is een flexibele en efficiënte aanpak die ServBay als centrale hub gebruikt voor lokaal domein- en verkeersbeheer, terwijl Docker zorgt voor het draaien en isoleren van je applicatieomgeving. Met eenvoudige reverse proxy-configuratie kun je diverse Docker-projecten makkelijk integreren in je ServBay-ontwikkelproces. Volg bovengenoemde stappen en tips om jouw Dockerized website zonder problemen lokaal in te stellen en te gebruiken.