Files
websitedev/docs/mozd_it_weboldal_kovetelmeny_dokploy_deploy_specifikacio_mvp.md
T
Do SikiandClaude 777f53da4b Add initial project documentation
đŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 21:53:36 +02:00

10 KiB
Raw Blame History

mozdIT Bt. — Weboldal követelmĂ©ny + Dokploy deploy specifikĂĄciĂł (MVP)

0) Rövid összefoglaló

CĂ©l: minimĂĄlis, de komplett, mobil‑elsƑ, gyors Ă©s biztonsĂĄgos bemutatkozĂł weboldal a mozdIT Bt.-nek, kiemelt Webmail linkkel Ă©s rövid, egyedi bemutatkozĂĄssal. A kĂ©sƑbb kĂ©szĂŒlƑ admin aloldal (szerver‑monitoring/menedzsment) helye elƑkĂ©szĂ­tve. Deployment Ă©s tesztelĂ©s: Dokploy környezetben.


1) MVP oldalak és funkciók

Oldalak

  • KezdƑlap: rövid, egyedi bemutatkozĂł szöveg; CTA: Webmail link (kĂŒlsƑ URL); szolgĂĄltatĂĄsok rövid dobozai.
  • RĂłlunk: rövid törtĂ©net, mƱködĂ©s Ăłta, szemĂ©lyes ĂŒgyfĂ©lkezelĂ©s, megbĂ­zhatĂłsĂĄg.
  • SzolgĂĄltatĂĄsok: web hosting, email szolgĂĄltatĂĄs, DNS adminisztrĂĄciĂł (rövid leĂ­rĂĄs + kapcsolat CTA).
  • Kapcsolat: Ʊrlap (nĂ©v, email, ĂŒzenet, GDPR checkbox); cĂ©g e‑mail, telefonszĂĄm (ha lesz), cĂ©gnĂ©v, szĂ©khely.
  • Admin (elƑre jelzett aloldal): /<admin> route fenntartva; tartalom kĂ©sƑbb.

FunkciĂłk (MVP)

  • ReszponzĂ­v navigĂĄciĂł (hamburger mobilon, sticky header desktopon).
  • ưrlapvalidĂĄciĂł (frontend: required + e‑mail forma; backend: spam‑vĂ©dett endpoint).
  • SEO alapok (title/description per oldal, OG, sitemap, robots).
  • Analytics: Plausible (cookieless) vagy GA4 (cookie‑consenttel).

2) Nem‑funkcionĂĄlis követelmĂ©nyek

  • ReszponzivitĂĄs: mobile‑first; törĂ©spontok: 360 / 640 / 768 / 1024 / 1280+ px.
  • TeljesĂ­tmĂ©ny: Lighthouse (mobil/desktop) ≄ 90; kĂ©pek WebP/AVIF; lazy‑load; kritikus CSS minimalizĂĄlĂĄs.
  • A11y: WCAG 2.1 AA (fĂłkusz, ARIA, kontraszt ≄ 4.5:1, logikus heading).
  • BiztonsĂĄg: HTTPS, alap CSP, XSS/CSRF vĂ©delem, input szƱrĂ©s a backend felĂ©.
  • MegfigyelhetƑsĂ©g: Sentry (client) + alap logok; uptime healthcheck.

3) TechnolĂłgiai stack

  • Frontend: Next.js (React + TypeScript) — SSG/SSR vegyes; App Router.
  • UI: Tailwind CSS + egyszerƱ sajĂĄt komponensek (kĂ©sƑbb: shadcn/ui opcionĂĄlis).
  • ưrlapok: React Hook Form + Zod.
  • State: minimĂĄlis local state + SWR (ha kell fetch).
  • Teszt: Jest + Testing Library (unit), Playwright (E2E — smoke a fƑ flow‑kra).
  • CMS (opcionĂĄlis kĂ©sƑbb): Strapi/Sanity; MVP‑ben statikus tartalom JSON/MDX.

Projekt‑struktĂșra (rövid):

/src
  /app (Next.js routes)
  /components
  /styles
  /lib
  /tests (unit + e2e cfg)
/public

4) Tartalom (MVP) — copy irány

  • Hero cĂ­m (KezdƑlap): „MegbĂ­zhatĂł web‑ Ă©s email‑szolgĂĄltatĂĄs szemĂ©lyre szabott tĂĄmogatĂĄssal.”
  • AlcĂ­m: „Kis ĂŒgyfĂ©lkör, nagy figyelem: stabil tĂĄrhely, ĂŒzembiztos levelezĂ©s Ă©s DNS adminisztrĂĄciĂł — gyors reakciĂłval.”
  • USP bullet‑ek: szemĂ©lyes ĂŒgyfĂ©lkezelĂ©s; gyors reagĂĄlĂĄs; stabil hĂĄttĂ©r; rugalmas tĂĄmogatĂĄs.
  • Webmail gomb: „UgrĂĄs a Webmailre”.
  • RĂłlunk rövid: miĂłta mƱködtök; miĂ©rt a kicsi ĂŒgyfĂ©lkör; megbĂ­zhatĂłsĂĄg/folyamatos tĂĄmogatĂĄs.
  • SzolgĂĄltatĂĄs dobozok: Web Hosting / Email / DNS Admin (1–2 mondat/elem, Kapcsolat CTA).

(Megjegyzés: a végleges szöveg a review sorån finomhangolható.)


5) Dokploy környezet — architektĂșra Ă©s folyamat

5.1 Környezetek

  • Staging: staging.mozdit.hu (pl. alap auth / IP‑korlĂĄtozĂĄs, ha kell)
  • Production: mozdit.hu (www → apex redirect vagy fordĂ­tva)

5.2 Alap komponensek

  • Reverse proxy/ingress: Dokploy beĂ©pĂ­tett (Traefik/Nginx környezet — a dokploy stack szerint).
  • App kontĂ©ner: Next.js app (Node 20) — SSG build + Node futtatĂĄs (vagy statikus export + Nginx).
  • OpciĂł: CDN (Cloudflare) a statikus assetekhez.

5.3 Environment våltozók (példa)

  • NEXT_PUBLIC_WEBMAIL_URL=https://webmail.mozdit.hu
  • COMPANY_NAME=mozdIT Bt.
  • SITE_URL=https://mozdit.hu
  • ANALYTICS_PROVIDER=plausible|ga4
  • PLAUSIBLE_DOMAIN=mozdit.hu (ha Plausible)
  • GA4_ID=G-XXXXXXX (ha GA4)
  • CONTACT_API_URL=https://api.mozdit.hu/contact (ha kĂŒlön backend)

5.4 Healthcheck & readiness

  • HTTP GET /api/health → {status:"ok"}
  • Staging/prod deploy csak zöld health esetĂ©n; rollback automatikus szabĂĄly (utolsĂł zöld image).

6) Docker & build

6.1 Next.js multi‑stage Dockerfile (Node 20)

# 1) Build stage
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json* pnpm-lock.yaml* yarn.lock* ./
RUN npm ci --prefer-offline --no-audit --legacy-peer-deps || npm ci
COPY . .
RUN npm run build

# 2) Run stage (Node server)
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
RUN npm ci --omit=dev --prefer-offline --no-audit || true
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=5s --retries=5 CMD wget -qO- http://localhost:3000/api/health || exit 1
CMD ["npm","start"]

MegjegyzĂ©s: Ha statikus export (SSG only) elegendƑ, vĂĄlaszthatĂł Nginx runtime is.

6.2 Dokploy app (magas szint)

  • Repository link + branch per environment (main → prod, develop → staging) vagy tag‑alapĂș deploy.
  • Build & deploy: Dockerfile alapjĂĄn; port 3000; domain mapping staging/prod; env‑ek UI‑bĂłl/secret store‑bĂłl.
  • Zero‑downtime: rolling frissĂ­tĂ©s (legalĂĄbb 2 replika prod‑on, ha erƑforrĂĄs engedi).

7) CI/CD (példa: GitHub Actions)

Workflow: lint → unit → build → e2e (smoke, staging) → Dokploy deploy → Lighthouse check (staging) → prod release

.github/workflows/ci.yml (részlet):

name: CI
on:
  push:
    branches: ["main", "develop"]
jobs:
  build-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npm ci
      - run: npm run lint && npm run test -- --ci
      - run: npm run build
  docker:
    needs: build-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build & push image
        uses: docker/build-push-action@v5
        with:
          push: true
          context: .
          tags: registry.example.com/mozdit/site:${{ github.sha }}
  deploy-staging:
    needs: docker
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Dokploy staging deploy
        run: |
          curl -X POST "$DOKPLOY_STAGING_HOOK" -H "Authorization: Bearer $DOKPLOY_TOKEN" \
               -d '{"image":"registry.example.com/mozdit/site:${{ github.sha }}"}'
    environment: staging
  lighthouse:
    needs: deploy-staging
    runs-on: ubuntu-latest
    steps:
      - name: Lighthouse CI
        run: npx @lhci/cli autorun --collect.url=https://staging.mozdit.hu
  deploy-prod:
    if: github.ref == 'refs/heads/main'
    needs: lighthouse
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Dokploy prod deploy
        run: |
          curl -X POST "$DOKPLOY_PROD_HOOK" -H "Authorization: Bearer $DOKPLOY_TOKEN" \
               -d '{"image":"registry.example.com/mozdit/site:${{ github.sha }}"}'
    environment: production

MegjegyzĂ©s: a Dokploy‑oldali webhook/API URL Ă©s token a platform beĂĄllĂ­tĂĄsĂĄtĂłl fĂŒgg; ha Git integrĂĄciĂłt hasznĂĄltok, a "Trigger" lĂ©pĂ©s helyett auto‑deploy szabĂĄly is beĂĄllĂ­thatĂł.


8) Tesztelés a Dokploy stagingen

  • Smoke E2E (Playwright): 3 alap flow → kezdƑlap betölt, Webmail link mƱködik, Kapcsolat Ʊrlap hibakezelĂ©s OK.
  • VizsgĂĄlatok: Lighthouse (mobil & desktop), A11y ellenƑrzƑ (axe), 404/500 oldal viselkedĂ©s.
  • MegfigyelĂ©s: Sentry DSN kapcsolva; health endpoint figyelĂ©se.

9) Biztonsåg & adatvédelem

  • HTTPS (Let’s Encrypt / Dokploy integrĂĄciĂł), HSTS.
  • CSP baseline (script‑src 'self' + szĂŒksĂ©ges 3rd party); Referrer‑Policy, X‑Frame‑Options (SAMEORIGIN), X‑Content‑Type‑Options.
  • GDPR: cookie banner ha GA4; Plausible esetĂ©n banner elhagyhatĂł.
  • Kapcsolat Ʊrlap: captcha/light rate‑limit, backend input validĂĄciĂł, e‑mail kĂŒldĂ©s queue‑val (ha szĂŒksĂ©ges).

10) Rollback, backup, verziĂłzĂĄs

  • Release tag (semver) + image tag; Dokploy‑ban korĂĄbbi image visszagörgetĂ©s.
  • Konfig backup: env‑ek Ă©s Dokploy app export; infra‑as‑code (Dockerfile, workflow‑k) GIT‑ben.

11) Elfogadåsi kritériumok (MVP)

  • KezdƑlap, RĂłlunk, SzolgĂĄltatĂĄsok, Kapcsolat elĂ©rhetƑ Ă©s reszponzĂ­v.
  • Webmail link jĂłl mƱködik (Ășj lapon, nofollow opcionĂĄlis).
  • Lighthouse ≄ 90 minden fƑ mĂ©rƑszĂĄmon stagingen.
  • ưrlap hibĂĄk/fĂłkuszĂĄllapotok a11y‑konformak.
  • CI pipeline zöld, staging deploy automatikus; prod deploy csak zöld staging utĂĄn.

12) KezdƑ feladatlista (ticket sablonok)

  1. Repo & Next.js bootstrap — Acceptance: app indul dev módban; TS, ESLint, Prettier beállítva.
  2. Tailwind + alap layout — Acceptance: reszponzív header/footer; tipográfia, színek.
  3. KezdƑlap (Hero + USP + Webmail CTA) — Acceptance: 1s alatt festƑdik mobilon; link mƱködik.
  4. RĂłlunk oldal — Acceptance: heading‑hierarchia helyes; szövegek MDX‑bƑl tölthetƑk.
  5. Szolgáltatások oldal — Acceptance: 3 doboz + CTA → Kapcsolat.
  6. Kapcsolat Ʊrlap + API stub — Acceptance: validĂĄciĂł, hibĂĄk; egyszerƱ spam‑vĂ©delem.
  7. /api/health endpoint — Acceptance: {status:"ok"} JSON.
  8. Dockerfile + Dokploy staging app — Acceptance: buildel, deployol, domain Ă©l.
  9. CI (lint, unit) + Staging deploy trigger — Acceptance: PR‑re fut; stagingre pushol.
  10. Playwright smoke E2E + Lighthouse CI — Acceptance: fut stagingen, riport mentve.
  11. Prod app + domain + HTTPS — Acceptance: Ă©lƑ site; automatikus HTTPS; monitoring bekapcsolva.

13) KĂ©sƑbbi bƑvĂ­tĂ©sek

  • Blog/ÚjdonsĂĄgok; többnyelvƱsĂ©g; admin aloldal funkciĂłi; CDN cache; kĂ©pgenerĂĄlĂĄs; CMS integrĂĄciĂł.

MegjegyzĂ©s: A vĂ©gleges Dokploy beĂĄllĂ­tĂĄsok (webhook/API, auto‑deploy, replika szĂĄm, storage) a rendelkezĂ©sre ĂĄllĂł szerver erƑforrĂĄsoktĂłl Ă©s a Dokploy verziĂłjĂĄtĂłl fĂŒggƑen finomhangolandĂłk.