Files
home_automatization/.env.example
cactoandClaude Sonnet 5 938700cf86 Implement ingest-service: MQTT -> ClickHouse (batched) + RabbitMQ event
Subscribes to devices/+/telemetry, validates payloads, buffers writes into
ClickHouse (flush on size or interval), and emits a per-reading event on
RabbitMQ for rule-engine-service to consume later. Adds the initial Postgres
and ClickHouse schema migrations, a Dockerfile, and wires the service into
docker-compose. Verified end-to-end via docker compose + mosquitto_pub: row
lands in ClickHouse and the event reaches the telemetry.new_reading queue.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 16:52:45 +05:00

45 lines
1.1 KiB
Bash

# --- PostgreSQL (users, zones, devices, device_types, automation_rules) ---
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=home_automation
POSTGRES_USER=home_automation
POSTGRES_PASSWORD=change_me
# --- ClickHouse (telemetry, time-series) ---
CLICKHOUSE_HOST=clickhouse
CLICKHOUSE_HTTP_PORT=8123
CLICKHOUSE_NATIVE_PORT=9000
CLICKHOUSE_DB=telemetry
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=change_me
# --- Redis (device shadow: desired/reported state, status, last_seen) ---
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# --- RabbitMQ (async events between Go services) ---
RABBITMQ_HOST=rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_MANAGEMENT_PORT=15672
RABBITMQ_USER=home_automation
RABBITMQ_PASSWORD=change_me
# --- Mosquitto (MQTT broker, device <-> ingest/device-control) ---
MQTT_HOST=mosquitto
MQTT_PORT=1883
# --- device-control-service (gRPC) ---
DEVICE_CONTROL_GRPC_PORT=50051
# --- ingest-service ---
INGEST_MQTT_CLIENT_ID=ingest-service
INGEST_MQTT_TOPIC=devices/+/telemetry
INGEST_BATCH_MAX_SIZE=500
INGEST_BATCH_FLUSH_INTERVAL=5s
INGEST_BATCH_FLUSH_TIMEOUT=10s
# --- Laravel app (stage 2) ---
APP_KEY=
APP_URL=http://localhost:8000