Ga naar hoofdinhoud

Online zetten: Traefik op de server

Hier bouw je op verder: Bestanden kopiëren met scp

Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.

Docker draait op de server, en je project staat er. Nu komt de voordeur erbij, dezelfde als in WSL. Daarna antwoordt je server op internet, nog zonder site erachter.

De voordeur kopiëren​

De map ~/traefik uit les 22 hoort niet bij je project, dus hij staat niet op GitHub. Kopieer hem met scp, in WSL:

scp -r ~/traefik sam@203.0.113.10:

scp -r kopieert de hele map over ssh. De : zonder pad erachter betekent: naar de thuismap van sam.

Traefik starten​

Op de server maak je eerst het netwerk web, net als in WSL, en start je daarna Traefik:

docker network create web
cd ~/traefik
docker compose up -d

Je hebt nog geen domeinnaam nodig om te kijken of hij antwoordt. Open in de browser op je laptop het IP-adres van je server: http://203.0.113.10.

Docker en de firewall​

In les 28 hield ufw elke poort tegen die niet in de lijst staat. Voor Docker geldt dat niet. Een poort die je publiceert met ports in compose.yaml of -p, zet Docker zelf open, in de firewall van Linux, vóór de regels van ufw. Een gepubliceerde poort staat dus op internet, wat ufw ook zegt.

Daarom publiceert op je server alleen Traefik iets: poort 80, en straks 443. Die stonden al open in ufw. Je site krijgt in de volgende stap geen ports, net als in WSL. Wil je ooit iets publiceren dat alleen voor jou is, zet er dan 127.0.0.1: voor, zoals in les 21. Dan luistert Docker alleen op de server zelf.

Controlevraag
Om iets te testen start je op de server een container met -p 8000:8000. ufw laat 8000 niet door. Een klasgenoot opent het adres van je server met :8000 erachter. Wat ziet hij?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

De browser krijgt geen antwoord​

Oorzaak: Traefik draait niet, of poort 80 staat niet open in ufw.

Oplossing: kijk op de server met docker ps of traefik-traefik-1 erbij staat, en lees anders het logboek met docker compose logs in ~/traefik. Kijk met sudo ufw status of 80/tcp er staat, zoals in les 28.

network web declared as external, but could not be found​

Oorzaak: het netwerk web bestaat op de server nog niet. Het netwerk uit WSL gaat niet mee met scp: het is van de Docker op je laptop.

Oplossing: docker network create web, en daarna opnieuw docker compose up -d in ~/traefik.

No such file or directory bij cd ~/traefik​

Oorzaak: scp zette de map ergens anders neer. Zonder de : aan het eind van het adres maakt scp op je laptop een kopie met de naam sam@203.0.113.10.

Oplossing: kijk in WSL met ls of die map er staat, en gooi hem weg met rm -r sam@203.0.113.10. Typ het commando opnieuw, met de : erachter.

Door naar les 33: je site op je domein.