handle private docker registry
This commit is contained in:
parent
c3adce644c
commit
5222330ed7
4 changed files with 43 additions and 19 deletions
45
README.md
45
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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
services:
|
||||
emergenciapablo:
|
||||
ntfy-emergency-app:
|
||||
build: .
|
||||
container_name: emergenciapablo
|
||||
container_name: ntfy-emergency-app
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue