# Empaquetar Caudal para un servidor de casa Caudal es obra de esetheyers, hecho con Claude (Anthropic). Caudal en un servidor es el mismo programa arrancado con `--servidor`: atiende en la red y se entra con una contraseña que se crea la primera vez. Todo lo del usuario queda en un solo volumen (`/data`). | Qué | Dónde | Estado | |---|---|---| | Imagen de contenedor (lleva `cartera/ejemplo`, la cartera de ejemplo) | `../Dockerfile` | Construida y probada (arranque cifrado, crear contraseña, reiniciar bloqueado, volver a entrar) | | Paquete de StartOS 0.4 | `startos/` | Se construye (`caudal_x86_64.s9pk`); instalado y actualizado con datos en un StartOS 0.4 | | Paquete de Umbrel | repositorio de la tienda, `esetheyers/umbrel-apps` (carpeta `esetheyers-caudal/`) | Escrito según la guía de umbrel-apps; **sin publicar ni probar en un Umbrel** | ## La imagen ``` docker build -t caudal . docker run -d --name caudal -p 8080:8080 -v caudal-datos:/data caudal ``` - `CAUDAL_CIFRADO=1` cifra los datos en el disco desde el principio y enseña la clave de recuperación al crear la contraseña. Para los sistemas que no cifran el disco (Umbrel). En StartOS no se pone: su disco ya va cifrado, y quien quiera lo activa en «Más › Cifrado de los datos». - `CAUDAL_DISCO_CIFRADO=1` es lo contrario: avisa en «Cifrado de los datos» de que el servidor ya cifra su disco y no hace falta cifrar además en Caudal. Lo lleva puesto la imagen de StartOS. - `GET /api/salud` dice si está en marcha y si está bloqueada. - Contraseña olvidada, con los datos sin cifrar: `docker exec caudal python3 -m cartera.acceso --datos /data/datos restablecer`. Con los datos cifrados la orden se niega: solo vale la clave de recuperación. ## StartOS 0.4 Hace falta el entorno de la guía de Start9 (Docker con buildx, Node 22, squashfs-tools, jq y `start-cli`) y un espacio de trabajo: ``` start-cli s9pk init-workspace start9-workspace cp -r empaquetado/startos start9-workspace/caudal-startos cd start9-workspace/caudal-startos && npm install sh traer-caudal.sh /ruta/al/repositorio/de/caudal # copia el programa a ./caudal/ docker buildx create --use --name caudal-builder # una vez make x86 # o: make arm ``` Sale `caudal_x86_64.s9pk`, que se instala desde la web de StartOS con «Sideload». El paquete trae: - la página web de Caudal como única interfaz (la contraseña la pide Caudal); - la copia de seguridad de StartOS sobre el volumen entero; - la acción «Restablecer la contraseña», que llama a la orden de arriba. Pendiente antes de publicar: crear los repositorios que nombra `startos/manifest/index.ts`, instrucciones (`instructions.md`, `README.md`) y probarlo instalado, incluida una copia y restauración. ## Umbrel El paquete de Umbrel no vive aquí, sino en la tienda de aplicaciones del autor, `esetheyers/umbrel-apps`, que comparte con sus otras aplicaciones: una carpeta `esetheyers-caudal/` con el manifiesto, el `docker-compose.yml` y el icono. Antes de poder instalarlo hay que: 1. Publicar la imagen (`../Dockerfile`) en un registro público, para `linux/amd64` y `linux/arm64`. 2. Poner su etiqueta y su huella en el `docker-compose.yml` de la tienda y publicar esa carpeta en su rama principal. Umbrel pone delante su propia entrada (la sesión de Umbrel) y además Caudal pide su contraseña, que es la que cifra los datos.