[{"data":1,"prerenderedAt":145},["ShallowReactive",2],{"seo-verification":3,"blog-autoalojar-ntfy-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-autoalojar-ntfy-en-un-vps-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":84,"ctaBody":85,"ctaButton":86,"ctaUrl":87,"relatedPosts":88},194,"autoalojar-ntfy-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"self-host-ntfy-vps","self-host-ntfy-on-a-vps-push-notifications-for-scripts-and-cicd","استضافة-ntfy-على-vps-إشعارات-فورية-من-سكريبتاتك-وcicd","Alojar ntfy en un VPS: notificaciones push para sus scripts","Despliegue ntfy en su VPS y envíe notificaciones push desde cualquier script, cron o pipeline CI\u002FCD con un simple curl — sin SaaS ni clave de API.",4,0,false,"2026-07-28T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-ntfy-vps-poster.svg",{"categorySlug":34,"appSlug":35},"monitorizacion-observabilidad","ntfy","Slack se paga por asiento. Los correos se pierden en el ruido. Los webhooks de Discord desaparecen en un hilo. ntfy (Apache 2.0, ~32 k ⭐, v2.26.3) resuelve el problema de otra manera: un servidor pub\u002Fsub HTTP que usted mismo aloja en su VPS y al que cualquier script envía una alerta con un `curl -d`. La aplicación móvil recibe el push en tiempo real — incluso fuera de la red local. Un solo contenedor Docker, \u003C 30 MB de RAM, sin necesidad de cuenta.",[38,42,54,57,80],{"type":39,"title":40,"body":41},"h2","El problema: demasiadas herramientas de monitoreo, demasiados canales de notificación","Uptime Kuma vigila sus servicios, Beszel vigila las métricas de su VPS, Changedetection.io vigila sus páginas web, y sus cron jobs callan por la noche — salvo cuando fallan. Cada uno tiene su canal de notificación: Slack, correo, webhook, Telegram. Resultado: tiene cinco integraciones distintas que mantener, cinco tipos de alerta que formatear y ninguna vista unificada cuando algo se rompe a las 03:00. ntfy resuelve el problema al revés: es usted quien aloja el hub de notificaciones, y cada herramienta o script le envía sus alertas por HTTP en crudo.",{"type":43,"title":44,"items":45},"ul","Lo que ntfy aporta de entrada",[46,47,48,49,50,51,52,53],"Envío de una notificación con un simple curl — `curl -d \"Build fallido\" http:\u002F\u002Fsu-vps\u002Falertas-ci` — cero SDK, cero bibliotecas.","Recepción en Android (F-Droid \u002F Play Store), iOS (App Store), navegador de escritorio e interfaz web de ntfy — todos se suscriben al mismo topic vía WebSocket o SSE.","Acciones dentro de la notificación — botones que disparan callbacks HTTP, abren URL o ejecutan comandos en el dispositivo.","Notificaciones programadas — entrega diferida (`X-Delay: 30min`) para programar recordatorios desde sus scripts.","Niveles de prioridad (mín. \u002F baja \u002F predeterminada \u002F alta \u002F urgente) con anulación del modo No molestar para las alertas críticas.","Archivos adjuntos — imágenes o archivos de hasta 15 MB mediante la cabecera `X-Attach` o una subida multipart.","Control de acceso — añada usuarios, contraseñas y ACL por topic con la CLI `ntfy user` y `ntfy access`.","\u003C 30 MB de RAM, SQLite, un solo contenedor — el servidor de notificaciones push más ligero de su categoría.",{"type":39,"title":55,"body":56},"Arquitectura: un pub\u002Fsub HTTP en un solo contenedor","ntfy es un binario Go que cabe en un único contenedor Docker. Expone una interfaz HTTP sencilla: un `PUT` o un `POST` sobre `\u002Fsu-topic` publica un mensaje; cualquier cliente que escuche ese topic (por WebSocket, SSE o la app móvil) lo recibe al instante. Los mensajes se guardan en caché en SQLite (`\u002Fvar\u002Flib\u002Fntfy\u002Fcache.db`) con una retención configurable (12 horas de forma predeterminada). La variable `NTFY_BEHIND_PROXY=true` le indica a ntfy que está detrás de un reverse proxy (nginx) y que debe leer la IP real desde `X-Forwarded-For`.",{"type":58,"title":59,"items":60,"steps":76},"steps","Desplegar y usar ntfy en 6 pasos",[61,64,67,70,73],{"title":62,"body":63},"Desplegar ntfy desde el marketplace ServOrbit","Abra su panel de ServOrbit → Marketplace → Monitoring → ntfy → Desplegar. Docker descarga `binwiederhier\u002Fntfy:latest`, arranca ntfy en el puerto 8080 y la interfaz web queda accesible en menos de 5 segundos. No hace falta ningún archivo de configuración en el primer arranque.",{"title":65,"body":66},"Enviar su primera notificación","Desde cualquier terminal con curl:\n```bash\ncurl -d \"Hola desde mi VPS\" http:\u002F\u002Fip-de-su-vps:8080\u002Fmi-topic\n```\nAbra la interfaz web de ntfy en la misma URL, vaya a `mi-topic` y su mensaje aparece en tiempo real. Los topics se crean en el primer envío — sin ninguna configuración previa.",{"title":68,"body":69},"Suscribirse desde su teléfono","Instale la app ntfy (Android: F-Droid o Play Store; iOS: App Store). Pulse +, introduzca la URL de su servidor y el nombre del topic. Recibirá notificaciones push en cuanto se publique un mensaje — incluso con la app en segundo plano, mediante UnifiedPush (Android F-Droid), FCM (Android Play) o APNs (iOS).",{"title":71,"body":72},"Conectar sus herramientas de monitoreo","En Uptime Kuma: Ajustes → Notificaciones → ntfy → introduzca la URL del servidor y el topic. Haga lo mismo con Beszel, Changedetection.io y Grafana — cada herramienta apunta al mismo servidor ntfy con un topic distinto. Todas sus alertas de monitoreo llegan a un hub unificado en su teléfono.",{"title":74,"body":75},"Alertar desde sus scripts y cron jobs","Añada una línea al final de cada script crítico:\n```bash\n# Al final del backup\ncurl -H \"Title: Backup nocturno\" -H \"Priority: high\" -d \"Backup terminado a las $(date)\" http:\u002F\u002Fsu-vps:8080\u002Fcron-jobs\n\n# En caso de error\ncurl -H \"Tags: warning\" -d \"Backup FALLIDO: código $?\" http:\u002F\u002Fsu-vps:8080\u002Fcron-jobs\n```\nEl silencio pasa a ser la señal de una anomalía; la notificación push confirma la ejecución normal.",[77],{"title":78,"body":79},"Conectarse por primera vez","ntfy arranca SIN ninguna cuenta ni contraseña: la URL abre directamente la interfaz, y cualquiera que conozca la dirección puede leer Y publicar en cualquier topic. Si su servidor es accesible desde Internet, active la autenticación antes de usarlo en serio.",{"type":81,"title":82,"body":83},"tip","Consejo: los nombres de topic como espacios de nombres","Organice sus alertas por origen: `ci-builds` para GitHub Actions\u002FGitLab CI, `server-alerts` para Uptime Kuma\u002FBeszel, `cron-jobs` para sus scripts por lotes. La app ntfy le permite silenciar ciertos topics por la noche (por ejemplo `cron-jobs`) y mantener `server-alerts` en alerta máxima. Ninguna configuración del lado del servidor — basta con el nombre del topic en el curl.","Su hub de notificaciones bajo su control","Despliegue ntfy en un VPS ServOrbit y centralice todas sus alertas de monitoreo, CI\u002FCD y cron en un hub de notificaciones autoalojado — sin SaaS, sin suscripción.","Desplegar ntfy","\u002Fmarketplace\u002Fmonitorizacion-observabilidad\u002Fntfy",[89,107,128],{"id":90,"slug":91,"slugs":92,"title":96,"excerpt":97,"readTime":23,"views":98,"isPinned":19,"publishedAt":99,"updatedAt":100,"category":101,"categories":102,"featuredImage":30,"bgImage":31,"posterImage":104,"relatedSolution":105},133,"alojar-beszel-hub-monitorizacion-vps",{"fr":93,"en":94,"ar":95,"es":91},"self-host-beszel-vps","self-host-beszel-multi-server-monitoring-hub-on-your-vps","استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم","Beszel en VPS: monitorización multiservidor, alertas y seguridad","Supervise su parque de VPS desde un único hub Beszel: alertas por Telegram y correo, 2FA, agentes declarados automáticamente y solución de conexiones silenciosas.",1,"2026-02-14T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[103],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":34,"appSlug":106},"beszel",{"id":108,"slug":109,"slugs":110,"title":114,"excerpt":115,"readTime":17,"views":98,"isPinned":19,"publishedAt":116,"updatedAt":100,"category":117,"categories":123,"featuredImage":30,"bgImage":31,"posterImage":125,"relatedSolution":126},167,"alojar-dozzle-en-un-vps",{"fr":111,"en":112,"ar":113,"es":109},"self-host-dozzle-vps","how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer","استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا","Alojar Dozzle en un VPS: logs Docker en tiempo real","Despliegue Dozzle en su VPS: un visor de logs Docker open source y sin estado. Siga y busque en directo los logs de sus contenedores, sin SSH.","2026-07-06T00:00:00+00:00",{"id":118,"name":119,"slug":120,"color":121,"icon":122},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[124],{"id":118,"name":119,"slug":120,"color":121,"icon":122},"\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":34,"appSlug":127},"dozzle",{"id":129,"slug":130,"slugs":131,"title":135,"excerpt":136,"readTime":137,"views":18,"isPinned":19,"publishedAt":138,"updatedAt":100,"category":139,"categories":140,"featuredImage":30,"bgImage":31,"posterImage":142,"relatedSolution":143},182,"alojar-changedetection-io-en-un-vps",{"fr":132,"en":133,"ar":134,"es":130},"self-host-changedetection-vps","self-host-changedetectionio-on-a-vps-monitor-any-website","استضافة-changedetectionio-على-vps-مراقبة-تغييرات-المواقع","Changedetection.io en VPS: monitoriza cambios en sitios web","Changedetection.io en VPS: detección open source, filtros CSS\u002FXPath, 80+ canales de notificación. Regresiones v0.60.x documentadas.",9,"2026-07-17T00:00:00+00:00",{"id":118,"name":119,"slug":120,"color":121,"icon":122},[141],{"id":118,"name":119,"slug":120,"color":121,"icon":122},"\u002Fblog\u002Fcovers\u002Fself-host-changedetection-vps-poster.svg",{"categorySlug":34,"appSlug":144},"changedetection",1789665008272]