Zoeken op website

Hoe u uw eigen website host met Docker en Nginx Proxy Manager


Heb je altijd al je eigen website willen runnen, maar haat je het idee om hostingkosten te betalen? Dat is waar ik onlangs terecht ben gekomen, dus hier is hoe ik een snelle website heb opgezet met Docker, Nginx Proxy Manager en Ghost.

Wat heb je nodig om een persoonlijke website te runnen?

Het runnen van een persoonlijke website heeft een aantal vereisten. Tegen de tijd dat je operationeel bent, zou je een domeinnaam, een server om je website op te hosten (wat zelfs een oude laptop, NUC of Raspberry Pi kan zijn), Docker en een paar containers geïmplementeerd moeten hebben.

De eerste stap is de server om je website op te hosten. Het hoeft niet ultra-krachtig te zijn, en het kan zelfs een computer zijn die je nog thuis hebt liggen. Een Raspberry Pi, NUC, oude desktop of zelfs een oude laptop kan prima werken voor deze dienst. Je hebt gewoon iets nodig dat gemaakt is in de afgelopen 15 jaar of zo, dat nog steeds een modern besturingssysteem kan draaien (bij voorkeur Linux, maar Windows of macOS kunnen ook werken).

Vervolgens is er een domeinnaam. Je kunt je domein overal kopen, maar ik zou aanbevelen er een te vinden die DDNS native ondersteunt, zoals Cloudflare. Terwijl je een vast IP-adres krijgt bij het gebruik van een virtual private server (VPS) of een ander hostingplatform, is de kans groot dat je IP-adres verandert na verloop van tijd als je je website thuis host. Daar komt een DDNS (dynamische DNS) om de hoek kijken. In principe, naarmate je IP-adres thuis verandert, vernieuwt DDNS het A-record van je domein om naar je nieuwe IP-adres te verwijzen.

Naast een domein en DDNS-configuratie heb je ook Docker nodig voor de hostingmethode die ik hier ga aanbevelen. Docker kan zoveel uitvoeren, maar voor jouw website hebben we een DDNS-container, Nginx Reverse Proxy en natuurlijk jouw website zelf nodig.

Om de Cloudflare DDNS Docker-container te configureren, heeft u een API-sleutel voor Cloudflare nodig die de DNS-records voor het specifieke domein dat u gaat gebruiken kan wijzigen, het domein zelf en eventuele subdomeinen die u up-to-date wilt houden. Dit alles zal worden ingesteld met omgevingsvlaggen in Docker, waardoor het eenvoudig is om nieuwe subdomeinen en domeinen in de toekomst te wijzigen of toe te voegen.

Om snel van de grond te komen, kun je een site zoals Wat is mijn IP-adres bezoeken om je openbare IP te vinden. Ga je gang en voer dat IP in in het A-record van het domein dat je wilt gebruiken voor je website. Je DDNS zal dat bijwerken als het domein verandert, maar het nu handmatig invoeren zal alleen helpen om de zaken later te versnellen.

Nginx Proxy Manager Beheert Uw Reverse Proxy Behoeften

De eerste Docker-container die opstart na je DDNS zal Nginx Proxy Manager zijn. Met Nginx Proxy Manager kun je het binnenkomende verkeer naar de Docker-container van je website leiden.

Nginx Proxy Manager is een reverse proxy. Het neemt inkomend verkeer op poorten :80 en :443 (onbeveiligde en SSL-verbindingen) en forwarded het naar een andere locatie op uw netwerk. U moet de firewall van uw netwerk configureren om de externe poorten 443 en 80 door te geven naar wat deze poorten ook zijn toegewezen voor uw Nginx Proxy Manager-installatie.

Zodra je de Nginx Proxy Manager Docker-container actief hebt en je poorten zijn doorgestuurd, is het tijd om de routing in te stellen. Begin met het navigeren naar hosts en klik vervolgens op nieuwe host toevoegen. Je ziet een popup, en daar vul je de informatie in voor je website. Typ gewoon het domein, het server-IP en de poort waarop je de site zult draaien. De poort kan zijn wat je wilt, en wordt doorgaans bepaald door de software die je gebruikt.

Bijvoorbeeld, je kunt blog.domain.com laten doorverwijzen naar 192.168.1.6:2368, wat het IP-adres van jouw server zou zijn met de Ghost-poort erachter. Wanneer iemand blog.domain.com bezoekt, zou het dan naar jouw publieke IP worden gerouteerd en dan zou Nginx Proxy Manager het naar de juiste container routeren.

Niet alleen verzorgt Nginx Proxy Manager de routering, maar het zorgt ook voor SSL-certificaten via Let's Encrypt. Deze gratis SSL-certificaten kunnen diegenen die uw blog doorbladeren gemoedsrust geven, door een extra beveiligingslaag toe te voegen aan de browsesessie. Het gehele SSL-proces, van begin tot eind, is ook naadloos binnen Nginx Proxy Manager.

Zodra je in staat bent om één reverse proxy in te stellen, is het vrij eenvoudig om er zoveel als je wilt in te stellen. Ik heb meer dan 30 reverse proxies op mijn eigen netwerk, voor diensten zoals Calibre Web, audiobookshelf, Tautulli, Minecraft-servers, een Satisfactory-server, een Ark Survival: Evolved-server, en nog veel meer.

Ghost is een eenvoudig te gebruiken blogplatform.

Nu je bijna alles ingesteld hebt, is het tijd om Ghost te installeren.

Je zou kunnen verwachten dat ik WordPress gebruik, aangezien het een meerderheid van het internet laat draaien. Hoewel WordPress geweldig is en ik het al meer dan 15 jaar gebruik, is Ghost dit keer het platform waarop ik mijn persoonlijke blog draai. Het is lichtgewicht, gebruiksvriendelijk en, eerlijk gezegd, gewoon eenvoudiger dan WordPress.

Ghost is gericht op het zijn van een blog die ook een nieuwsbriefcomponent kan hebben. Berichten worden geschreven in markdown (mijn favoriete manier van schrijven), en er zijn verschillende plugins voor enkele van de grotere diensten daarbuiten, zoals Instagram, Discord, MailChimp, YouTube, Patreon en anderen.

Om Ghost te starten, moet je een paar dingen doen. We beginnen in Nginx Proxy Manager. Maak een nieuwe proxy-host aan met je domeinnaam in het eerste veld, laat het schema als HTTP, voer het IP-adres van je Docker-server in en vervolgens de poort 2368.

Ik controleer meestal de schakelaars voor cache-assets, blokkeer veelvoorkomende exploits en ondersteuning voor websockets. Sla de volgende stap over naar het SSL-tabblad, en ga over het tabblad met aangepaste locaties. Kies hier 'Vraag een nieuw SSL-certificaat aan' en stem in met de voorwaarden, voer vervolgens je e-mailadres in. Klik op opslaan, en je reverse proxy is ingesteld.

Ga nu terug naar je Docker-host. Persoonlijk gebruik ik Portainer als een web-GUI voor Docker, maar omdat alles via Docker Compose wordt gedaan, zijn de installatiebestanden in beide gevallen identiek.

Als je hetzelfde Docker Compose-bestand wilt gebruiken dat ik gebruik voor mijn Ghost-blog, kijk dan eens naar mijn homelab GitHub-repo. Zorg ervoor dat je de domeinnaam vervangt door je eigen domein en wijzig ook het MySQL-wachtwoord in iets veiliger.

Zodra je het Docker Compose-bestand hebt gedeployed, zou je Ghost-blog operationeel moeten zijn op je nieuwe domein!

Je website is live! En nu?

Als alles goed is gedaan en je de port forwarding-instellingen goed hebt geconfigureerd op je router, dan zou je in staat moeten zijn om naar je domeinnaam te navigeren die je hebt ingesteld en extern toegang te krijgen tot de Ghost-instantie.

Nu je website live is, wat komt er nu? Nou, je wilt beginnen met het configureren van de Ghost-blog. Er zijn veel YouTube-video's en andere artikelen die je stap voor stap uitleggen wat je daar moet doen. Ik heb nog niet eens alle configuratieopties volledig uitgevogeld.

Op dit moment is je website live op het internet en kan iedereen er toegang toe krijgen. Je wilt misschien een landingspagina opzetten terwijl je eraan werkt, of het gewoon laten zoals het is terwijl het in aanbouw is. Begin met het publiceren van blogposts, het versturen van e-mailnieuwsbrieven en geniet van het hosten van je eigen persoonlijke website op hardware in je huis, zonder hostingkosten!


Een volwaardige blog starten is misschien niet precies wat je zoekt. Als dat zo is, dan is microbloggen misschien precies wat je zoekt. Het is iets anders dan traditionele blogs en is veel makkelijker op te zetten omdat het meestal op sociale media gebeurt, wat betekent dat er geen databases geconfigureerd hoeven te worden, geen DDNS of reverse proxies ingesteld hoeven te worden, en het is vaak gratis!

Gerelateerde artikelen: