Modern, többnyelvű helyi turisztikai platformvezető rendszer eseménykezeléssel és térkép integrációval.
- Többnyelvű támogatás (Magyar, Angol, Német)
- Helyek (Places) kezelése - Kategóriák, címkék, ár sávok
- Események (Events) - Időzített események, pinned funkció
- Rich Text Editor - TipTap alapú WYSIWYG szerkesztő
- SEO optimalizáció - Dinamikus meta tagek, slugok
- Interaktív térkép - MapLibre GL alapú
- Drag-and-drop szűrők - Pozíció megőrzéssel
- Események lista - Real-time frissítések
- Reszponzív design - Mobil-optimalizált
- Modern UI - Inter font, gradiensek, árnyékok
- Role-based hozzáférés (superadmin, admin, editor, viewer)
- 2FA autentikáció - TOTP alapú
- Többbérlős (Multi-site) rendszer - Site Architecture dokumentáció
- Automatikus slug generálás
- Push értesítések - Web Push API
- SSR-ready - SEO meta tagek server-side
- PWA támogatás - Service Worker
- Real-time - React Query cache invalidation
- I18n - react-i18next
- Type-safe - 100% TypeScript
- React 19 - UI framework
- Vite 7 - Build tool
- TypeScript 5.9 - Type safety
- React Router 7 - Routing
- TanStack Query 5 - Server state management
- MapLibre GL - Maps
- TipTap - Rich text editor
- i18next - Internationalization
- NestJS 11 - Backend framework
- Prisma 7 - ORM
- PostgreSQL - Database
- Passport JWT - Authentication
- Web Push - Notifications
- Node.js 18+ - Runtime
- Node.js 18.x vagy újabb
- pnpm 10.x (javasolt package manager)
- PostgreSQL 14.x vagy újabb
- Git
git clone <repository-url>
cd hellolocalpnpm installHozd létre a .env fájlokat:
Backend (apps/api/.env):
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/hellolocal"
# JWT
JWT_SECRET="your-super-secret-jwt-key-change-this-in-production"
JWT_EXPIRES_IN="7d"
# Server
PORT=3002
FRONTEND_URL="http://localhost:5173"
# Web Push (opcionális)
VAPID_PUBLIC_KEY="your-vapid-public-key"
VAPID_PRIVATE_KEY="your-vapid-private-key"
VAPID_SUBJECT="mailto:your-email@example.com"Frontend (apps/web/.env):
VITE_API_URL=http://localhost:3002
VITE_VAPID_PUBLIC_KEY=your-vapid-public-keycd apps/api
pnpm db:resetdb:reset eldobja a helyi sémát, felteszi az egyetlen init migrációt, és betölti a demót.
Meglévő sémán a tartalom újratöltése: pnpm db:seed. Csak a helyi 127.0.0.1 adatbázison.
Három helyi mód (párhuzamosan is futhatnak, külön portokon):
# Helyi docker/dev DB (apps/api/.env) — web 5173, API 3002
pnpm local:dev
# Staging / beta DB (apps/api/.env.staging) — web 5174, API 3003
pnpm local:staging
# Éles adatok böngészése — web 5175, /api → https://api.hello-local.io (Vite proxy)
# Nincs helyi API production DATABASE_URL-lel. NE seed/migrate/truncate live ellen.
pnpm local:liveKülön terminálokban továbbra is:
pnpm run dev:api # 3002
pnpm run dev:web # 5173Ha http://localhost:5173/hu/etyek-budai üres: a helyi adatbázisban nincs régió.
Csak a helyi (127.0.0.1) adatbázison: pnpm -C apps/api db:seed.
Staging, live és production URL ellen soha ne futtass seedet vagy resetet.
cd apps/api
pnpm run build
pnpm startcd apps/web
pnpm run build
pnpm preview # Production previewdocker-compose up -dEz elindítja:
- PostgreSQL adatbázist
- Backend API-t (port 3002)
- Frontend-et (port 5173)
# Backend
docker build -f apps/api/Dockerfile -t hellolocal-api .
docker run -p 3002:3002 --env-file apps/api/.env hellolocal-api
# Frontend
docker build -f apps/web/Dockerfile -t hellolocal-web .
docker run -p 5173:5173 hellolocal-webLive production: Hetzner VPS (hello-local.io) via GitHub Actions SSH deploy — see .github/workflows/deploy.yml and deploy/.
Push to main / devel triggers production/devel stacks; staging uses deploy-beta.yml for beta.
Render.com is retired in this repo (render.yaml removed). Historical notes: docs/deployment-render.md (deprecated). Delete leftover Render services in the dashboard manually.
| Platform | Ár | Előnyök | Hátrányok |
|---|---|---|---|
| Railway.app | $5/hó után ingyenes | Egyszerű, gyors | Ingyenes limit kicsi |
| Fly.io | $0-5/hó | Global edge, Docker | Bonyolultabb config |
| Vercel (Frontend) | Ingyenes | Nagyon gyors, CDN | Csak frontend |
| Heroku | $7/hó | Megbízható | Nincs ingyenes tier |
| VPS (egyéb) | €4-5/hó | Teljes kontroll | Több setup munka |
A seed és az üres adatbázis indulása a super@example.com superadmin fiókot tölti be (admin felhasználónév), és ha még nincs régió, az Etyek–Budai mintaadatot is: település, helyek, események, szövegek és fordítások. A jelszó a snapshotban tárolt hash. Meglévő régiót és superadmin jelszót nem ír felül.
# Unit tesztek (TODO)
pnpm test
# E2E tesztek (TODO)
pnpm test:e2ecurl -X POST http://localhost:3002/api/admin/maintenance/generate-missing-slugs \
-H "Authorization: Bearer YOUR_JWT_TOKEN"pg_dump -h localhost -U user -d hellolocal > backup.sqlProduction környezetben nézd a Hetzner szerveren a Docker Compose logokat (docker compose logs), vagy a GitHub Actions Deploy workflow futásait.
- Fork-old a projektet
- Hozz létre egy feature branch-et (
git checkout -b feature/amazing-feature) - Commit-old a változásokat (
git commit -m 'feat: Add amazing feature') - Push-old a branch-et (
git push origin feature/amazing-feature) - Nyiss egy Pull Request-et
Proprietary License - All Rights Reserved. Lásd LICENSE fájlt
Lásd a GitHub Issues oldalt.
- Email: support@hellolocal.com
- Dokumentáció: docs/
- Issues: GitHub Issues
HelloLocal - Készítve ❤️ -vel