265b656df95aca78b35622f8437732ba0e64fe0a
CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Canceled after 0s
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Canceled after 0s
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Canceled after 0s
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Canceled after 0s
Server-side nginx config isn't tracked anywhere in this repo, which is exactly how an orphaned vhost went unnoticed: it used to reverse-proxy to the old CMS (content-editor.js, port 4001), retired in MITHOME-93. After that service was stopped/disabled, the vhost silently kept serving its still-valid TLS cert as nginx's apparent fallback for any unmatched *.mozdit.hu subdomain — which is what produced a real-looking (but harmless) Firefox "this site may be impersonating" warning when the user mistyped a URL. Repointed the vhost (server-side, not in this repo) to reverse-proxy /admin, /api/ and /_next/ to the same staging app container Payload already runs on (127.0.0.1:8081) — same backend as stage.mozdit.hu, just a friendlier admin-specific URL. Root redirects straight to /admin; anything else redirects to the canonical stage.mozdit.hu to avoid serving the public site twice. Reused the existing Let's Encrypt cert (no new certbot run needed). This commit only adds docs/nginx-vhosts.md, documenting what's live on the server and why, since nginx config itself isn't part of this repo's source of truth. Verified live: TLS cert now matches cms.stage.llmdev.mozdit.hu (no more mismatch warning), GET / redirects to /admin (302), GET /admin returns 200 with correctly loaded assets (checked in a real browser, zero console errors), GET /rolunk redirects to stage.mozdit.hu, GET /api/health proxies through correctly, and POST /api/users/login with the real staging admin credentials returns 200 through this domain too. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
mozdIT Bt. — Weboldal fejlesztés (websitedev)
Modern Next.js weboldal a mozdIT Bt. számára — webtárhely, email- és DNS-szolgáltatás, magyar IT vállalkozás.
Stack
- Frontend: Next.js 15 (Turbopack), React 19, TypeScript, Tailwind CSS 4
- CMS: Payload CMS (self-hosted,
/admin), MongoDB adapter, draft/publish + verziózás, hu/en lokalizáció - Tartalom: Payload Globals/Collections (a korábbi JSON-alapú content rendszer,
proto/src/content/, csak a migrációs script forrásaként és teszt-fixture-ként él tovább — MITHOME-91/93) - Backend: Next.js API routes, MongoDB
- Tesztelés: Jest, React Testing Library, Playwright (smoke)
- Deploy: natív Docker Compose (
deploy.sh) + Gitea Actions nélkül, lokálisan vezérelt - Monitoring: Winston + Loki, plusz
scripts/security-scan.sh(ntfy riasztással)
Gyors indítás
# Fejlesztői szerver
cd proto && npm run dev
# Docker fejlesztői környezet
docker-compose -f docker-compose.dev.yml up -d
# Teljes pre-deploy tesztkészlet
scripts/pre-deploy-tests.sh
Feladatkezelés (Plane)
- Projekt: MITHOME (workspace:
developments) - TODO.md: helyi tükör, a Plane az elsődleges forrás
- Szinkron:
node plane-sync.js(Plane → TODO.md) - Ticket-azonosítók:
MITHOME-XX
Deploy
./scripts/deploy_to_stage_on_local.sh # staging: teljes tesztkészlet + push + deploy + smoke
./deploy.sh production # éles (szerveren, staging ellenőrzése után)
A CMS „Publikálás" gombja szintén commitol + pushol + deployol (csak a beállított környezetre). Részletek: .agent/workflows/deploy.md, docs/helyi-staging-deploy.md.
Tartalomkezelés
A weboldal szövegei és a CMS a proto/src/content/ JSON-fájljaiból jönnek:
proto/src/content/
├── schema.js # közös séma-validátor (Next + CMS)
├── types.ts # TypeScript típusok
├── index.ts # tartalom-betöltő
├── common.json # közös szövegek (gombok, lábléc, a11y)
└── pages/ # oldalankénti tartalom (home, about, services, …)
Használat:
import { content, getPageContent } from '@/content'
const about = content.pages.about
Dokumentáció
- Agent-szabályok:
.agent/AGENTS.md,.agent/steering/,.agent/workflows/ - CMS felhasználói útmutató:
docs/felhasznaloi-utmutato.md(a CMS-ben a ❓ Súgó is ezt rendereli) - Plane szinkron:
PLANE-SYNC-GUIDE.md - Staging deploy:
docs/helyi-staging-deploy.md - Gitea runner:
docs/gitea-runner-telepites.md
Környezetek
- Staging: https://stage.mozdit.hu
- CMS (staging): https://cms.stage.llmdev.mozdit.hu
- ntfy (riasztás):
st_limidev_securitytopic
Biztonsági monitoring
scripts/security-scan.sh (cron, 5 percenként) kriptominer/backdoor indikátorokat figyel
(álcázott folyamatnevek, /tmp/.kworkerd-jellegű maradványok, magas CPU), és találat esetén
ntfy push-t küld a st_limidev_security topicra.
Languages
TypeScript
60.3%
JavaScript
24.8%
HTML
7%
Shell
4.4%
CSS
3%
Other
0.4%