Referencia de configuración

Referencia completa de todas las opciones del archivo config.yaml y las variables de entorno del agente rud1-fw.

Archivo de configuración

El archivo de configuración principal del agente se encuentra en:

/etc/rud1-agent/config.yaml

El agente carga este archivo al arrancar. Cualquier cambio requiere reiniciar el servicio con sudo systemctl restart rud1-agent.

💡 Las variables de entorno tienen prioridad sobre los valores del archivo YAML. Puedes usar ambas a la vez: define los valores por defecto en el YAML y sobreescribe los sensibles (como api_secret) con variables de entorno.

Sección server

Configura el servidor HTTP local que expone la API del agente en el puerto 7070.

CampoTipoDefectoDescripción
hoststring"127.0.0.1"IP de escucha del API local. Usa 0.0.0.0 para aceptar conexiones externas.
portint7070Puerto del API local.
read_timeoutduration"15s"Timeout de lectura HTTP.
write_timeoutduration"30s"Timeout de escritura HTTP.
allowed_origins[]string[*]Orígenes CORS permitidos. Por defecto acepta cualquier origen.
auth_tokenstring""Token Bearer para proteger el API local. Si está vacío, el API no requiere autenticación.

Sección cloud

Configura la conexión del agente con la plataforma rud1-es en la nube.

CampoTipoDefectoDescripción
enabledboolfalseActiva la conexión con rud1-es. Debe ser true para usar la plataforma.
base_urlstring"https://rud1.es"URL base de rud1-es. No cambiar salvo instalaciones on-premise.
api_secretstring""DEVICE_API_SECRET de rud1-es. Obligatorio si enabled=true.
registration_codestring""Código de registro predefinido. Si está vacío, el agente genera uno automáticamente al arrancar.
heartbeat_intervalduration"60s"Intervalo entre envíos de heartbeat con métricas del sistema.
http_timeoutduration"20s"Timeout de las peticiones HTTP hacia la nube.

Sección vpn

Configura la integración con WireGuard para la conectividad VPN del dispositivo.

CampoTipoDefectoDescripción
interfacestring"wg0"Nombre de la interfaz WireGuard a gestionar.
config_pathstring"/etc/wireguard/wg0.conf"Ruta del fichero de configuración WireGuard que el agente escribe cuando recibe la config desde la nube.

Sección usb

Configura el servidor USB-over-IP integrado en el agente.

CampoTipoDefectoDescripción
bind_portint3240Puerto del servidor USB-over-IP (protocolo usbip).

Variables de entorno

Todas las variables de entorno sobreescriben su equivalente en el archivo YAML. Son especialmente útiles en entornos containerizados o para valores sensibles que no deben escribirse en archivos de configuración.

Variable de entornoEquivalente YAML
RUD1_LOG_LEVELlog_level (valores: debug, info, warn, error)
RUD1_SERVER_HOSTserver.host
RUD1_SERVER_PORTserver.port
RUD1_SERVER_TOKENserver.auth_token
RUD1_CLOUD_ENABLEDcloud.enabled
RUD1_CLOUD_BASE_URLcloud.base_url
RUD1_CLOUD_API_SECRETcloud.api_secret
RUD1_CLOUD_REG_CODEcloud.registration_code
RUD1_SIMULATE— (fuerza modo simulación; genera datos ficticios sin hardware real)

ℹ️ En el servicio systemd puedes añadir variables de entorno en el fichero /etc/systemd/system/rud1-agent.service bajo la directiva Environment= o usando un fichero EnvironmentFile=/etc/rud1-agent/env.

Configuración completa de ejemplo

A continuación se muestra un archivo config.yaml completo con todas las opciones disponibles y sus valores por defecto:

config.yaml
# rud1-agent configuration file
# Location: /etc/rud1-agent/config.yaml

# Log level: debug | info | warn | error
log_level: info

server:
  # IP de escucha. Usa 0.0.0.0 para aceptar conexiones desde la red local
  host: "127.0.0.1"
  # Puerto del API local (usado por rud1-app)
  port: 7070
  # Timeouts HTTP
  read_timeout: "15s"
  write_timeout: "30s"
  # CORS: lista de orígenes permitidos (vacío = *)
  allowed_origins: []
  # Token Bearer para proteger el API local (vacío = sin auth)
  auth_token: ""

cloud:
  # Activa la conexión con rud1-es
  enabled: true
  # URL base de la plataforma
  base_url: "https://rud1.es"
  # Clave API para autenticación con rud1-es (OBLIGATORIO)
  api_secret: "tu-api-secret-aqui"
  # Código de registro predefinido (vacío = generado automáticamente)
  registration_code: ""
  # Intervalo entre heartbeats
  heartbeat_interval: "60s"
  # Timeout de peticiones HTTP a la nube
  http_timeout: "20s"

vpn:
  # Nombre de la interfaz WireGuard
  interface: "wg0"
  # Ruta del fichero de configuración WireGuard
  config_path: "/etc/wireguard/wg0.conf"

usb:
  # Puerto del servidor USB-over-IP
  bind_port: 3240

⚠️ Recuerda proteger el archivo de configuración para que solo root pueda leerlo: sudo chmod 600 /etc/rud1-agent/config.yaml && sudo chown root:root /etc/rud1-agent/config.yaml