Montar un nodo

Guía completa paso a paso para levantar tu propio nodo LOOKLOCK: un buzón que guarda mensajes y ficheros cifrados de extremo a extremo. Ni tú, como operador, puedes leer nada.

Qué es un nodo

Un buzón cifrado, nada más

Un nodo es un buzón (mailbox) que guarda mensajes y ficheros CIFRADOS de extremo a extremo, separados por usuario. El operador del nodo NO puede leer nada: solo custodia blobs sellados. Es un único fichero Python (llnode.py), sin dependencias externas, con su propia base de datos SQLite (node.sqlite). Levantarlo es cuestión de minutos.

Requisitos

Lo mínimo indispensable

VPS Linux con IP pública.
Mínimo 1 vCPU, 1 GB de RAM y 20 GB de disco.
Python 3.8 o superior (suele venir preinstalado en la mayoría de distribuciones Linux).
Puerto 8770 accesible desde Internet.

Pasos detallados

a) Contratar un VPS Linux

Contrata un servidor virtual Linux (por ejemplo Ubuntu Server o Debian) con IP pública en cualquier proveedor. Cualquier plan modesto sirve de sobra.

b) Colocar el fichero del nodo

Copia el fichero del nodo a la ruta /opt/llnode/llnode.py en el servidor. Es un único fichero Python, sin dependencias que instalar.

c) Arrancarlo una vez a mano

Ejecuta el nodo manualmente la primera vez:

python3 /opt/llnode/llnode.py 8770 /opt/llnode/data

Este comando crea la carpeta de datos, genera el fichero node.sqlite e imprime un adminSecret. Guarda ese secreto en un lugar seguro: te da acceso de administración del nodo.

d) Crear un servicio systemd

Para que el nodo arranque solo y se reinicie si falla, crea un servicio systemd. Por seguridad, NO lo ejecutes como root: crea primero un usuario sin privilegios y dale la propiedad de la carpeta del nodo:

sudo useradd --system --no-create-home --shell /usr/sbin/nologin llnode
sudo chown -R llnode:llnode /opt/llnode

Después define el servicio con ese usuario:

[Service]
Type=simple
ExecStart=/usr/bin/python3 /opt/llnode/llnode.py 8770 /opt/llnode/data
Restart=always
User=llnode
Group=llnode
NoNewPrivileges=true
ProtectSystem=strict
ReadWritePaths=/opt/llnode/data

[Install]
WantedBy=multi-user.target

Después actívalo y arráncalo con: systemctl enable --now llnode

e) Abrir el cortafuegos

Permite el tráfico entrante al puerto del nodo:

ufw allow 8770/tcp

f) Comprobar la salud del nodo

Verifica que el nodo responde:

curl http://TU_IP:8770/health

Debería devolver algo como: {"ok":true,"version":"3.0.0",...}. Si lo ves, el nodo está vivo.

g) Producción: HTTPS delante

Para uso real, asigna un dominio y pon un proxy inverso con HTTPS delante del nodo (por ejemplo caddy o nginx). Así el tráfico entre la app y el nodo viaja cifrado por TLS además del cifrado de extremo a extremo del contenido.

h) Registrar el nodo en la red

Por último, une tu nodo a la red: envía su URL a LOOKLOCK o configúralo en la app. A partir de ahí los usuarios podrán elegir tu nodo como buzón.

Cómo funciona por dentro

Directorio, depósito y recogida

La central actúa de DIRECTORIO: guarda qué nodo aloja a cada usuario y un depositToken público. Otros usuarios depositan mensajes cifrados en el buzón del destinatario usando ese token público. El dueño del buzón recoge sus mensajes con su ownerToken secreto, que solo vive dentro de su app y nunca sale de ella. Cuotas por defecto: 8 GB por usuario y ficheros de hasta 5 MB.

Privacidad

El nodo solo almacena blobs cifrados de extremo a extremo. Ni el operador ni nadie más puede leer su contenido: sin la clave privada del destinatario, que jamás abandona su dispositivo, los datos son ilegibles.

Requisitos para aportar un nodo Nodos abiertos Ofrecer un nodo