11# Access & Credentials — ETL Microservices Platform
22
3- > ** Security note:** I valori mostrati qui sono i ** default di sviluppo ** definiti in ` .env.example ` .
4- > In produzione, sovrascrivili tutti nel file ` .env ` (mai committare ` .env ` su Git).
3+ > ** Security note:** Values shown here are ** development defaults ** defined in ` .env.example ` .
4+ > In production, override them all in the ` .env ` file (never commit ` .env ` to Git).
55
66---
77
88## Quick Reference — Service URLs
99
10- | Servizio | URL | Credenziali |
10+ | Service | URL | Credentials |
1111| ---| ---| ---|
12- | ** Grafana** (dashboard monitoraggio ) | http://localhost:3000 | ` admin ` / ` change-me-strong-password ` |
13- | ** Prometheus** (metriche raw) | http://localhost:9090 | — nessuna auth — |
14- | ** Airflow** (orchestrazione DAG) | http://localhost:8080 | ` admin ` / ` admin ` (creato al primo avvio ) |
15- | ** Streamlit UI** (AI pipeline builder) | http://localhost:8501 | — nessuna auth — |
16- | ** cAdvisor** (container metrics) | http://localhost:8088 | — nessuna auth — |
17- | ** PostgreSQL** (DB interno Airflow ) | ` localhost:5432 ` | ` airflow ` / ` change-me-strong-password ` |
18- | ** statsd-exporter** (metrics Airflow→Prom ) | http://localhost:9102/metrics | — nessuna auth — |
12+ | ** Grafana** (monitoring dashboard ) | http://localhost:3000 | ` admin ` / ` change-me-strong-password ` |
13+ | ** Prometheus** (raw metrics ) | http://localhost:9090 | — no auth — |
14+ | ** Airflow** (DAG orchestration ) | http://localhost:8080 | ` admin ` / ` admin ` (created on first boot ) |
15+ | ** Streamlit UI** (AI pipeline builder) | http://localhost:8501 | — no auth — |
16+ | ** cAdvisor** (container metrics) | http://localhost:8088 | — no auth — |
17+ | ** PostgreSQL** (Airflow internal DB ) | ` localhost:5432 ` | ` airflow ` / ` change-me-strong-password ` |
18+ | ** statsd-exporter** (Airflow→Prometheus metrics ) | http://localhost:9102/metrics | — no auth — |
1919
2020---
2121
22- ## ETL Microservices — Porte & Health Endpoints
22+ ## ETL Microservices — Ports & Health Endpoints
2323
24- Tutti i servizi espongono ` GET /health ` e ` GET /metrics ` .
24+ All services expose ` GET /health ` and ` GET /metrics ` .
2525
26- | Container | Porta | Health check |
26+ | Container | Port | Health check |
2727| ---| ---| ---|
2828| ` extract-csv-service ` | 5001 | http://localhost:5001/health |
2929| ` clean-nan-service ` | 5002 | http://localhost:5002/health |
@@ -37,82 +37,82 @@ Tutti i servizi espongono `GET /health` e `GET /metrics`.
3737| ` outlier-detection-service ` | 5011 | http://localhost:5011/health |
3838| ` text-completion-llm-service ` | 5012 | http://localhost:5012/health |
3939
40- > ** Porta 5003** — non assegnata (gap storico ). Prossimo servizio disponibile : ** 5013** .
40+ > ** Port 5003** — unassigned (historical gap ). Next available port : ** 5013** .
4141
4242---
4343
44- ## Variabili d'Ambiente — ` .env `
44+ ## Environment Variables — ` .env `
4545
46- Copia ` .env.example ` in ` .env ` e modifica i valori prima di avviare lo stack.
46+ Copy ` .env.example ` to ` .env ` and modify values before starting the stack.
4747
4848``` bash
4949cp .env.example .env
5050```
5151
52- | Variabile | Default | Descrizione |
52+ | Variable | Default | Description |
5353| ---| ---| ---|
54- | ` POSTGRES_USER ` | ` airflow ` | Username PostgreSQL |
55- | ` POSTGRES_PASSWORD ` | ` change-me-strong-password ` | Password PostgreSQL ⚠️ cambia in produzione |
56- | ` POSTGRES_DB ` | ` airflow ` | Nome database PostgreSQL |
57- | ` GF_SECURITY_ADMIN_PASSWORD ` | ` change-me-strong-password ` | Password admin Grafana ⚠️ cambia in produzione |
58- | ` ETL_DATA_ROOT ` | ` /app/data ` | Root directory dati nei container |
59- | ` ALLOW_PRIVATE_API_URLS ` | ` false ` | Permette URL privati nell' extract-api-service |
60- | ` HF_MODELS_PATH ` | ` ./hf_models ` | Path locale cache modelli HuggingFace |
61- | ` LLM_PROVIDER ` | ` openai ` | Provider AI : ` openai ` oppure ` local ` |
62- | ` OPENAI_API_KEY ` | * (vuoto )* | API key OpenAI — richiesta se ` LLM_PROVIDER=openai ` |
63- | ` OPENAI_MODEL ` | ` gpt-4o-mini ` | Modello OpenAI da usare |
54+ | ` POSTGRES_USER ` | ` airflow ` | PostgreSQL username |
55+ | ` POSTGRES_PASSWORD ` | ` change-me-strong-password ` | PostgreSQL password ⚠️ change in production |
56+ | ` POSTGRES_DB ` | ` airflow ` | PostgreSQL database name |
57+ | ` GF_SECURITY_ADMIN_PASSWORD ` | ` change-me-strong-password ` | Grafana admin password ⚠️ change in production |
58+ | ` ETL_DATA_ROOT ` | ` /app/data ` | Base directory for data in containers |
59+ | ` ALLOW_PRIVATE_API_URLS ` | ` false ` | Allow private URLs in extract-api-service |
60+ | ` HF_MODELS_PATH ` | ` ./hf_models ` | Local HuggingFace model cache path |
61+ | ` LLM_PROVIDER ` | ` openai ` | AI provider : ` openai ` or ` local ` |
62+ | ` OPENAI_API_KEY ` | * (empty )* | OpenAI API key — required if ` LLM_PROVIDER=openai ` |
63+ | ` OPENAI_MODEL ` | ` gpt-4o-mini ` | OpenAI model to use |
6464
6565---
6666
67- ## Credenziali Airflow
67+ ## Airflow Credentials
6868
69- L'utente admin viene creato automaticamente al primo avvio dal ` CMD ` nel Dockerfile Airflow
70- (idempotente: se esiste già non lo ricrea ).
69+ The admin user is created automatically on first boot by the ` CMD ` in the Airflow Dockerfile
70+ (idempotent: skipped if it already exists ).
7171
72- | Campo | Valore default |
72+ | Field | Default Value |
7373| ---| ---|
7474| Username | ` admin ` |
7575| Password | ` admin ` |
7676| URL | http://localhost:8080 |
7777
78- > Se stai usando un'istanza già avviata ** prima ** di questa modifica, crea l'utente manualmente :
78+ > If you are using an instance that started ** before ** this change, create the user manually :
7979> ``` bash
8080> docker exec airflow airflow users create \
8181> --username admin --password admin \
8282> --firstname Admin --lastname ETL \
8383> --role Admin --email admin@etl.local
8484> ` ` `
85- > Cambia la password dopo il primo login: ` Admin → Users → admin → Edit` .
85+ > Change the password after first login: ` Admin → Users → admin → Edit` .
8686
8787---
8888
8989# # Grafana — Login
9090
91- | Campo | Valore default |
91+ | Field | Default Value |
9292| ---| ---|
9393| URL | http://localhost:3000 |
9494| Username | ` admin` |
95- | Password | valore di ` GF_SECURITY_ADMIN_PASSWORD` nel ` .env` (default: ` change-me-strong-password` ) |
95+ | Password | value of ` GF_SECURITY_ADMIN_PASSWORD` in ` .env` (default: ` change-me-strong-password` ) |
9696
97- Il datasource ** Prometheus** e il dashboard ** ETL Microservices — Monitoring Overview** sono pre-caricati automaticamente tramite provisioning (non serve configurazione manuale ).
97+ The ** Prometheus** datasource and ** ETL Microservices — Monitoring Overview** dashboard are pre-loaded automatically via provisioning (no manual configuration needed ).
9898
9999---
100100
101- # # PostgreSQL — Connessione diretta
101+ # # PostgreSQL — Direct Connection
102102
103- SQLAlchemy URI (usata internamente da Airflow, utile anche per ispezione diretta ):
103+ SQLAlchemy URI (used internally by Airflow, also useful for direct inspection ):
104104` ` `
105105postgresql+psycopg2://airflow:change-me-strong-password@localhost:5432/airflow
106106```
107107
108108---
109109
110- ## Checklist Sicurezza (Produzione)
110+ ## Production Security Checklist
111111
112- - [ ] Cambia ` POSTGRES_PASSWORD ` con una password forte
113- - [ ] Cambia ` GF_SECURITY_ADMIN_PASSWORD ` con una password forte
114- - [ ] Imposta ` OPENAI_API_KEY ` con la tua chiave reale
115- - [ ] Aggiungi autenticazione ai microservizi (attualmente open su rete interna )
116- - [ ] Non esporre le porte ETL (5001–5012) su IP pubblici
117- - [ ] Abilita HTTPS per Grafana e Airflow in ambienti esposti
118- - [ ] Ruota credenziali Airflow admin dopo il primo login
112+ - [ ] Change ` POSTGRES_PASSWORD ` to a strong password
113+ - [ ] Change ` GF_SECURITY_ADMIN_PASSWORD ` to a strong password
114+ - [ ] Set ` OPENAI_API_KEY ` to your real key
115+ - [ ] Add authentication to microservices (currently open on internal network )
116+ - [ ] Do not expose ETL ports (5001–5012) on public IPs
117+ - [ ] Enable HTTPS for Grafana and Airflow in exposed environments
118+ - [ ] Rotate Airflow admin credentials after first login
0 commit comments