dev-ops

Examen Todo - Niveau 2

NodeJS API, Statische Nginx Frontend & MongoDB.

1. Traefik Setup (Root)

sudo -i
Word root gebruiker
mkdir -p ~/traefik && cd ~/traefik
Maak map aan
docker network create gateway
Maak het netwerk aan
docker compose up -d
Start Traefik (zorg voor dashboard config)

2. Dockerfiles Bouwen

FROM node:20-bullseye
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
backend/Dockerfile (NodeJS)
FROM nginx:1.25
COPY . /usr/share/nginx/html
frontend/Dockerfile (Statische Nginx site!)

3. MongoDB Configuratie

MONGO_INITDB_DATABASE=examen
MONGO_INITDB_ROOT_USERNAME=examen
MONGO_INITDB_ROOT_PASSWORD=examenwachtwoord
Environment variabelen voor de DB container
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- mongodb-data:/data/db
Volume mounts voor init script en data persistence

4. .env Bestand (API)

STORAGE=mongodb
MONGODB_HOST=db
MONGODB_DB=examen
MONGODB_USER=examen
MONGODB_PWD=examenwachtwoord
Environment variabelen voor de API container

5. Docker Compose Labels

traefik.http.routers.api.rule=Host(`...`) && PathPrefix(`/api`)
API Routering (Backend)
traefik.http.routers.front.rule=Host(`...`)
Frontend Routering (Statisch)