Instala Kener en Debian 13 con Docker y crea tu propia página de estado moderna, ligera y totalmente autohospedada.


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 Docker en Debian 13
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.

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.yml

Una 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/data

El 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=true
💡
Para crear el contenido de la variable KENER_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 -d

Y 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) kener

Configuració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:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.
💡
Si has configurado el proxy Nginx utilizando solo HTTP, te recomendamos dar el siguiente paso y habilitar HTTPS para asegurar las conexiones. Si solo necesitas generar un certificado SSL, puedes seguir este tutorial donde se explica cómo hacerlo paso a paso: Instalación de certificado SSL con certbot

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

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación