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 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):
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_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.