Files
websitedev/DOCKER.md
T
Do SikiandClaude Sonnet 5 8b2546a987 fix(docker): authenticate the dev app's MongoDB URI (MITHOME-98)
docker-compose.dev.yml's mongodb service sets MONGO_INITDB_ROOT_USERNAME/
PASSWORD, which makes the official mongo image enable --auth — but the
app service's MONGODB_URI was unauthenticated
(mongodb://mongodb:27017/mozdit). Same bug class as MITHOME-32
(staging/production), but that ticket covers docker-compose.staging.yml
/docker-compose.prod.yml specifically, not this dev file — hence the
separate MITHOME-98.

Why /api/health never caught it: that route is a pure liveness check
and never touches MongoDB. Only an endpoint that actually performs a
DB operation exercises the bug.

Verified live (docker compose -f docker-compose.dev.yml up --build):
- Reproduced the failure first: inside the running app container, a
  plain `mongodb://mongodb:27017/mozdit` connection's findOne() throws
  "Command find requires authentication" — confirms the hypothesis
  that the app fails only on a real query, not at startup.
- With the fix in place: POST /api/contact returns 200 with a
  submissionId, and the document is actually present in
  contact_submissions (checked via mongosh) — a real, previously-
  broken write path now works end to end.
- npm test: 58/58 passed (unaffected, as expected for a
  docker-compose/doc-only change).

Also fixed the same stale unauthenticated example in DOCKER.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 10:32:04 +02:00

3.2 KiB
Executable File

🐳 Docker Fejlesztői Környezet

Gyors Indítás

Előfeltételek

  • Docker és Docker Compose telepítve
  • Git repository klónozva

Teljes Stack Indítása

# Projekt gyökerében
docker-compose -f docker-compose.dev.yml up --build

# Vagy a proto könyvtárból
cd proto && npm run docker:dev

🚀 Szolgáltatások

A Docker stack a következő szolgáltatásokat indítja:

Szolgáltatás Port URL Leírás
Next.js App 8080 http://localhost:8080 Fő alkalmazás
MongoDB 27018 mongodb://localhost:27018 Adatbázis
Mongo Express 8081 http://localhost:8081 MongoDB Web UI
Loki 3100 http://localhost:3100 Log aggregátor
Grafana 3001 http://localhost:3001 Monitoring dashboard

🔐 Alapértelmezett Bejelentkezési Adatok

MongoDB:

  • Username: admin
  • Password: password123

Grafana:

  • Username: admin
  • Password: admin123

📊 MongoDB Hozzáférés

1. Mongo Express Web UI

2. MongoDB Shell (ha telepítve van)

# Kapcsolódás a containerhez
docker exec -it mozdit-mongodb-dev mongosh

# Vagy közvetlenül
mongosh "mongodb://admin:password123@localhost:27017/mozdit"

3. Alkalmazásból

Az alkalmazás automatikusan csatlakozik:

MONGODB_URI=mongodb://admin:password123@mongodb:27017/mozdit?authSource=admin

🛠️ Fejlesztési Parancsok

# Stack indítása (build-del)
npm run docker:dev

# Stack leállítása
npm run docker:dev:down

# Alkalmazás logok követése
npm run docker:dev:logs

# Egyedi Docker build
npm run docker:build

# Standalone container futtatása
npm run docker:run

📁 Adatok Perzisztencia

A következő Docker volume-ok tárolják az adatokat:

  • mongodb_data - MongoDB adatok
  • loki_data - Log adatok
  • grafana_data - Grafana beállítások

Adatok törlése:

docker-compose -f docker-compose.dev.yml down -v

🔄 Hot Reload

A fejlesztői környezet támogatja a hot reload-ot:

  • Kód változások automatikusan frissülnek
  • MongoDB adatok megmaradnak restart után
  • Volume mounting biztosítja a gyors fejlesztést

🚨 Hibaelhárítás

Port foglaltság

Ha a 3000-es port foglalt:

# Meglévő process keresése
lsof -i :3000

# Vagy másik port használata
docker-compose -f docker-compose.dev.yml up --build -p 3002:3000

MongoDB kapcsolat hiba

# Container logok ellenőrzése
docker logs mozdit-mongodb-dev

# Újraindítás
docker-compose -f docker-compose.dev.yml restart mongodb

Teljes tisztítás

# Minden container és volume törlése
docker-compose -f docker-compose.dev.yml down -v --remove-orphans
docker system prune -a

🏗️ Production Build

# Production image build
docker build -t mozdit-app:latest ./proto

# Production futtatás
docker run -p 3000:3000 \
  -e NODE_ENV=production \
  -e MONGODB_URI=mongodb://your-prod-db:27017/mozdit \
  mozdit-app:latest

📝 Megjegyzések

  • A fejlesztői környezet nem production-ready
  • Alapértelmezett jelszavak csak fejlesztésre
  • SSL/TLS nincs konfigurálva
  • Biztonsági headers minimálisak