feat: port mapping #99

Open
fauno wants to merge 0 commits from port-mapping into master
Owner

@Numerica la onda es que ya no está fijo el puerto 22, sino que se puede redirigir a cualquier puerto.

@ChasquiLabo el problema que vamos a tener es que cada puerto del proxy está reservado para una sola huerta, entonces si no se puede cambiar el 1935 en peertube, solo va a poder haber una unica instancia en toda la red abyaya yala!

@Numerica la onda es que ya no está fijo el puerto 22, sino que se puede redirigir a cualquier puerto. @ChasquiLabo el problema que vamos a tener es que cada puerto del proxy está reservado para una sola huerta, entonces si no se puede cambiar el 1935 en peertube, solo va a poder haber una unica instancia en toda la red abyaya yala!
fauno added 1 commit 2026-03-11 16:23:02 +00:00
fauno requested review from Numerica 2026-03-11 16:23:02 +00:00
fauno reviewed 2026-03-11 16:24:07 +00:00
@ -2,1 +1,3 @@
server {{ vhost.rap_dn }}:22;
{% for port in vhost.ports %}
upstream {{ vhost.rap_dn | replace(".", "") }}{{ port | replace(":", "_") }} {
server {{ vhost.rap_dn }}:{{ port.split(":")[1] | default(port) }};
Author
Owner

el numero que viene despues de los dos puntos es el destino, por defecto el mismo puerto

el numero que viene despues de los dos puntos es el destino, por defecto el mismo puerto
fauno marked this conversation as resolved
fauno added 1 commit 2026-03-11 16:24:38 +00:00
fauno reviewed 2026-03-11 16:24:57 +00:00
@ -4,3 +5,3 @@
server {
listen {{ vhost.ports[0] }};
listen {{ port.split(":")[0] | default(port) }};
Author
Owner

lo que viene antes de los dos puntos es el puerto público que no se puede repetir en toda la red

lo que viene antes de los dos puntos es el puerto público que no se puede repetir en toda la red
Owner

y el default que es?

y el default que es?
Author
Owner

acepta los dos formatos puerto o externo:interno. si solo podes 22 va a crear un 22:22, pero si pones 2222:22 cambias el puerto externo

aunque estoy viendo que no es necesario porque "22".split(":")[0] ya va a ser "22"

acepta los dos formatos `puerto` o `externo:interno`. si solo podes `22` va a crear un `22:22`, pero si pones `2222:22` cambias el puerto externo aunque estoy viendo que no es necesario porque `"22".split(":")[0]` ya va a ser `"22"`
fauno marked this conversation as resolved
Owner

Recién hablamos con @ChasquiLabo y nos parece que es un problema que un puerto no se pudiera repetir en la red.
A nuestro parecer el caso de uso es más bien "abrir puertos por servicio" , es decir que el servicio SSH necesita el 22 o el PeerTube el 1935, u otros.
Luego por limitación de nuestro actual proxy es necesario variar incrementalmente el puerto mapeado, pero manteniendo el puerto destino.
Por ahora es una solución aceptable, y a futuro el upgrade sería contar con un proxy que haga estas redirecciones en base al hostname, como se ha mencionado lo haría Caddy (simplificando también la expedición de certs, no?) - pero esta es harina de otro costal

Recién hablamos con @ChasquiLabo y nos parece que es un problema que un puerto no se pudiera repetir en la red. A nuestro parecer el caso de uso es más bien _"abrir puertos por servicio"_ , es decir que el servicio SSH necesita el 22 o el PeerTube el 1935, u otros. Luego por limitación de nuestro actual proxy es necesario variar incrementalmente el puerto mapeado, pero manteniendo el puerto destino. Por ahora es una solución aceptable, y a futuro el upgrade sería contar con un proxy que haga estas redirecciones en base al hostname, como se ha mencionado lo haría Caddy (simplificando también la expedición de certs, no?) - pero esta es harina de otro costal
fauno added 1 commit 2026-03-12 15:49:47 +00:00
Author
Owner

no es posible hacer proxy reverso repitiendo el mismo puerto si el protocolo no incluye el dominio al que va apuntado, por eso el proxy reverso por stream es solo por puerto. caddy tampoco haría esto, es un tema de cada protocolo y de que el proxy reverso entienda ese protocolo. por eso hay que abrir un puerto para cada huerta, que es lo que hace este pr.

no es posible hacer proxy reverso repitiendo el mismo puerto si el protocolo no incluye el dominio al que va apuntado, por eso el proxy reverso por stream es solo por puerto. caddy tampoco haría esto, es un tema de cada protocolo y de que el proxy reverso entienda ese protocolo. por eso hay que abrir un puerto para cada huerta, que es lo que hace este pr.
Numerica requested changes 2026-03-13 18:51:17 +00:00
Numerica left a comment
Owner

Bueno ahora que entendi que estan los dos puertos estamos OK
Corrigiendo el typo estamos para merge
Saludos

Bueno ahora que entendi que estan los dos puertos estamos OK Corrigiendo el typo estamos para merge Saludos
@ -10,3 +10,3 @@
- "443:443"
{% for port in matrix_ports %}
- "{{ port }}:{{ port }}"
- "{{ port.split(":")[0] }}:{{ por.split(":")[0] }}"
Owner

Aqui hay un typo, por le falta la t

Aqui hay un typo, **por** le falta la **t**
fauno marked this conversation as resolved
fauno added 1 commit 2026-03-14 14:10:11 +00:00
fauno added 3 commits 2026-03-14 14:17:48 +00:00
fauno added 1 commit 2026-03-14 14:23:00 +00:00
si la huerta.comun no se dió de alta en el dns local, el inicio de nginx
falla porque no puede resolverlo
Author
Owner

@Numerica hice cambios, los revisás?

@Numerica hice cambios, los revisás?
fauno added 1 commit 2026-03-14 14:29:03 +00:00
This pull request has changes conflicting with the target branch.
  • abyayala.yml
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin port-mapping:port-mapping
git checkout port-mapping
Sign in to join this conversation.
No description provided.