72 lines
3.3 KiB
Markdown
72 lines
3.3 KiB
Markdown
# 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.
|