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.
|
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")
|
- `NTFY_TOPIC`: Topic/canal de ntfy donde enviar mensajes (opcional, por defecto "emergencia")
|
||||||
- `PORT`: Puerto donde correr la aplicación (opcional, por defecto 3000)
|
- `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
|
## Uso
|
||||||
|
|
||||||
1. Abre tu navegador en `http://localhost:3000` (o el puerto configurado)
|
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)
|
### Ejemplo con systemd (opcional)
|
||||||
|
|
||||||
Crear archivo `/etc/systemd/system/emergenciapablo.service`:
|
Crear archivo `/etc/systemd/system/ntfy-emergency-app.service`:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Emergencia Pablo Webapp
|
Description=NTFY Emergency App
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=tu-usuario
|
User=tu-usuario
|
||||||
WorkingDirectory=/ruta/a/emergenciapablo
|
WorkingDirectory=/ruta/a/ntfy-emergency-app
|
||||||
Environment=NTFY_URL=https://tu-servidor-ntfy.com
|
Environment=NTFY_URL=https://tu-servidor-ntfy.com
|
||||||
Environment=NTFY_USER=tu-usuario
|
Environment=NTFY_USER=tu-usuario
|
||||||
Environment=NTFY_PASSWORD=tu-password
|
Environment=NTFY_PASSWORD=tu-password
|
||||||
|
|
@ -101,22 +106,35 @@ WantedBy=multi-user.target
|
||||||
Luego:
|
Luego:
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable emergenciapablo
|
sudo systemctl enable ntfy-emergency-app
|
||||||
sudo systemctl start emergenciapablo
|
sudo systemctl start ntfy-emergency-app
|
||||||
```
|
```
|
||||||
|
|
||||||
## Publicación de Imagen Docker
|
## Publicación de Imagen Docker
|
||||||
|
|
||||||
### Construcción y Publicación Manual
|
### Construcción y Publicación Manual
|
||||||
|
|
||||||
|
#### Opción 1: Sin registro personalizado (Docker Hub)
|
||||||
```bash
|
```bash
|
||||||
# Construir y publicar
|
# Construir y publicar
|
||||||
npm run docker:build-push
|
npm run docker:build-push
|
||||||
|
```
|
||||||
|
|
||||||
# O manualmente
|
#### Opción 2: Con registro personalizado
|
||||||
docker build -t emergenciapablo .
|
```bash
|
||||||
docker tag emergenciapablo tu-registro/emergenciapablo:latest
|
# Configurar variables de entorno
|
||||||
docker push tu-registro/emergenciapablo:latest
|
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
|
### Uso con Registro Privado
|
||||||
|
|
@ -129,19 +147,19 @@ docker login tu-registro.com
|
||||||
|
|
||||||
# Ejecutar la imagen
|
# Ejecutar la imagen
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name emergenciapablo \
|
--name ntfy-emergency-app \
|
||||||
-p 3000:3000 \
|
-p 3000:3000 \
|
||||||
-e NTFY_URL=https://tu-servidor-ntfy.com \
|
-e NTFY_URL=https://tu-servidor-ntfy.com \
|
||||||
-e NTFY_USER=tu-usuario \
|
-e NTFY_USER=tu-usuario \
|
||||||
-e NTFY_PASSWORD=tu-password \
|
-e NTFY_PASSWORD=tu-password \
|
||||||
-e NTFY_TOPIC=emergencia \
|
-e NTFY_TOPIC=emergencia \
|
||||||
tu-registro.com/emergenciapablo:latest
|
tu-registro.com/ntfy-emergency-app:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
## Estructura del Proyecto
|
## Estructura del Proyecto
|
||||||
|
|
||||||
```
|
```
|
||||||
emergenciapablo/
|
ntfy-emergency-app/
|
||||||
├── server.js # Servidor Express principal
|
├── server.js # Servidor Express principal
|
||||||
├── package.json # Dependencias y scripts
|
├── package.json # Dependencias y scripts
|
||||||
├── Dockerfile # Configuración de Docker
|
├── Dockerfile # Configuración de Docker
|
||||||
|
|
@ -157,3 +175,4 @@ emergenciapablo/
|
||||||
- Los mensajes se envían al topic configurado en `NTFY_TOPIC` (por defecto "emergencia")
|
- Los mensajes se envían al topic configurado en `NTFY_TOPIC` (por defecto "emergencia")
|
||||||
- El formato del mensaje es: "Nombre: Mensaje"
|
- El formato del mensaje es: "Nombre: Mensaje"
|
||||||
- La aplicación valida que ambos campos estén completos antes de enviar
|
- La aplicación valida que ambos campos estén completos antes de enviar
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
services:
|
services:
|
||||||
emergenciapablo:
|
ntfy-emergency-app:
|
||||||
build: .
|
build: .
|
||||||
container_name: emergenciapablo
|
container_name: ntfy-emergency-app
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
environment:
|
environment:
|
||||||
|
|
|
||||||
|
|
@ -3,3 +3,7 @@ NTFY_URL=https://tu-servidor-ntfy.com
|
||||||
NTFY_USER=tu-usuario
|
NTFY_USER=tu-usuario
|
||||||
NTFY_PASSWORD=tu-password
|
NTFY_PASSWORD=tu-password
|
||||||
NTFY_TOPIC=emergencia
|
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",
|
"version": "1.0.0",
|
||||||
"description": "Simple webapp to send messages via ntfy",
|
"description": "Simple webapp to send messages via ntfy",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node server.js",
|
"start": "node server.js",
|
||||||
"dev": "node server.js",
|
"dev": "node server.js",
|
||||||
"docker:build": "docker build -t emergenciapablo .",
|
"docker:build": "docker build -t ntfy-emergency-app .",
|
||||||
"docker:push": "docker push emergenciapablo",
|
"docker:tag": "docker tag ntfy-emergency-app ${DOCKER_REGISTRY:-}${DOCKER_REGISTRY:+/}ntfy-emergency-app:${DOCKER_TAG:-latest}",
|
||||||
"docker:build-push": "npm run docker:build && npm run docker:push"
|
"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": {
|
"dependencies": {
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue