# 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 ```bash # 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](https://pm.llmdev.mozdit.hu) (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 ```bash ./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 Payload admin (`/admin`) draft/publish + verziózás munkafolyamata (MITHOME-92) nem jár git commit-tal vagy automatikus deployjal — a tartalom közvetlenül a MongoDB-be íródik. Kódváltozás (Globals/Collections séma, frontend) továbbra is a fenti git-alapú deploy folyamaton megy át. Részletek: `.agent/workflows/deploy.md`. ## Tartalomkezelés A weboldal szövegei Payload CMS Globals/Collections mezőkben élnek, az ügyfél a `/admin` felületen szerkeszti őket: ``` proto/src/globals/ # Home, About, Services, Contact, Common proto/src/collections/ # LegalPages, Partners, Media, ContactSubmissions, Users proto/src/payload.config.ts ``` Használat Server Component-ből (a Payload Local API-n keresztül): ```typescript import { getAboutContent } from '@/lib/payload-content' const about = await getAboutContent(locale) // locale: 'hu' | 'en' ``` A régi, JSON-alapú content rendszer (`proto/src/content/`) már csak a `migrate-content-to-payload.ts` seed-script forrásaként és néhány komponens-teszt fixture-jeként él tovább — élő oldal nem olvassa (MITHOME-91/93). ## Dokumentáció - **Agent-szabályok**: `.agent/AGENTS.md`, `.agent/steering/`, `.agent/workflows/` - **nginx vhost-ok**: `docs/nginx-vhosts.md` - **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_security` topic ## 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.