No description
| public | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| env.example | ||
| package.json | ||
| README.md | ||
| server.js | ||
Emergencia Pablo - Webapp de Mensajes
Una aplicación web simple que permite a los usuarios enviar mensajes de emergencia a través de un servidor ntfy.
Características
- Formulario simple con campos "Tu nombre" y "Mensaje"
- Envío automático a servidor ntfy con autenticación
- Interfaz minimalista y responsive
- Confirmación de envío al usuario
Instalación
- Instalar dependencias:
npm install
- Configurar variables de entorno:
export NTFY_URL="https://tu-servidor-ntfy.com"
export NTFY_USER="tu-usuario"
export NTFY_PASSWORD="tu-password"
export PORT=3000 # opcional, por defecto 3000
- Ejecutar la aplicación:
npm start
Variables de Entorno
NTFY_URL: URL de tu servidor ntfy (requerido)NTFY_USER: Usuario para autenticación en ntfy (requerido)NTFY_PASSWORD: Contraseña para autenticación en ntfy (requerido)NTFY_TOPIC: Topic/canal de ntfy donde enviar mensajes (opcional, por defecto "emergencia")PORT: Puerto donde correr la aplicación (opcional, por defecto 3000)
Uso
- Abre tu navegador en
http://localhost:3000(o el puerto configurado) - Completa el formulario con tu nombre y mensaje
- Haz clic en "Enviar Mensaje"
- Recibirás confirmación si el mensaje se envió correctamente
Despliegue
Opción 1: Docker (Recomendado)
- Crea un archivo
.envcon tus credenciales:
NTFY_URL=https://tu-servidor-ntfy.com
NTFY_USER=tu-usuario
NTFY_PASSWORD=tu-password
NTFY_TOPIC=emergencia
- Ejecuta con Docker Compose:
docker-compose up -d
La aplicación estará disponible en http://localhost:3000
Opción 2: Instalación directa
Para desplegar en un servidor Linux:
- Sube los archivos al servidor
- Instala Node.js (versión 14 o superior)
- Configura las variables de entorno
- Ejecuta
npm installpara instalar dependencias - Ejecuta
npm startpara iniciar la aplicación
Ejemplo con systemd (opcional)
Crear archivo /etc/systemd/system/emergenciapablo.service:
[Unit]
Description=Emergencia Pablo Webapp
After=network.target
[Service]
Type=simple
User=tu-usuario
WorkingDirectory=/ruta/a/emergenciapablo
Environment=NTFY_URL=https://tu-servidor-ntfy.com
Environment=NTFY_USER=tu-usuario
Environment=NTFY_PASSWORD=tu-password
Environment=NTFY_TOPIC=emergencia
Environment=PORT=3000
ExecStart=/usr/bin/node server.js
Restart=always
[Install]
WantedBy=multi-user.target
Luego:
sudo systemctl daemon-reload
sudo systemctl enable emergenciapablo
sudo systemctl start emergenciapablo
Estructura del Proyecto
emergenciapablo/
├── server.js # Servidor Express principal
├── package.json # Dependencias y scripts
├── Dockerfile # Configuración de Docker
├── docker-compose.yml # Orquestación con Docker Compose
├── public/
│ ├── index.html # Página principal
│ └── style.css # Estilos CSS
└── README.md # Este archivo
Notas
- Los mensajes se envían al topic configurado en
NTFY_TOPIC(por defecto "emergencia") - El formato del mensaje es: "Nombre: Mensaje"
- La aplicación valida que ambos campos estén completos antes de enviar