diff --git a/README.md b/README.md index d0aa3ea..4c7b872 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Emergencia Pablo - Webapp de Mensajes +# NTFY Emergency App - Webapp de Mensajes Una aplicación web simple que permite a los usuarios enviar mensajes de emergencia a través de un servidor ntfy. @@ -37,6 +37,11 @@ npm start - `NTFY_TOPIC`: Topic/canal de ntfy donde enviar mensajes (opcional, por defecto "emergencia") - `PORT`: Puerto donde correr la aplicación (opcional, por defecto 3000) +### Variables para Docker Registry (Opcionales) + +- `DOCKER_REGISTRY`: Registro personalizado para publicar la imagen (opcional) +- `DOCKER_TAG`: Tag para la imagen Docker (opcional, por defecto "latest") + ## Uso 1. Abre tu navegador en `http://localhost:3000` (o el puerto configurado) @@ -75,17 +80,17 @@ Para desplegar en un servidor Linux: ### Ejemplo con systemd (opcional) -Crear archivo `/etc/systemd/system/emergenciapablo.service`: +Crear archivo `/etc/systemd/system/ntfy-emergency-app.service`: ```ini [Unit] -Description=Emergencia Pablo Webapp +Description=NTFY Emergency App After=network.target [Service] Type=simple User=tu-usuario -WorkingDirectory=/ruta/a/emergenciapablo +WorkingDirectory=/ruta/a/ntfy-emergency-app Environment=NTFY_URL=https://tu-servidor-ntfy.com Environment=NTFY_USER=tu-usuario Environment=NTFY_PASSWORD=tu-password @@ -101,22 +106,35 @@ WantedBy=multi-user.target Luego: ```bash sudo systemctl daemon-reload -sudo systemctl enable emergenciapablo -sudo systemctl start emergenciapablo +sudo systemctl enable ntfy-emergency-app +sudo systemctl start ntfy-emergency-app ``` ## Publicación de Imagen Docker ### Construcción y Publicación Manual +#### Opción 1: Sin registro personalizado (Docker Hub) ```bash # Construir y publicar npm run docker:build-push +``` -# O manualmente -docker build -t emergenciapablo . -docker tag emergenciapablo tu-registro/emergenciapablo:latest -docker push tu-registro/emergenciapablo:latest +#### Opción 2: Con registro personalizado +```bash +# Configurar variables de entorno +export DOCKER_REGISTRY=tu-registro.com +export DOCKER_TAG=v1.0.0 + +# Construir y publicar +npm run docker:build-push +``` + +#### Opción 3: Manual +```bash +docker build -t ntfy-emergency-app . +docker tag ntfy-emergency-app tu-registro/ntfy-emergency-app:latest +docker push tu-registro/ntfy-emergency-app:latest ``` ### Uso con Registro Privado @@ -129,19 +147,19 @@ docker login tu-registro.com # Ejecutar la imagen docker run -d \ - --name emergenciapablo \ + --name ntfy-emergency-app \ -p 3000:3000 \ -e NTFY_URL=https://tu-servidor-ntfy.com \ -e NTFY_USER=tu-usuario \ -e NTFY_PASSWORD=tu-password \ -e NTFY_TOPIC=emergencia \ - tu-registro.com/emergenciapablo:latest + tu-registro.com/ntfy-emergency-app:latest ``` ## Estructura del Proyecto ``` -emergenciapablo/ +ntfy-emergency-app/ ├── server.js # Servidor Express principal ├── package.json # Dependencias y scripts ├── Dockerfile # Configuración de Docker @@ -157,3 +175,4 @@ emergenciapablo/ - 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 + diff --git a/docker-compose.yml b/docker-compose.yml index e127804..d5a832c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: - emergenciapablo: + ntfy-emergency-app: build: . - container_name: emergenciapablo + container_name: ntfy-emergency-app ports: - "3000:3000" environment: diff --git a/env.example b/env.example index a2393a2..ad3a128 100644 --- a/env.example +++ b/env.example @@ -3,3 +3,7 @@ NTFY_URL=https://tu-servidor-ntfy.com NTFY_USER=tu-usuario NTFY_PASSWORD=tu-password NTFY_TOPIC=emergencia + +# Variables opcionales para Docker registry +# DOCKER_REGISTRY=tu-registro.com +# DOCKER_TAG=latest diff --git a/package.json b/package.json index 946cc30..f3d73c1 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,15 @@ { - "name": "emergenciapablo", + "name": "ntfy-emergency-app", "version": "1.0.0", "description": "Simple webapp to send messages via ntfy", "main": "server.js", "scripts": { "start": "node server.js", "dev": "node server.js", - "docker:build": "docker build -t emergenciapablo .", - "docker:push": "docker push emergenciapablo", - "docker:build-push": "npm run docker:build && npm run docker:push" + "docker:build": "docker build -t ntfy-emergency-app .", + "docker:tag": "docker tag ntfy-emergency-app ${DOCKER_REGISTRY:-}${DOCKER_REGISTRY:+/}ntfy-emergency-app:${DOCKER_TAG:-latest}", + "docker:push": "docker push ${DOCKER_REGISTRY:-}${DOCKER_REGISTRY:+/}ntfy-emergency-app:${DOCKER_TAG:-latest}", + "docker:build-tag-push": "npm run docker:build && npm run docker:tag && npm run docker:push" }, "dependencies": { "express": "^4.18.2",