[{"data":1,"prerenderedAt":186},["ShallowReactive",2],{"seo-verification":3,"blog-autoalojar-kener-vps-pagina-de-estado-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-autoalojar-kener-vps-pagina-de-estado-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":124,"ctaBody":125,"ctaButton":126,"ctaUrl":127,"relatedPosts":128},543,"autoalojar-kener-vps-pagina-de-estado",{"fr":12,"en":13,"ar":14,"es":10},"self-host-kener-vps","self-host-kener-vps-status-page","استضافة-kener-على-vps-صفحة-حالة","Kener en un VPS: una página de estado para tus servicios","Instala Kener en un VPS: página de estado de código abierto con sondas integradas, incidentes, mantenimientos programados y suscriptores avisados por correo.",6,0,false,"2026-10-31T00:00:00+00:00","2026-10-31T19:07:30+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-kener-vps-poster.svg",{"categorySlug":34,"appSlug":35},"monitorizacion-observabilidad","kener","Cuando tu servicio cae, la primera pregunta de tus clientes es « ¿el problema es mío o vuestro? ». Una página de estado la responde antes de que escriban al soporte. Kener es una página de estado de código abierto (licencia MIT) que monitoriza lo que muestra: sondas HTTP, TCP, DNS, SSL y heartbeat, historial de disponibilidad, incidentes con cronología, mantenimientos programados y suscripciones por correo. Esta guía lo instala con Docker Compose en un VPS, lo publica en HTTPS detrás de nginx y configura después las sondas, los incidentes y las alertas.",[38,42,52,86,89,105,109,112,115,118,121],{"type":39,"title":40,"body":41},"h2","Por qué una página de estado pública","Una herramienta de monitorización avisa a tu equipo de que un servicio está caído. Una página de estado se lo dice a tus usuarios — y eso es lo que suele faltar durante un incidente: los clientes no saben si el problema viene de su lado, abren tickets duplicados y te reclaman en las redes sociales.\n\nKener reúne ambos papeles. Sus sondas comprueban tus servicios a intervalos regulares y publican el historial de disponibilidad; cuando ocurre un incidente, añades actualizaciones que todos leen en el mismo sitio. Alojar esta página tú mismo evita una suscripción a un servicio de páginas de estado facturado por suscriptor o por página, y mantiene tus datos de monitorización contigo.",{"type":43,"title":44,"items":45},"ul","Lo que aporta Kener",[46,47,48,49,50,51],"**Sondas integradas** — API y HTTP, ping, TCP, DNS, SSL, SQL y heartbeat para tareas programadas.","**Incidentes con cronología** — cada actualización queda visible, de la detección a la resolución.","**Mantenimientos programados** — anunciados por adelantado, sin falsas alertas durante la intervención.","**Suscripciones por correo** — los visitantes se suscriben a los incidentes y mantenimientos que les afectan.","**Alertas del equipo** — webhook, Slack, Discord y correo, con plantillas de mensajes.","**A tu imagen** — logotipo, colores, tema claro u oscuro, varias páginas, insignias y widgets.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","Kener, Uptime Kuma y Gatus",[5,56,57,58],"Kener","Uptime Kuma","Gatus",[60,65,70,74,78,81],[61,62,63,64],"Función principal","Página de estado con monitorización integrada","Monitorización con páginas de estado opcionales","Monitorización declarada en YAML",[66,67,68,69],"Configuración","Interfaz de administración web","Interfaz web","Archivo YAML",[71,72,73,73],"Suscripciones de visitantes por correo","Sí (SMTP o Resend)","No",[75,76,76,77],"Varias páginas de estado","Sí","No, un único panel",[79,76,76,80],"Mantenimientos programados","Sí, declarados en YAML",[82,83,84,85],"Almacenamiento","SQLite, PostgreSQL o MySQL, más Redis","SQLite o MariaDB","Memoria, SQLite o PostgreSQL",{"type":39,"title":87,"body":88},"Requisitos previos","Un VPS Ubuntu 24.04 con 1 GB de RAM y 10 GB de disco, Docker y el plugin Compose instalados, y un nombre de host que apunte al VPS — por ejemplo `status.example.com`. Kener necesita conocer su dirección pública: la variable `ORIGIN` rige su protección contra peticiones entre sitios, y toda petición de otro origen se rechaza. Prevé también nginx y Certbot para el HTTPS.",{"type":90,"title":91,"steps":92},"steps","Instalar Kener con Docker Compose",[93,96,99,102],{"title":94,"body":95},"Preparar el directorio y la clave secreta","Crea el directorio de la aplicación y un archivo `.env` con la clave de firma de las sesiones y la dirección pública.\n```bash\nmkdir -p \u002Fopt\u002Fkener && cd \u002Fopt\u002Fkener\necho \"SECRET_KEY=$(openssl rand -hex 32)\" > .env\necho \"DOMAIN=status.example.com\" >> .env\nchmod 600 .env\n```",{"title":97,"body":98},"Escribir el archivo docker-compose.yml","Dos servicios: Redis, que lleva las colas de tareas y el planificador de las sondas, y Kener, con su base SQLite en un volumen. El puerto solo se publica en la interfaz local: solo nginx accede a él.\n```yaml\nservices:\n  redis:\n    image: redis:7.4-alpine\n    restart: unless-stopped\n    command: [\"redis-server\", \"--appendonly\", \"yes\"]\n    volumes:\n      - kener-redis:\u002Fdata\n    healthcheck:\n      test: [\"CMD\", \"redis-cli\", \"ping\"]\n      interval: 10s\n      timeout: 5s\n      retries: 10\n\n  kener:\n    image: rajnandan1\u002Fkener:4.1.10\n    restart: unless-stopped\n    depends_on:\n      redis:\n        condition: service_healthy\n    ports:\n      - \"127.0.0.1:3000:3000\"\n    environment:\n      KENER_SECRET_KEY: ${SECRET_KEY}\n      ORIGIN: https:\u002F\u002F${DOMAIN}\n      REDIS_URL: redis:\u002F\u002Fredis:6379\n      DATABASE_URL: sqlite:\u002F\u002F.\u002Fdatabase\u002Fkener.sqlite.db\n    volumes:\n      - kener-data:\u002Fapp\u002Fdatabase\n\nvolumes:\n  kener-data: {}\n  kener-redis: {}\n```",{"title":100,"body":101},"Arrancar y comprobar","Arranca la pila y consulta el punto de salud: responde en cuanto la aplicación está lista, normalmente en unos quince segundos.\n```bash\ndocker compose up -d\ndocker compose ps\ncurl -fsS http:\u002F\u002F127.0.0.1:3000\u002Fhealthcheck\n```",{"title":103,"body":104},"Publicar en HTTPS con nginx","Crea un vhost que reenvíe las peticiones a Kener y obtén el certificado con `certbot --nginx -d status.example.com`.\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name status.example.com;\n    # ssl_certificate \u002F ssl_certificate_key: added by Certbot\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n```",{"type":106,"title":107,"body":108},"tip","Crea la cuenta de administrador sin esperar","Kener no crea ninguna cuenta por adelantado: el primer visitante de `\u002Faccount\u002Fsignin` ve el formulario **Create Admin Account** y pasa a ser administrador. Abre esta página en cuanto funcione el HTTPS y crea tu cuenta con una contraseña robusta. Después el formulario desaparece y se rechaza cualquier nueva creación.",{"type":39,"title":110,"body":111},"Crear tus primeras sondas","En la administración, cada monitor corresponde a una línea de la página pública. Empieza con tres sondas: una sonda **API** sobre la página de inicio o un punto de salud de tu aplicación (código HTTP esperado, tiempo máximo), una sonda **SSL** que alerta unos días antes de que caduque el certificado, y una sonda **TCP** sobre el puerto de tu base de datos si es accesible desde el VPS.\n\nPara una tarea programada — copia de seguridad, exportación, sincronización — usa una sonda **heartbeat**: es la tarea la que llama a Kener al terminar, y la ausencia de señal a la hora prevista dispara la caída.\n```bash\n# at the end of your backup script\ncurl -fsS -m 10 https:\u002F\u002Fstatus.example.com\u002Fext\u002Fheartbeat\u002Fnightly-backup\u002FYOUR_SECRET\n```\n\nAgrupa los monitores por servicio (sitio, API, pagos) para que la página siga siendo legible, y oculta los que solo interesan al equipo.",{"type":39,"title":113,"body":114},"Declarar un incidente y programar un mantenimiento","Un incidente se crea desde la administración: título, monitores afectados, gravedad y después actualizaciones sucesivas — « investigando », « causa identificada », « resuelto ». Cada actualización queda visible en la cronología, lo que es mejor que un único mensaje editado sobre la marcha.\n\nUn mantenimiento se programa por adelantado con su ventana de inicio y fin. Aparece en la página antes de la intervención, y los monitores afectados no cuentan la interrupción como una caída.",{"type":39,"title":116,"body":117},"Avisar a tu equipo y a tus usuarios","Dos circuitos distintos. Para el equipo, las alertas se disparan según el estado de un monitor y se envían a un webhook, Slack, Discord o un correo, con plantillas de mensajes ajustables. Para los visitantes, las suscripciones les envían los incidentes y mantenimientos por correo, tras confirmar su dirección con un código.\n\nAmbos requieren el envío de correo configurado: añade al entorno del servicio `kener` las variables `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD` y `SMTP_SENDER`, o `RESEND_API_KEY` y `RESEND_SENDER_EMAIL`, y reinicia con `docker compose up -d`. Activa después las suscripciones en la administración.",{"type":39,"title":119,"body":120},"Copia de seguridad y actualización","Toda la configuración y el historial viven en la base SQLite del volumen `kener-data`; Redis solo lleva colas y caché. Copia el volumen tras una breve parada del servicio para obtener una copia coherente:\n```bash\ncd \u002Fopt\u002Fkener\ndocker compose stop kener\ndocker run --rm -v kener_kener-data:\u002Fdata -v \"$PWD\":\u002Fbackup alpine \\\n  tar czf \u002Fbackup\u002Fkener-$(date +%F).tar.gz -C \u002Fdata .\ndocker compose start kener\n```\n\nPara actualizar, lee las notas de versión en la página de releases del repositorio, cambia la etiqueta de la imagen en `docker-compose.yml` y ejecuta `docker compose pull && docker compose up -d`. El contenedor actualiza su base al arrancar: haz la copia antes.",{"type":39,"title":122,"body":123},"Instalación en un clic desde el Marketplace de ServOrbit","En un VPS de ServOrbit, Kener se instala desde el Marketplace de tu área de cliente: elige la dirección — un subdominio de uno de tus dominios o el subdominio gratuito del VPS, con HTTPS incluido — y haz clic en Instalar. El script despliega Kener y Redis, genera la clave secreta, ajusta la dirección pública y configura nginx. Solo queda abrir `\u002Faccount\u002Fsignin` para crear la cuenta de administrador y añadir tus sondas.","Tu página de estado, en tu VPS","Un VPS de ServOrbit Ubuntu 24.04 con 1 GB de RAM basta para Kener. Instalación en un clic desde el Marketplace, HTTPS en tu dominio o en el subdominio gratuito del VPS, clave secreta generada para ti.","Instalar Kener","\u002Fmarketplace\u002Fmonitorizacion-observabilidad\u002Fkener",[129,151,170],{"id":130,"slug":131,"slugs":132,"title":136,"excerpt":137,"readTime":138,"views":18,"isPinned":19,"publishedAt":139,"updatedAt":140,"category":141,"categories":146,"featuredImage":30,"bgImage":31,"posterImage":148,"relatedSolution":149},105,"supervisar-vps-con-uptime-kuma",{"fr":133,"en":134,"ar":135,"es":131},"superviser-vps-uptime-kuma","monitoring-your-vps-with-uptime-kuma","مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma","Supervisar su VPS con Uptime Kuma","Despliegue Uptime Kuma en su VPS para supervisar sus sitios y servicios en self-hosted, con alertas y página de estado pública.",8,"2026-03-07T00:00:00+00:00","2026-10-23T23:43:01+00:00",{"id":138,"name":142,"slug":143,"color":144,"icon":145},"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[147],{"id":138,"name":142,"slug":143,"color":144,"icon":145},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":34,"appSlug":150},"uptime-kuma",{"id":152,"slug":153,"slugs":154,"title":158,"excerpt":159,"readTime":160,"views":161,"isPinned":19,"publishedAt":162,"updatedAt":163,"category":164,"categories":165,"featuredImage":30,"bgImage":31,"posterImage":167,"relatedSolution":168},209,"alojar-gatus-en-un-vps",{"fr":155,"en":156,"ar":157,"es":153},"self-host-gatus-vps","self-host-gatus-on-a-vps-config-as-code-status-page-and-checks","استضافة-gatus-على-vps-صفحة-حالة-بالكود-ومراقبة-شاملة","Alojar Gatus en un VPS: página de estado config-as-code","Despliegue Gatus en su VPS ServOrbit: página de estado pública y checks HTTP, TCP, DNS, ICMP y caducidad TLS gobernados por un solo archivo YAML, 40+ canales de alerta.",4,1,"2026-08-02T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[166],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-gatus-vps-poster.svg",{"categorySlug":34,"appSlug":169},"gatus",{"id":171,"slug":172,"slugs":173,"title":177,"excerpt":178,"readTime":179,"views":18,"isPinned":19,"publishedAt":180,"updatedAt":181,"category":182,"categories":183,"featuredImage":30,"bgImage":31,"posterImage":185,"relatedSolution":30},541,"monitorizar-disponibilidad-sitios-clientes-agencia-informe-mensual",{"fr":174,"en":175,"ar":176,"es":172},"monitoring-disponibilite-sites-clients-agence-rapport","monitor-client-site-availability-agency-monthly-report","مراقبة-توفر-مواقع-العملاء-الوكالة-التقرير-الشهري","Vigilar la disponibilidad de sitios de clientes: informe mensual","Sondas, comprobaciones antes de alertar, ventanas de mantenimiento e informe mensual: cómo vigila una agencia los sitios de sus clientes sin falsos positivos.",10,"2026-10-30T00:00:00+00:00","2026-10-31T01:54:06+00:00",{"id":138,"name":142,"slug":143,"color":144,"icon":145},[184],{"id":138,"name":142,"slug":143,"color":144,"icon":145},"\u002Fblog\u002Fcovers\u002Fmonitoring-disponibilite-sites-clients-agence-rapport-poster.svg",1793480411574]