(Fejlesztői kézikönyv.) # 👨‍💻 DEVELOPER RUNBOOK ## 🚀 Indítás ```bash cd /opt/docker/dev/service_finder docker compose up -d 🔍 Logok és Debug API log: docker logs -f service_finder_api Frontend log: docker logs -f service_finder_frontend DB Console: docker exec -it shared-postgres psql -U kincses -d service_finder ⚠️ Known Pitfalls (Hibaelhárítás) API URL: A frontend .env fájljában a VITE_API_BASE_URL nem lehet localhost, ha konténerben fut. Használd a belső IP-t vagy domain-t. Login 404: A /api/v1/users/me végpontot a backend routerben regisztrálni kell (jelenleg hiányzik vagy path mismatch van). OpenAPI 404: A helyes cím /api/v2/openapi.json. # 03. Development Environment Runbook ## 3.1. System Initialization (Bootstrap) Ha az adatbázis üres (vagy törölve lett), az első SuperAdmin felhasználót manuálisan kell létrehozni, mivel a regisztrációs végpontok védettek vagy nem adnak admin jogot. ### 3.1.1. SuperAdmin Létrehozása (Recommended) A jelszó hash-elési eltérések elkerülése érdekében használjuk a Python scriptet a konténeren belül: ```bash docker exec -it service_finder_api python3 -c " import bcrypt import asyncio from sqlalchemy import text from app.db.session import SessionLocal async def bootstrap_admin(): # 1. Jelszó generálás password = 'InitialPassword123'.encode('utf-8') hashed = bcrypt.hashpw(password, bcrypt.gensalt()).decode('utf-8') async with SessionLocal() as db: # 2. Person és User létrehozása/Frissítése # (A script feltételezi, hogy a Person rekord már létezik vagy itt hozod létre) sql = text(\"\"\" UPDATE data.users SET hashed_password = :h, role = 'superadmin', is_active = true, preferred_language = 'hu' WHERE email = 'admin@servicefinder.hu' \"\"\") await db.execute(sql, {'h': hashed}) await db.commit() print('✅ SuperAdmin Ready') if __name__ == '__main__': asyncio.run(bootstrap_admin()) "