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.