-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
209 lines (179 loc) · 8.93 KB
/
Copy path.env.example
File metadata and controls
209 lines (179 loc) · 8.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# Image tags
POSTGRES_IMAGE_TAG=16-alpine
REDIS_IMAGE_TAG=7-alpine
KAFKA_IMAGE_TAG=7.6.1
MINIO_IMAGE_TAG=latest
SPARK_IMAGE_TAG=3.5.1
AIRFLOW_IMAGE_TAG=2.9.3-python3.11
DBT_IMAGE_TAG=1.8.2
SUPERSET_IMAGE_TAG=latest
JUPYTER_IMAGE_TAG=latest
PROMETHEUS_IMAGE_TAG=v2.54.1
GRAFANA_IMAGE_TAG=11.1.4
# Postgres OLTP
PG_OLTP_USER=oltp_user
PG_OLTP_PASSWORD=oltp_pass
PG_OLTP_DB=techmart_oltp
PG_OLTP_PORT=5433
# Postgres OLAP (DWH)
PG_OLAP_USER=olap_user
PG_OLAP_PASSWORD=olap_pass
PG_OLAP_DB=techmart_dwh
PG_OLAP_PORT=5434
# Postgres MetaDB
PG_META_USER=meta_user
PG_META_PASSWORD=meta_pass
PG_META_DB=metadb
PG_META_PORT=5435
# Airflow
AIRFLOW_DB_NAME=airflow
AIRFLOW_ADMIN_USER=admin
AIRFLOW_ADMIN_PASSWORD=admin
AIRFLOW_WEBSERVER_SECRET_KEY=change_me_airflow_secret
# AIRFLOW_PORT — раньше проброс UI; Web UI только через ingress (INGRESS_PORT)
AIRFLOW_UID=50000
# Spark privacy (staging anonymization). Use a strong secret in production.
SPARK_PRIVACY_SALT=change-me-in-production
SPARK_JOB_ENV=production
# Superset
SUPERSET_DB_NAME=superset
SUPERSET_ADMIN_USER=admin
SUPERSET_ADMIN_PASSWORD=admin
SUPERSET_SECRET_KEY=change_me_superset_secret
# SUPERSET_PORT не публикуется; UI через INGRESS_URL/superset/
# Четвёртый дашборд (финансы демо): таблицы demo_fin.* в postgres_olap после DAG dag_spark_hive_finance_cbr_demo (Spark пишет в Postgres OLAP, не в Hive)
# Airflow Variable (опционально): SPARK_PG_FINANCE_LOOKBACK_DAYS — глубина дней для DAG выше; при отсутствии используется SPARK_HIVE_FINANCE_LOOKBACK_DAYS, иначе 400
# MinIO
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio123
MINIO_PORT=9000
# Консоль MinIO только за ingress (/minio-console/); см. MINIO_BROWSER_REDIRECT_URL
# Redis
REDIS_PORT=6379
# Kafka
KAFKA_PORT=9092
# Spark
SPARK_MASTER_PORT=7077
# Spark UI только за ingress (/spark-master/, /spark-worker/)
# MLflow
# MLFLOW UI только за ingress (/mlflow/)
MLFLOW_TRACKING_URI=http://mlflow:5000
MLFLOW_EXPERIMENT_NAME=DataOpsShowcaseSpark
MLFLOW_MODEL_NAME=orders_revenue_regressor
MLFLOW_BACKEND_STORE_URI=postgresql+psycopg2://meta_user:meta_pass@postgres_metadb:5432/mlflow
MLFLOW_S3_ENDPOINT_URL=http://minio:9000
MLFLOW_ARTIFACT_ROOT=s3://mlflow-artifacts
AWS_DEFAULT_REGION=us-east-1
# Monitoring (Prometheus/Grafana UI только через ingress)
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
# Jupyter через ingress /jupyter/ (порт контейнера не публикуется)
JUPYTER_TOKEN=changeme
# Data generator — non-secret "company profile" defaults: configs/generators/company.generator.json
# Merge order before per-field env: code baseline -> file JSON -> GENERATOR_SETTINGS_JSON -> meta DB (if enabled)
# Env overrides merged profile when non-empty for that field (empty string falls back to merged).
# Docker: variables must appear in docker-compose.yml data_generator.environment (or env_file) to reach the container.
GENERATOR_CONFIG_DIR=/app/configs/generators
GENERATOR_SETTINGS_FILE=/app/configs/generators/company.generator.json
# GENERATOR_SETTINGS_JSON={"tick_seconds":5}
GENERATOR_USE_META_STORE=false
# GENERATOR_META_DSN=postgresql://${PG_META_USER}:${PG_META_PASSWORD}@postgres_metadb:5432/${PG_META_DB}
GENERATOR_PROFILE=default
# При старте data_generator: применить DDL расширений OLTP из файла (старый Docker-том Postgres без init-скриптов — см. docs/SETUP.md)
# OLTP_EXTENSIONS_SQL=/app/sql/02b_oltp_marketing_hr_finance.sql
# Examples: GENERATOR_TICK_SECONDS=5 GENERATOR_ENABLE_KAFKA=false
# Integration tests (host reaches compose ports): pytest tests/integration -m integration
# GENERATOR_IT_OLTP_DSN=postgresql://oltp_user:oltp_pass@localhost:55432/techmart_oltp
# GENERATOR_IT_REDIS_URL=redis://localhost:6379/0
# GENERATOR_IT_KAFKA_BOOTSTRAP=localhost:9092
# GENERATOR_IT_MINIO_ENDPOINT=localhost:9000
# GENERATOR_IT_MINIO_ACCESS_KEY=minio
# GENERATOR_IT_MINIO_SECRET_KEY=minio123
# Kafka topics
KAFKA_TOPIC_CLICKSTREAM=techmart.events.clickstream
KAFKA_TOPIC_ORDERS=techmart.events.orders
KAFKA_TOPIC_PAYMENTS=techmart.payments.transactions
KAFKA_TOPIC_SHIPMENTS=techmart.shipments.tracking
KAFKA_TOPIC_MARKETING_EMAIL=techmart.marketing.email_events
KAFKA_TOPIC_SEO_ORGANIC=techmart.seo.organic_sessions
KAFKA_TOPIC_HR_TIME_TRACKING=techmart.hr.time_tracking
KAFKA_TOPIC_FEATURE_FLAG_EVAL=techmart.features.evaluated
# Redis pub/sub channels and streams
REDIS_CHANNEL_ORDERS=techmart:orders
REDIS_CHANNEL_PAYMENTS=techmart:payments
REDIS_CHANNEL_CLICKSTREAM=techmart:clickstream
REDIS_STREAM_ORDERS=techmart:stream:orders
# MinIO buckets and prefixes
MINIO_BUCKET_RAW=techmart-data
MINIO_PREFIX_PAYMENTS=raw/payments
MINIO_PREFIX_RETURNS=raw/returns
MINIO_PREFIX_CATALOG=raw/product_catalog
# dbt REST runner (Airflow/kubernetes-style triggers; см. services/dbt_rest)
DBT_REST_BASE_URL=http://dbt-rest:8580
DBT_REST_TOKEN=
# Метаданные прогонов dbt-rest (схема dbt_rest в postgres_metadb). В compose задаётся через DBT_REST_DB_DSN; локально:
# DBT_REST_DB_DSN=postgresql://meta_user:meta_pass@localhost:5435/metadb
# Unified ingress (единственная HTTP-точка для веб-UI; см. docs/WEB_UI_ACCESS.md)
# Важно: INGRESS_BASE_URL (и порт INGRESS_PORT) должны совпадать с тем, что вы вводите в браузере.
# Иначе Superset отдаст шапку с #app, но пустой контент, битые ссылки /superset/superset/... и сессия не склеится.
# Пример: при INGRESS_PORT=8090 открывайте http://localhost:8090/...; если у вас ингресс на 80, задайте INGRESS_BASE_URL=http://localhost и INGRESS_PORT=80, перезапустите superset.
INGRESS_PORT=8090
INGRESS_BASE_URL=http://localhost:8090
# MinIO: публичные URL для консоли/API с хоста. Меняйте вместе с MINIO_PORT и INGRESS_BASE_URL в compose.
# MINIO_SERVER_URL по умолчанию = http://localhost:${MINIO_PORT} (подставляется в docker-compose).
# MINIO_BROWSER_REDIRECT_URL по умолчанию = ${INGRESS_BASE_URL}/minio-console/
# MINIO_BROWSER_REDIRECT_URL=http://localhost:8090/minio-console/
# MINIO_SERVER_URL=http://localhost:9000
# Node-RED (образ и учётка админки; см. services/node_red)
NODE_RED_IMAGE_TAG=4.1.8-22
NODE_RED_ADMIN_USER=admin
NODE_RED_ADMIN_PASSWORD=changeme
# NL2SQL app (services/nl2sql_app)
NL2SQL_DB_URL=postgresql+psycopg2://olap_user:olap_pass@postgres_olap:5432/techmart_dwh
# models:/<name>/latest требует хотя бы одной зарегистрированной версии в MLflow UI (пустое имя модели без Versions недостаточно).
NL2SQL_MODEL_URI=models:/nl2sql_qwen/latest
NL2SQL_MODEL_NAME=nl2sql_qwen
# true — при старте залогировать pyfunc в реестр (долго, нужен образ/ресурсы); иначе зарегистрируйте версию вручную в MLflow.
NL2SQL_AUTO_LOG_MODEL=false
NL2SQL_BASE_MODEL_ID=Qwen/Qwen2.5-3B-Instruct
NL2SQL_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
NL2SQL_RAG_TOP_K=3
NL2SQL_MAX_NEW_TOKENS=256
NL2SQL_TEMPERATURE=0.0
NL2SQL_MODEL_DEVICE=cpu
NL2SQL_DEBUG=false
# false — скрыть GET /metrics (404); Prometheus в compose по умолчанию скрейпит nl2sql_app
NL2SQL_EXPOSE_METRICS=true
# Apache Atlas (основной docker-compose.yml; JVM heap через ATLAS_JAVA_OPTS)
ATLAS_JAVA_OPTS=-Xmx3G -Xms1G
SBURN_APACHE_ATLAS_TAG=latest
ATLAS_REST_URL=http://atlas_server:21000/
# Legacy: раньше ATLAS_EXTERNAL_NETWORK использовали для overlay; в текущем стеке не требуется.
# Schema Registry + Debezium Kafka Connect (основной compose)
CP_SCHEMA_REGISTRY_TAG=7.6.1
DEBEZIUM_CONNECT_TAG=2.5
DEBEZIUM_GROUP_ID=debezium-cluster
DEBEZIUM_CONNECT_HEALTH_URL=http://debezium_connect:8083/
# Vault profile (infrastructure/vault)
VAULT_PORT=8200
# VAULT_ADDR=http://127.0.0.1:8200
# lakeFS profile (infrastructure/lakefs)
LAKEFS_PORT=8008
LAKEFS_AUTH_ENCRYPT_SECRET_KEY=change-this-lakefs-secret-key-32
LAKEFS_ACCESS_KEY_ID=lakefsadmin
LAKEFS_SECRET_ACCESS_KEY=lakefsadmin
LAKEFS_REPO_NAME=dataops-showcase
# DataHub profile (infrastructure/datahub)
DATAHUB_PORT=9002
DATAHUB_GMS_PORT=8080
DATAHUB_ES_PORT=9200
# ArgoCD profile (infrastructure/argocd)
ARGOCD_PORT=8088
ARGOCD_USER=admin
ARGOCD_PASSWORD=change-me
# Replication users for Debezium (must match services/postgres/cdc/*.sh and configs/debezium/*.json)
DEBEZIUM_OLTP_PASSWORD=debezium_oltp_pass
DEBEZIUM_OLAP_PASSWORD=debezium_olap_pass
DEBEZIUM_META_PASSWORD=debezium_meta_pass
# Postgres reflect script (host path to OLTP for local runs)
# PG_REFLECT_DSN=postgresql://oltp_user:oltp_pass@localhost:5433/techmart_oltp