handle private docker registry

This commit is contained in:
counterweight 2025-10-16 12:08:18 +02:00
parent c3adce644c
commit 5222330ed7
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
4 changed files with 43 additions and 19 deletions

View file

@ -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

View file

@ -1,7 +1,7 @@
services:
emergenciapablo:
ntfy-emergency-app:
build: .
container_name: emergenciapablo
container_name: ntfy-emergency-app
ports:
- "3000:3000"
environment:

View file

@ -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

View file

@ -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",