Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Je werkmap met compose.yaml, .env en Caddy

Met docker compose beschrijf je al je containers in één bestand. In deze handleiding staan alle apps in de map /srv/diensten, met Caddy als voordeur die voor elke app https regelt. De recepten in hoofdstuk 7 voegen hier steeds een stukje aan toe. Hoe compose en de firewall samenwerken, lees je in Docker compose en de firewall van de cursus VPS en Linux-serverbeheer.

De map en de bestanden

anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml

Begin met alleen Caddy:

services:
  caddy:
    image: caddy:2
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config

volumes:
  caddy-data:
  caddy-config:

En het Caddyfile in dezelfde map:

{
	email beheer@example.com
}

Een regel version: bovenaan is niet meer nodig; die zie je nog in oude voorbeelden.

Starten en bekijken

anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose ps
anna@web1:/srv/diensten$ sudo docker compose logs -f caddy

up -d start alles op de achtergrond. Met Ctrl+C stop je het meekijken in de logs; de containers blijven draaien. Pas je het Caddyfile aan, laad het dan opnieuw met:

anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload

Geheimen in .env

Wachtwoorden en tokens zet je niet in compose.yaml, maar in een bestand .env in dezelfde map. In compose.yaml verwijs je ernaar met ${NAAM}.

anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env

Zet .env nooit in Git en deel hem niet.

Caddy staat ook al als dienst op je server?

Heb je Caddy of nginx geïnstalleerd zoals in hoofdstuk 5, dan zitten poort 80 en 443 al bezet. Kies één van twee:

  • Zet de dienst op de server uit (sudo systemctl disable --now caddy of nginx) en verhuis je sites naar het Caddyfile in /srv/diensten. Dat is wat de recepten aannemen.
  • Of laat de dienst op de server staan, laat Caddy in compose weg, en publiceer elke app alleen op 127.0.0.1 (zie Docker en de firewall: poorten veilig publiceren). Dan maak je per app een reverse proxy zoals in Een app achter een reverse proxy.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…