Installation (Manual) ===================== Manual setup for local development without Docker. .. tip:: Prefer :doc:`quickstart` for faster Docker-based setup. Prerequisites ------------- * Python 3.11+ * PostgreSQL 12+ * Redis 6+ * OpenAI-compatible API key Setup ----- **1. Clone and install dependencies** .. code-block:: bash git clone https://code.europa.eu/regulatory-reporting/lfds.git ai4drpm cd ai4drpm/backend poetry install # or: pip install -r requirements.txt poetry shell # activate environment **2. Create PostgreSQL database** .. code-block:: sql CREATE DATABASE ai4drpm; CREATE USER ai4drpm_dev WITH PASSWORD 'dev_password'; GRANT ALL PRIVILEGES ON DATABASE ai4drpm TO ai4drpm_dev; **3. Configure environment** Create ``.env`` in backend directory: .. code-block:: bash SECRET_KEY=dev-secret-key-change-in-production DATABASE_URL=postgresql+psycopg2://ai4drpm_dev:dev_password@localhost:5432/ai4drpm REDIS_URL=redis://localhost:6379/0 CELERY_BROKER_URL=redis://localhost:6379/0 OPENAI_API_KEY=your-api-key-here ENVIRONMENT=development **4. Initialize database** .. code-block:: bash alembic upgrade head Run --- Start in separate terminals: .. code-block:: bash # Terminal 1: Celery worker celery -A ai4drpm.tasks.celery_worker:celery_app worker -l info # Terminal 2: FastAPI server python -m fastapi dev ai4drpm/api/api.py Access API docs at http://localhost:8000/docs Frontend (Optional) ------------------- .. code-block:: bash git clone https://code.europa.eu/regulatory-reporting/eui-frontend.git cd eui-frontend npm install npm start-proxy Access frontend at http://localhost:4200 Development Commands -------------------- .. code-block:: bash pytest tests/ # Run tests alembic revision --autogenerate -m "x" # Create migration alembic upgrade head # Apply migrations Troubleshooting --------------- * **Module not found**: Run ``pip install -e .`` * **Database connection failed**: Check PostgreSQL is running, verify ``DATABASE_URL`` * **Redis connection failed**: Check Redis is running (``redis-cli ping``) * **Port in use**: Kill process or use ``--port 8001``