dev-ops

Examen blog - Niveau 2

Complete stack met NodeJS, Postgres, Nginx & Traefik.

1. Traefik Setup (Root)

sudo -i
Word root gebruiker (nodig voor Traefik setup in home)
mkdir -p ~/traefik && cd ~/traefik
Maak de map aan en ga erin
docker network create gateway
Maak het gedeelde netwerk voor de proxy
docker compose up -d
Start Traefik (zorg dat dashboard label aan staat)

2. Dockerfiles Bouwen

FROM node:20-bullseye
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
Inhoud voor api/Dockerfile én frontend/Dockerfile

3. Configuratie (.env & Auth)

echo $(htpasswd -nb bloemkool SuperLekkerEten!)
Genereer Basic Auth hash voor Admin label
API_URL=http://frontend:4000
STORAGE=postgres
POSTGRES_HOST=db
POSTGRES_USER=postgres
POSTGRES_PWD=mysecret
POSTGRES_DB=blog
Voorbeeld inhoud voor .env bestand

4. Docker Compose Services

volumes:
- ./admin:/usr/share/nginx/html
Nginx Admin: Mount de map, bouw GEEN image
traefik.http.routers.api.rule=Host(`...`) && PathPrefix(`/api`)
Label: API routing met PathPrefix
traefik.http.middlewares.my-auth.basicauth.users=bloemkool:$$apr1$$...
Label: Voeg auth middleware toe aan Admin

5. Uitvoeren & DB

docker compose up -d --build
Bouw images en start de applicatie
docker compose logs -f api
Check of API connectie maakt met DB