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.
| Campo | Tipo | Defecto | Descripción |
|---|---|---|---|
| host | string | "127.0.0.1" | IP de escucha del API local. Usa 0.0.0.0 para aceptar conexiones externas. |
| port | int | 7070 | Puerto del API local. |
| read_timeout | duration | "15s" | Timeout de lectura HTTP. |
| write_timeout | duration | "30s" | Timeout de escritura HTTP. |
| allowed_origins | []string | [*] | Orígenes CORS permitidos. Por defecto acepta cualquier origen. |
| auth_token | string | "" | 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.
| Campo | Tipo | Defecto | Descripción |
|---|---|---|---|
| enabled | bool | false | Activa la conexión con rud1-es. Debe ser true para usar la plataforma. |
| base_url | string | "https://rud1.es" | URL base de rud1-es. No cambiar salvo instalaciones on-premise. |
| api_secret | string | "" | DEVICE_API_SECRET de rud1-es. Obligatorio si enabled=true. |
| registration_code | string | "" | Código de registro predefinido. Si está vacío, el agente genera uno automáticamente al arrancar. |
| heartbeat_interval | duration | "60s" | Intervalo entre envíos de heartbeat con métricas del sistema. |
| http_timeout | duration | "20s" | Timeout de las peticiones HTTP hacia la nube. |
Sección vpn
Configura la integración con WireGuard para la conectividad VPN del dispositivo.
| Campo | Tipo | Defecto | Descripción |
|---|---|---|---|
| interface | string | "wg0" | Nombre de la interfaz WireGuard a gestionar. |
| config_path | string | "/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.
| Campo | Tipo | Defecto | Descripción |
|---|---|---|---|
| bind_port | int | 3240 | Puerto 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 entorno | Equivalente YAML |
|---|---|
| RUD1_LOG_LEVEL | log_level (valores: debug, info, warn, error) |
| RUD1_SERVER_HOST | server.host |
| RUD1_SERVER_PORT | server.port |
| RUD1_SERVER_TOKEN | server.auth_token |
| RUD1_CLOUD_ENABLED | cloud.enabled |
| RUD1_CLOUD_BASE_URL | cloud.base_url |
| RUD1_CLOUD_API_SECRET | cloud.api_secret |
| RUD1_CLOUD_REG_CODE | cloud.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:
# 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