Proxies inversos

En CommandCore hay diversos servicios que necesitan funcionar en diferentes puertos que colisionan entre sí. Para permitir el uso de todos ellos en la misma máquina se aplica un modelo de proxies inversos, mediante los cuales Nginx distribuye las peticiones y conexiones entre las diferentes aplicaciones.

Existe un script para facilitar la creación de nuevos proxies inversos para servicios https que lo necesiten.

Crear el subdominio en el panel DNS de Cloudflare

  1. Entrar al Dashboard de Cloudflare
  2. Localizar el panel de registros DNS del dominio
  3. Añadir un nuevo dominio de tipo CNAME apuntando al registro del servidor (commandcore.lemniscata.net) con el nombre deseado:

    imagen.png


  4. Ejecutar el script de creación de proxy inverso
    /etc/nginx/sites-avaiable/redirect <nombre> <url> <puerto>
    Argumento Descripción Ejemplo
    nombre Nombre descriptivo para el archivo. Una sola palabra documentacion
    subdominio El subdominio que hemos configurado en el DNS docs.lemniscata.net
    puerto Puerto al que redireccionar el tráfico. En este puerto debe estar escuchando la aplicación objetivo.

    9999

  5. Documentar el proxy en esta página

Listado de proxies

Se listan aquí los proxies tanto activos como inactivos de CommandCore

Servicio Subdominio Puerto interno Tipo
BookStack docs.lemniscata.net
6875 Simple
Cartago (Lemniscata) cartgo.lemniscata.net 15002 Simple
Fototeca (Immich) fototeca.lemniscata.net 2283 Simple
Lemniscata lemniscata.net - Personalizado
Pterodactyl panel.lemniscata.net - Personalizado
Static (Lemniscata) static.lemniscata.net - Acceso estático
WebAPI (Lemniscata) webapi.lemniscata.net 15001 Simple

Script de creación de proxies

En caso de pérdida, se documenta el script para crear proxies fácilmente.

Script /etc/nginx/sites-avaiable/redirect:

#!/bin/bash

name="$1"
domain="$2"
port="$3"

if [ "$#" -ne 3 ]; then
        echo "Usage: $0 <name> <domain> <port>"
        exit 1
fi

sed -e "s/%DOMAIN%/$domain/g" -e "s/%PORT%/$port/g" ./preset > "/etc/nginx/sites-available/${name}.conf"
rm "/etc/nginx/sites-enabled/${name}.conf"
ln -n "/etc/nginx/sites-available/${name}.conf" "/etc/nginx/sites-enabled/${name}.conf"
nginx -t
service nginx restart
certbot --nginx -d "${domain}"

Archivo de plantilla /etc/nginx/sites-avaiable/preset:

server {

    listen 80;
    server_name %DOMAIN%;

    location / {

        proxy_pass http://127.0.0.1:%PORT%;
        proxy_ssl_verify off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;

    }

}

Revision #1
Created 2026-10-10 16:56:20 UTC by Paula
Updated 2026-10-10 18:07:31 UTC by Paula