Ejecuta el servidor donde ya trabajas
El servidor de Crunu es ciego por diseño. En app.crunu.com o en una infraestructura que tú controlas, guarda datos cifrados, claves públicas y registros firmados, y no tiene ninguna clave que descifre un solo valor.
Lo que necesitas antes
- 1Node.js 24 y el código del servidorEn él se ejecutan las herramientas de operador server-init, doctor y crunu-server. El servidor no se puede descargar públicamente: escribe a support@crunu.com para obtenerlo.
- 2Una dirección que vayas a conservarLas firmas de inicio de sesión, los enlaces de acceso, las llaves de acceso y los agentes están ligados al dominio del servidor, así que no se puede cambiar más adelante.
- 3Un lugar seguro para .envSirve un gestor de contraseñas. El archivo contiene SERVER_KEY, el secreto principal del servidor.
Una vez por servidor
Instalar
Cinco pasos te llevan de una máquina vacía o una cuenta en la nube a un servidor en marcha con su primer propietario.
1Decide quién opera el servidor
El cifrado ocurre en el navegador y en el agente
crunu, nunca en el servidor. Por eso, elegir entre app.crunu.com y tu propio servidor es decidir quién lo opera y quién ve sus metadatos. En ningún caso nadie del lado del servidor puede leer tus valores.- app.crunu.com: Crunu opera el servidor en Cloudflare Workers con una base de datos D1, gratis durante el acceso anticipado
- Tu propio servidor: lo operas tú, pagas a tu proveedor de plataforma y solo tú ves sus metadatos
- Los metadatos son los nombres de organizaciones, proyectos, entornos y máquinas, las direcciones de correo, el registro de auditoría y el tamaño y la hora de las versiones
Ejemplo. Kiteline es una empresa ficticia. 2Genera la configuración del servidor
server-initescribe un archivo.envcon unaSERVER_KEYnueva, unBOOTSTRAP_TOKENde un solo uso para el primer propietario y unCRON_SECRET. Solo tu usuario puede leer el archivo.- Guarda enseguida una copia en tu gestor de contraseñas
- Si se pierde SERVER_KEY, se cierran todas las sesiones y dejan de funcionar los enlaces de acceso. Los datos de los entornos se conservan
3Elige una de cinco plataformas
Todas las plataformas ejecutan el mismo servidor con el mismo esquema de base de datos, y la app web viene integrada en él. Cada script de despliegue comprueba
.envcon el mismo código que usa el servidor al arrancar, así que un ajuste incorrecto detiene el despliegue con un mensaje claro.- Docker en tu propio servidor: Caddy emite los certificados TLS, y Cloudflare Tunnel sirve cuando no quieres abrir puertos
- Cloudflare Workers: el plan Free basta para una prueba, pero un equipo necesita Workers Paid, porque Free da a cada petición 10 ms de tiempo de CPU
- Vercel: las vistas previas tienen su propia base de datos y su propia clave del servidor, y en el plan Hobby la limpieza se ejecuta como mucho una vez al día
- AWS App Runner, solo en cuentas de AWS que ya lo usan: AWS lo ha cerrado a nuevos clientes, y Crunu no tiene script para Amazon ECS Express Mode
Ejemplo. Kiteline es una empresa ficticia. 4Despliega con el script de la plataforma
Un comando por plataforma compila y despliega el servidor. Los secretos llegan a la plataforma por stdin o por un archivo que solo tú puedes leer, nunca por argumentos de comandos ni por la salida. El propio servidor aplica las migraciones de la base de datos al arrancar.
- El mismo script instala la primera versión y cada actualización
- En Cloudflare, el código y los secretos se publican como una sola versión, así que un despliegue fallido no cambia nada
5Crea el primer propietario
Abre la dirección del servidor e introduce la clave de arranque de
.env. Las claves de tu cuenta y de la organización se crean en tu navegador, y la clave de arranque deja de funcionar después de este único uso. Después guarda tu Emergency Kit, crea un código de recuperación y activa un segundo factor.- Sin el Emergency Kit y tu contraseña, un dispositivo nuevo no puede iniciar sesión
- Todos los demás entran por invitación
Cada día
Operar
Una vez en marcha, tres hábitos mantienen sano el servidor: una comprobación después de cada despliegue, la monitorización y una copia de seguridad diaria.
6Comprueba el despliegue con doctor
doctorcomprueba desde fuera un servidor en marcha: el estado, TLS y la caducidad del certificado, las cabeceras de seguridad, la compresión de las respuestas de la API, el reloj del servidor, la versión publicada del agente, las migraciones, la limpieza y la dirección del cliente detrás de proxies.- Un resultado global y un código de salida, así que encaja en cron y en la CI
- --json da una salida legible por máquinas
7Vigila el estado, las métricas y las alertas
GET /v2/healthfunciona con servicios de comprobación de disponibilidad como UptimeRobot o Better Stack.GET /v2/statuscon un token de operador devuelve métricas en JSON o en formato Prometheus, sin valores ni direcciones de correo. Las alertas llegan a tu equipo por un webhook firmado o por correo.- Slack, Microsoft Teams y PagerDuty se conectan mediante sus webhooks entrantes
- En Cloud Run y App Runner, la limpieza solo se ejecuta cuando hay tráfico, así que las alertas basadas en el estado pueden llegar con retraso
8Haz copias de seguridad en el almacenamiento que prefieras
crunu-server exportescribe toda la base de datos en un solo archivo de exportación. No contiene valores sin cifrar, así que puedes guardarlo con cualquier proveedor. Guarda el archivo.envaparte, en tu gestor de contraseñas.- Exporta cada día y conserva 30 días. El servidor no tiene programador de tareas integrado, y la guía de copias de seguridad trae una línea de cron lista para Docker
- Verifica una copia cada mes o, mejor aún, restáurala en una base de datos de pruebas
- Una restauración deshace todo lo posterior a la copia, y los dispositivos que vieron datos más recientes rechazan el estado anterior hasta que los restableces
Cuando haga falta
Cambiar
Para cambiar de plataforma, rotar la clave del servidor y actualizar se usan los scripts de despliegue y el crunu-server que ya tienes.
9Pásate a otra plataforma con un solo archivo
Exporta la base de datos, verifica el archivo de exportación, impórtalo en una base de datos vacía en la nueva plataforma y despliega allí con el mismo
.env; después cambia el DNS. Cualquiera de las seis configuraciones puede pasarse a cualquier otra, en ambos sentidos.- Conserva la misma SERVER_KEY y la misma dirección. Solo cambia el registro DNS
- Las máquinas siguen funcionando con las variables que ya tienen durante su concesión, hasta 24 horas
- Mantén la plataforma anterior una semana. Volver atrás es un cambio de DNS
Ejemplo. Kiteline es una empresa ficticia. 10Rota la clave del servidor sin cerrar la sesión de nadie
Durante una rotación, la clave anterior sigue funcionando, los hashes de los tokens se recalculan con la clave nueva a medida que se usan, y
rotate-keyvuelve a cifrar los secretos TOTP y los canales de alertas. Nadie pierde la sesión y los enlaces de acceso siguen abriéndose. Los datos de los entornos nunca se cifran con esta clave.- Cuatro pasos: new-server-key, deploy, rotate-key, drop-previous-key
- Rota la clave si alguien pudo ver el .env, después de un cambio de plataforma o una vez al año
11Actualiza sin un paso de migración aparte
Una actualización usa el mismo script de despliegue que la primera instalación, y el servidor aplica las migraciones al arrancar. Las migraciones solo añaden, y las ya publicadas están protegidas con sumas de verificación, así que puedes volver a una versión anterior del código sin revertir la base de datos.
- Las versiones publicadas de la app web van firmadas, y el servidor sirve la firma para que un sitio desplegado pueda comprobarse con ella
- No es posible volver a una versión anterior a la 6.0
Preguntas sobre el autoalojamiento
Lo que preguntan los operadores antes de ejecutar su propio servidor.
¿Otra pregunta? Escribe a support@crunu.com.
¿app.crunu.com es el mismo software que puedo alojar yo?
Sí. app.crunu.com ejecuta el mismo servidor de Crunu, desplegado en Cloudflare Workers con una base de datos D1.
¿Pueden leer mis secretos quienes operan app.crunu.com?
No. El servidor guarda datos cifrados y no tiene ninguna clave para descifrarlos. Como operador, Crunu sí ve metadatos: nombres de organizaciones, proyectos, entornos y máquinas, direcciones de correo, el registro de auditoría, y el tamaño y la hora de cada versión. Hay un riesgo que afecta a toda bóveda web: un servidor comprometido podría servir una app web modificada que vea tu contraseña y tu Secret Key cuando inicias sesión. Las versiones firmadas y una política de seguridad de contenido estricta reducen ese riesgo, y la página de limitaciones explica el resto.
¿Puedo pasar más adelante de app.crunu.com a mi propio servidor?
No en un solo paso. El archivo que traslada un servidor entre plataformas se crea a partir de toda la base de datos del servidor, y en app.crunu.com solo el operador tiene acceso a ella. En cualquier momento puedes exportar como archivo .env cada entorno que puedas leer o descargar una copia sin conexión, y luego añadir esos archivos a tu propio servidor. De esta forma no se trasladan el historial, los ajustes de acceso ni el registro de auditoría.
¿Hay soporte para AWS?
En parte. El script de Crunu despliega en AWS App Runner, pero AWS ha cerrado App Runner a nuevos clientes, así que solo funciona en cuentas que ya lo usan. Crunu no tiene script para Amazon ECS Express Mode, el servicio que AWS recomienda en su lugar. Con una cuenta de AWS nueva, elige Cloud Run, Vercel o tu propio servidor.
¿Qué pasa con las máquinas y la CI durante un cambio de plataforma?
Las máquinas siguen funcionando con las variables que ya tienen mientras dura su concesión, hasta 24 horas. Pide al equipo que no cambie entornos ni invite a nadie durante 15 a 30 minutos mientras haces el cambio: lo que se escriba en el servidor anterior después de la exportación no llegará al nuevo.
¿Puedo ejecutar varias instancias del servidor para alta disponibilidad?
Con Postgres, varias instancias pueden compartir una base de datos: un bloqueo de la base de datos serializa las escrituras en el registro de auditoría. No hay guía para un clúster con conmutación por error, así que planifícalo como una configuración propia.
¿Las herramientas de operador tienen interfaz en inglés?
Sí. server-init, doctor y crunu-server muestran sus mensajes en inglés, o en ruso cuando CRUNU_LANG o la configuración regional del sistema están en ruso.
¿Cómo consigo el servidor para alojarlo yo?
El servidor no se publica como descarga pública. Escribe a support@crunu.com e indica qué plataforma piensas usar.
Prueba Crunu primero en el servicio alojado
Gratis durante el acceso anticipado. Tu contraseña y tu Secret Key se crean en tu navegador y nunca llegan al servidor.