2.0 KiB
2.0 KiB
(Fejlesztői kézikönyv.)
👨💻 DEVELOPER RUNBOOK
🚀 Indítás
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())
"