Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Variante Alpine. Base image actualizada a Alpine Linux.

web-proxy

Contenedor único con:

  • nginx para reverse proxy y TLS
  • lighttpd + PHP para el panel mínimo
  • certbot para emitir y renovar certificados

Qué hace

  • publica panel.tecnologica.ar como panel HTTPS
  • guarda la configuración en ./data/config/sites.json
  • guarda los certificados en ./data/letsencrypt
  • atiende /.well-known/acme-challenge/ por HTTP
  • cuando agregás un dominio nuevo, intenta emitir el certificado automáticamente
  • renueva certificados cada 12 horas

Estructura persistente

  • data/config → sitios y usuarios
  • data/acme-challenge → desafío ACME
  • data/letsencrypt → certificados

Primer arranque

  1. Editá docker-compose.yml
    • PANEL_DOMAIN
    • CERTBOT_EMAIL
    • PANEL_USER
    • PANEL_PASSWORD
  2. Asegurate de que el DNS de panel.tecnologica.ar apunte al servidor.
  3. Levantá el proyecto:
docker compose up -d --build

Acceso al panel

Primero va a responder por HTTP en cuanto levante nginx. Cuando certbot pueda emitir el certificado, va a quedar también por HTTPS.

  • http://panel.tecnologica.ar
  • https://panel.tecnologica.ar

Sitios

Cada sitio se guarda así:

[
  {
    "domain": "tecnologica.ar",
    "aliases": ["www.tecnologica.ar"],
    "target": "host.docker.internal:8040"
  }
]

Notas importantes

  • localhost dentro del contenedor no es el host. Para apuntar al host usá host.docker.internal:PUERTO.
  • El compose ya incluye:
extra_hosts:
  - "host.docker.internal:host-gateway"
  • Si querés compartir certificados con otro contenedor, montá ./data/letsencrypt también en ese otro contenedor.

Cambio de contraseña del panel

La primera vez se crea data/config/users.json con el usuario y contraseña del compose.

Si querés cambiarla después, podés regenerar el hash así:

docker exec -it web-proxy php -r 'echo password_hash("NUEVA_CLAVE", PASSWORD_BCRYPT), PHP_EOL;'

Luego reemplazás el hash en data/config/users.json.

Migración

En otro host solo necesitás copiar:

  • docker-compose.yml
  • data/config
  • data/acme-challenge
  • data/letsencrypt

Luego:

docker compose up -d

About

Lightweight Docker-based reverse proxy with Nginx, Alpine, automatic Let’s Encrypt certificates, renewal, and a minimal web panel for managing virtual hosts and internal upstreams.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages