Para quién es: quien se encarga de la computadora de la embarcación o del mástil durante una campaña.
Qué necesita:
- Una computadora con Linux o macOS (Intel o ARM), conectada al radio del gateway por USB. No hay versión para Windows.
- Acceso a internet desde esa computadora, con las conexiones salientes al puerto 8883 permitidas. Si el sitio tiene un firewall, pida que se abra la salida hacia
mqtt.marine.nebli.aien el puerto 8883. - Una credencial del gateway para la campaña: su id y su secreto. Un administrador la crea en Configuración, como se explica en Primeros pasos. El secreto se muestra una sola vez; el id queda visible en la lista de credenciales.
Qué hace el gateway
El gateway lee los reportes de las boyas desde el radio, guarda cada uno en un búfer en la computadora y los envía a Nebli Marine con la credencial de la campaña. Solo borra una lectura de su búfer cuando Nebli Marine confirma que la recibió. Si se cae la conexión a internet, las lecturas se siguen acumulando en el búfer, y el gateway envía el atraso en orden cuando vuelve la conexión. No tiene que hacer nada.
El gateway no muestra su registro. Las campañas, los mapas y las exportaciones están en la aplicación web.
1. Descárguelo y verifíquelo
Las versiones se publican en downloads.nebli.ai/marine/gateway/. El archivo latest.json de esa dirección indica la versión actual, y cada versión tiene cuatro archivos comprimidos, uno por tipo de computadora:
| Computadora | El archivo termina en |
|---|---|
| Mac con Apple silicon | _darwin_arm64.tar.gz |
| Mac con procesador Intel | _darwin_amd64.tar.gz |
| Linux, Intel o AMD | _linux_amd64.tar.gz |
| Linux, ARM | _linux_arm64.tar.gz |
Cada versión trae además una lista firmada de sumas de verificación (SHA256SUMS y SHA256SUMS.sig) y la clave pública de la versión (release-key.pem). Verifique las tres cosas antes de ejecutar nada.
Esto descarga la versión actual para una Mac con Apple silicon, la verifica y la descomprime. Para otra computadora, cambie darwin_arm64 en la tercera línea y en la última:
BASE=https://downloads.nebli.ai/marine/gateway
V=$(curl -fsS $BASE/latest.json | sed 's/.*"version":"\([^"]*\)".*/\1/')
ARCHIVE=marine-gateway_v${V}_darwin_arm64.tar.gz
for f in $ARCHIVE SHA256SUMS SHA256SUMS.sig release-key.pem; do curl -fsSO $BASE/versions/$V/$f; done
openssl pkey -pubin -in release-key.pem -outform DER | shasum -a 256
openssl dgst -sha256 -verify release-key.pem -signature SHA256SUMS.sig SHA256SUMS
shasum -a 256 --ignore-missing -c SHA256SUMS
tar -xzf $ARCHIVE
cd marine-gateway_v${V}_darwin_arm64 && ./marine-gateway version
Lea el resultado de las tres verificaciones antes de seguir:
- La clave pública. La primera línea que aparece debe ser exactamente:
611943c24df2f671dd523231bc2861e3dc767afd829eaf32e9d44145f27a5eff -Una clave descargada del mismo lugar que el archivo no prueba nada hasta que su huella coincide con esta.
- La firma de la lista. Debe decir
Verified OK. - Su archivo frente a la lista. Debe decir
OKdespués del nombre del archivo. En Linux, usesha256sum --ignore-missing -c SHA256SUMSen lugar de la línea deshasum.
Si alguna de las tres falla, no ejecute el programa.
El archivo se descomprime en una carpeta con el nombre de la versión y de su computadora, que contiene el programa marine-gateway, un README y THIRD_PARTY_NOTICES, que lista el software de código abierto que lleva el programa. La última línea muestra la versión que tiene.
Si descarga el archivo con un navegador en una Mac, esta versión todavía no está notarizada: después de verificarla, quite una vez la cuarentena de descarga con xattr -d com.apple.quarantine marine-gateway.
2. Guarde el secreto
Ponga el secreto de la credencial en un archivo propio, en una sola línea, que solo usted pueda leer:
chmod 600 gateway-secret
El gateway rechaza un archivo de secreto que otra persona pueda leer o escribir. También rechaza un secreto escrito en el archivo de configuración o pasado en la línea de comandos, para que el secreto nunca termine en un archivo compartido ni en el historial de su terminal. Si en esa máquina un archivo no le conviene, puede pasar el secreto en la variable de entorno MARINE_GATEWAY_SECRET, pero no de las dos formas a la vez.
3. Escriba la configuración
La configuración es un archivo de texto con líneas clave = valor. Indíquele al gateway dónde está con la variable de entorno MARINE_GATEWAY_CONFIG.
credential_id = <el id de la credencial>
secret_file = /ruta/a/gateway-secret
source = serial:<el dispositivo del radio>
| Ajuste | Qué es |
|---|---|
credential_id |
El id de la credencial, de la lista en Configuración. Obligatorio. |
secret_file |
El archivo que guarda el secreto. Obligatorio, salvo que use MARINE_GATEWAY_SECRET. |
source |
Dónde está el radio: serial: seguido del dispositivo del radio, con @ y una velocidad en baudios si el suyo la necesita. Obligatorio. |
buffer |
Dónde se guarda el archivo del búfer. Por defecto, gateway-buffer.db en la carpeta desde la que ejecuta el gateway. |
broker |
A dónde envía las lecturas el gateway. Por defecto, mqtt.marine.nebli.ai:8883; déjelo así. |
Cada ajuste puede venir también de una variable de entorno, que tiene prioridad sobre el archivo: MARINE_GATEWAY_CREDENTIAL_ID, MARINE_GATEWAY_SECRET_FILE, MARINE_GATEWAY_SOURCE, MARINE_GATEWAY_BUFFER y MARINE_GATEWAY_BROKER. El gateway rechaza un ajuste que no conoce, así que un error de escritura se detecta antes de que se ejecute nada.
4. Póngalo en marcha
marine-gateway run
Lee el radio y envía las lecturas hasta que usted lo detiene.
5. Revise cómo va
marine-gateway status
Muestra si el enlace con Nebli Marine está activo, cuántas lecturas esperan en el búfer y cuándo Nebli Marine confirmó por última vez que las recibió. Solo lee el búfer, así que funciona aunque el enlace esté caído, y no necesita el secreto. Si no encuentra el búfer, indica qué archivo buscó.
marine-gateway version
muestra la versión que está usando.
Para confirmar que las lecturas están llegando, abra Flujo de datos en la aplicación web.
Si pierde la computadora
Revoque su credencial en Configuración. Su gateway se desconecta de inmediato y no puede enviar nada más; las lecturas que ya envió se quedan en su registro. Cree una credencial nueva para la computadora de reemplazo.