Saltar al contenido principal

Desarrollo local

DeviceChain está diseñado para ejecutarse localmente con solo dos dependencias: NATS y TimescaleDB. Sin Java, Kafka, ZooKeeper, Redis, Keycloak ni Mosquitto.

Estado

DeviceChain es pre-release. Esta guía describe el flujo de trabajo local previsto; consulta el README del repositorio para los pasos de configuración actuales y autoritativos.

Requisitos previos

  • Go 1.25+
  • Node 22 LTS (para el frontend y esta documentación)
  • Docker (para ejecutar TimescaleDB)
  • nats-server (un único binario de ~10 MB)

1. Iniciar la infraestructura

# TimescaleDB (PostgreSQL + TimescaleDB extension)
docker run -d --name dc-timescaledb \
-p 5432:5432 \
-e POSTGRES_PASSWORD=devicechain \
timescale/timescaledb-ha:pg17

# NATS with JetStream and the built-in MQTT server enabled
nats-server -js -m 8222

2. Compilar el workspace

El backend es un workspace de Go (go.work) que abarca la biblioteca principal (core), el operador y los servicios.

go build ./backend/...

3. Ejecutar un servicio

Cada servicio es un único binario. La configuración se suministra mediante variables de entorno / configuración; consulta el paquete config de cada servicio para ver los ajustes disponibles.

go run ./backend/services/event-sources

Estructura del repositorio

backend/
core/ shared library (lifecycle, NATS, GORM, GraphQL, config, auth)
k8s/ operator + CRD types
services/ event-sources, device-management, event-management, user-management, ...
cli/ dcctl
frontend/ React + Vite management UI
docs/ this documentation site
deploy/ Helm charts + OpenTofu modules

Próximos pasos