Ejecuta el servidor de Crunu con Docker Compose
Aloja el servidor de Crunu en tu propia máquina con Docker Compose: Caddy para TLS automático o Cloudflare Tunnel sin abrir puertos, y SQLite o Postgres.
- Soporte
- Funciona con Crunu hoy: el soporte de Docker forma parte del producto.
- Funciones de Crunu
- Autoalojamiento y Bóveda cifrada
- Comprobado
- Con Crunu 6.0.0 el 28 de octubre de 2026
Funciones de Crunu que funcionan con Docker
Cada función de abajo funciona igual en cada integración: el servidor guarda datos cifrados, y solo las personas, las máquinas y los tokens a los que concedes acceso pueden descifrarlos.
Autoalojamiento
Ejecuta el mismo servidor de Crunu en tu propio host de Docker, en Cloudflare Workers, Vercel o Google Cloud Run, y pasa de uno a otro con un solo archivo de exportación.
Más información
Bóveda cifrada
Guarda archivos .env, credenciales de la nube y claves de API en proyectos y entornos, cifrados en tus dispositivos antes de que nada llegue al servidor.
Más información
Cómo funciona con Docker
En esta página
Qué hace Crunu con Docker
Crunu funciona en la nube en app.crunu.com, así que la mayoría de los equipos nunca despliega un servidor. Si prefieres tenerlo en tu propia máquina, el servidor incluye una configuración de Docker Compose: el contenedor del servidor más Caddy, que emite por su cuenta el certificado TLS de tu dominio.
El servidor es ciego dondequiera que funcione. Su base de datos contiene datos cifrados, claves públicas, documentos firmados y metadatos, y no tiene ninguna clave que descifre un valor. Consulta en autoalojamiento cómo se comparan las opciones.
Lo que necesitas
- Una máquina con Docker y un dominio con un registro A o AAAA que apunte a ella.
- Los puertos 80 y 443 abiertos, para que Caddy pueda obtener un certificado.
- Node.js 24 y los archivos del servidor de Crunu en esa máquina. Los comandos de abajo se ejecutan desde el directorio del servidor.
Inicia el servidor
Elige la dirección del servidor una sola vez. Las firmas de inicio de sesión, los enlaces de acceso, las llaves de acceso y las máquinas inscritas están todos ligados a ella, y un cambio posterior de plataforma conserva la misma dirección.
node scripts/server-init.mjs --origin https://vault.company.example --out deploy/docker/.env
docker compose -f deploy/docker/compose.yml up -d --buildserver-init escribe un archivo .env con permisos 0600 y valores nuevos para SERVER_KEY, BOOTSTRAP_TOKEN y CRON_SECRET. Guarda enseguida una copia en un gestor de contraseñas: sin ella no se puede restaurar el servidor. Por defecto, la base de datos es SQLite en un volumen de Docker. Para tener Postgres junto al servidor, ejecuta server-init con --docker-postgres.
Después comprueba el despliegue y crea el primer propietario con la clave de arranque de .env:
node scripts/doctor.mjs https://vault.company.exampleCloudflare Tunnel en lugar de puertos abiertos
El servidor también puede llegar a internet a través de un Cloudflare Tunnel. No se publica nada en la máquina, cloudflared se conecta directamente al servidor y Cloudflare termina el TLS. Pon el token del túnel en deploy/docker/.env, apunta el nombre de host público del túnel al servicio server:8080 y añade el archivo del túnel encima del principal:
docker compose -f deploy/docker/compose.yml -f deploy/docker/compose.tunnel.yml up -d --buildEl archivo del túnel da a cloudflared una dirección fija en su propia red de Docker, y el servidor solo confía en la cabecera con la dirección del cliente cuando viene de esa dirección, así que las restricciones de red ven la dirección real del cliente.
Cómo se ejecuta el contenedor
La configuración de Compose ejecuta el servidor con un sistema de archivos raíz de solo lectura, sin capacidades de Linux y con un usuario sin privilegios, y está probada para reiniciarse sobre la misma base de datos. El servidor aplica por su cuenta las migraciones del esquema al arrancar. Una actualización es el mismo docker compose … up -d --build después de obtener la versión nueva.
La imagen incorpora un cliente web ya compilado de dist/web/. Si falta ese directorio, o contiene una versión distinta de la del servidor, la compilación se detiene en lugar de compilar por su cuenta un cliente web sin firmar.
Copias de seguridad y cambio de plataforma
crunu-server export escribe toda la base de datos en un solo archivo de exportación sin valores sin cifrar, y crunu-server import lo carga en una base de datos vacía en cualquier plataforma compatible: Docker, Cloudflare Workers, Vercel o Google Cloud Run. Conserva el mismo .env y la misma dirección, y solo cambia el registro DNS.
Ese archivo traslada un servidor que operas tú. Pasar de app.crunu.com a tu propio servidor no es un solo paso, porque solo el operador tiene acceso a la base de datos de la nube. Exporta cada entorno como archivo .env o descarga una copia sin conexión, y luego añade los archivos a tu servidor. De esta forma no se trasladan el historial, los ajustes de acceso ni el registro de auditoría.
El agente crunu en contenedores
El script de instalación del agente crunu tiene un modo sin root para la CI y los contenedores. Está probado en las imágenes node:24, Ubuntu 24.04 y Alpine 3.22. En la CI y en otros contenedores de corta duración, crunu funciona con un token de servicio: inicia sesión y descifra dentro de su propio proceso, sin archivos de estado. Una imagen mínima sin ca-certificates no puede verificar el certificado del servidor, y crunu te indica qué paquete instalar.
El servicio del agente en segundo plano necesita systemd y funciona en hosts Linux. Consulta systemd.
Relacionado
Dudas frecuentes
¿No está aquí? Escribe a support@crunu.com y te responderá una persona.
¿Dónde consigo el servidor?
El servidor no se publica como descarga pública. Escribe a support@crunu.com.
¿Qué base de datos usa?
SQLite en un volumen de Docker por defecto, o Postgres junto al servidor.
¿Puedo evitar abrir puertos?
Sí. Ejecútalo detrás de Cloudflare Tunnel con el archivo de Compose del túnel, y Cloudflare termina el TLS.
¿Puedo pasar de app.crunu.com a mi propio servidor?
No en un solo paso. Exporta cada entorno como archivo .env o descarga una copia sin conexión. De esta forma no se trasladan el historial, los ajustes de acceso ni el registro de auditoría.