En el mundo del desarrollo moderno, garantizar la transparencia sobre el estado de tus servicios (API, sitios web, microservicios, etc.) se ha vuelto cada vez más importante. Los usuarios quieren saber cuándo algo no funciona, los equipos internos necesitan alertas y visibilidad, y la reputación de un servicio puede influir en la confianza del usuario. Ahí es donde entra Kener: un sistema ligero y moderno para construir páginas de estado (status pages) autohospedadas, que permite mostrar el estado de tus servicios, gestionar incidentes y mantener informados a usuarios y clientes.
En este artículo veremos cómo instalar Kener en un servidor Debian 13 haciendo uso de Docker, una forma ideal para desplegar aplicaciones de manera reproducible y con aislamiento. Primero repasaremos las características principales de Kener, y luego seguiremos con una guía paso a paso para instalarlo y configurarlo.
Características de Kener
- ⚡ Ligero y moderno: Desarrollado con SvelteKit y Node.js, Kener ofrece un rendimiento excelente con un diseño limpio y minimalista.
- 🌐 Página de estado autohospedada: Crea tu propia status page para mostrar el estado de tus servicios, uptime e incidencias sin depender de terceros.
- 🚨 Gestión de alertas e incidentes: Registra incidencias, notifica a los usuarios y mantén un historial claro de los eventos.
- 🔍 Monitoreo activo de servicios: Soporta chequeos automáticos mediante polling HTTP o actualizaciones por API.
- 🗂️ Organización por grupos o categorías: Agrupa tus monitores para tener una visión más clara de todos tus servicios.
- 🧩 Compatibilidad con múltiples bases de datos: Usa SQLite, PostgreSQL o MySQL, según tus necesidades.
- 💾 Persistencia de datos: Mantén tus datos y archivos a salvo mediante volúmenes en Docker.
- 🎨 Personalización y branding: Cambia logos, colores y temas para adaptar Kener a tu identidad visual.
- 🌙 Modo oscuro y diseño responsivo: Totalmente adaptable a pantallas móviles, tablets y escritorio, con soporte para modo claro/oscuro.
- 🏷️ Badges e incrustación: Inserta el estado de tus servicios en otras webs o repositorios mediante etiquetas o widgets.
- 🌍 Internacionalización (i18n): Interfaz traducible a varios idiomas para adaptarse a tu audiencia.
- 🧭 Optimizado para SEO y SSR: Renderiza el contenido del lado del servidor para mejorar la indexación y la velocidad.
- 🐳 Imágenes oficiales en Docker Hub: Despliega Kener fácilmente gracias a sus imágenes oficiales listas para producción.
- 🧠 Código abierto y transparente: Proyecto open source bajo licencia MIT, con una comunidad activa en GitHub.
Pasos previos
Antes de comenzar con la instalación, asegúrate de cumplir con los siguientes requisitos:
- 💻 Servidor con Debian 13 como sistema operativo base.
- 🔐 Acceso SSH al servidor.
- 🧑💻 Permisos de superusuario (root) o capacidad para ejecutar comandos con
sudo.
Instalación de Docker
Para la instalación de Kener utilizaremos Docker, para ello tendremos que instalar Docker en nuestro servidor:

Instalación de Kener
Primero tendremos que crear los directorios necesarios para Kener, para ello ejecutaremos los siguientes comandos que crearán todos los directorios dentro de /opt:
mkdir -p /opt/kener/data/{uploads,database}
Seguimos con la instalación, accediendo al directorio de la instalación y descargamos el fichero para el docker-compose:
cd /opt/kener
wget https://raw.githubusercontent.com/rajnandan1/kener/main/docker-compose.ymlUna vez descargado, editamos el fichero docker-compose.yml y hacemos las siguientes modificaciones:
# Descomentamos y editamos:
env_file: .env
# Editamos las rutas de los volúmenes
volumes:
- ./data:/app/dataEl bloque de postgres: y mysql: los eliminamos, en este tutorial utilizaremos SQLite para mayor comodidad.
Creamos el fichero de configuración .env para añadir el siguiente contenido:
TZ=Etc/UTC
KENER_SECRET_KEY=KEY
# For SQLite database...
DATABASE_URL=sqlite://./data/database/kener.sqlite.db
KENER_BASE_PATH=""
ORIGIN=https://dominio.com
RESEND_API_KEY=""
RESEND_SENDER_EMAIL=Accounts <accounts@resend.dev>
# Likely no need to change...
NODE_ENV=production
PORT=3000
# Add the below variable if you would like to ‘white-label’ the product (aka. remove some of the attributions scattered throughout the app)
# WHITE_LABEL=trueKENER_SECRET_KEY puedes utilizar el comando openssl rand -hex 32. Recuerda también de cambiar el valor de ORIGIN por el nombre de tu dominio.Tras estos cambios, ya podemos iniciar los contenedores:
docker compose up -dY tras descargar todo, podemos visualizar que se ha levantado correctamente:
# docker ps --format "table {{.ID}} {{.Image}} {{.Status}} {{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
42640537e20d rajnandan1/kener:latest Up 1 second (health: starting) kenerConfiguración de Proxy Nginx
Como la aplicación se encuentra escuchando en un puerto local (3000), necesitaremos configurar un Proxy inverso con Nginx para poder acceder a ella mediante un dominio.
Para ello, puedes seguir este tutorial donde encontrarás todos los pasos detallados:

Primer contacto con la aplicación
Una vez que hemos levantado el servidor y configurado correctamente el dominio a través de Nginx Proxy, ya podemos acceder a la aplicación desde nuestro navegador utilizando el dominio o subdominio que hayamos definido.

Tendremos que hacer clic sobre Setup Kener y luego hacer clic en Sign Up para crar un usuario administrador.

Tras rellenar los datos y hacer clic sobre Let's Go nos aparecerá el panel para gestionar Kener:

A partir de este punto, solo queda configurar los monitores para las distintas URLs y servicios que quieras supervisar, ajustando los parámetros y opciones según tus necesidades.
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.


Comentarios