1
NPM
groales edited this page 2025-12-03 16:27:25 +01:00

Despliegue con Nginx Proxy Manager (NPM)

Esta guía te ayudará a desplegar Gitea usando Nginx Proxy Manager como reverse proxy.

Requisitos Previos

Antes de comenzar, asegúrate de tener:

  • Nginx Proxy Manager funcionando y accesible
  • Red Docker proxy creada y NPM conectado a ella
  • Dominio configurado apuntando a tu servidor
  • Puertos 80 y 443 abiertos y dirigidos a NPM
  • DB_PASSWORD generada

Verificar Red Proxy

docker network ls | grep proxy

Si no existe, créala:

docker network create proxy

🔑 Generar DB_PASSWORD

Antes de cualquier despliegue, genera una contraseña segura para PostgreSQL:

openssl rand -base64 32

Guarda el resultado, lo necesitarás para las variables de entorno.

⚠️ Importante: Usa comillas simples en el archivo .env si contiene caracteres especiales.


🚀 Despliegue desde Portainer

Opción A: Git Repository (Recomendada)

Esta opción mantiene tu stack actualizado con el repositorio Git.

  1. En Portainer, ve a StacksAdd stack

  2. Nombre del stack: gitea

  3. Selecciona Git Repository

  4. Configura el repositorio:

    • Repository URL: https://git.ictiberia.com/groales/gitea
    • Repository reference: refs/heads/main
    • Compose path: docker-compose.yml
    • Additional paths: Dejar vacío (no necesitas override para NPM)
  5. En Environment variables, añade:

DB_PASSWORD='tu_password_generado'

⚠️ Nota: Otras opciones se configuran desde el panel de administración de Gitea después del despliegue.

  1. Haz clic en Deploy the stack

Opción B: Web Editor

Si prefieres usar el editor web de Portainer:

  1. Copia el contenido consolidado del README - Sección NPM
  2. Pégalo en el Web Editor
  3. Configura las variables de entorno como en la Opción A

🖥️ Despliegue desde CLI

1. Clonar el repositorio

git clone https://git.ictiberia.com/groales/gitea.git
cd gitea

2. Configurar variables de entorno

No necesitas archivo override. El docker-compose.yml base es suficiente para NPM.

cp .env.example .env

Edita el archivo .env y configura:

DB_PASSWORD='tu_password_generado'

3. Iniciar el servicio

docker compose up -d

4. Verificar el despliegue

# Ver logs
docker compose logs -f gitea
docker compose logs -f gitea-db

# Verificar que el contenedor está corriendo
docker compose ps

5. Configurar Nginx Proxy Manager

Ver la sección de configuración a continuación.

🔧 Configuración en Nginx Proxy Manager

Una vez que Gitea esté corriendo, configura el Proxy Host en NPM:

1. Crear Proxy Host

  1. En NPM, ve a Proxy HostsAdd Proxy Host

  2. En la pestaña Details:

    • Domain Names: gitea.tudominio.com
    • Scheme: http
    • Forward Hostname / IP: gitea
    • Forward Port: 3000
    • Block Common Exploits: Activar
    • Websockets Support: Activar (recomendado para mejor rendimiento)
  3. En la pestaña SSL:

    • Force SSL: Activar
    • SSL Certificate: Request a new SSL Certificate
    • Marca las opciones:
      • Force SSL
      • HTTP/2 Support
      • HSTS Enabled
  4. Haz clic en Save

2. Verificar Acceso

Visita https://gitea.tudominio.com - deberías ver el asistente de instalación de Gitea.

📝 Notas Técnicas

Red Interna

Gitea y PostgreSQL se comunican a través de la red gitea-internal:

  • gitea: Conectado a proxy (para NPM) y gitea-internal (para DB)
  • gitea-db: Solo conectado a gitea-internal (aislado de internet)

Puerto Interno

Gitea escucha en el puerto 3000 internamente. NPM se encarga de:

  • Proxy inverso desde puerto 443 (HTTPS) → 3000 (Gitea)
  • Terminación SSL
  • Redirección HTTP → HTTPS

Persistencia de Datos

Dos volúmenes:

  • gitea_data: Repositorios, configuración, avatares, LFS
  • gitea_db: Base de datos PostgreSQL

🛠️ Comandos Útiles

# Ver configuración de Gitea
docker compose exec gitea cat /data/gitea/conf/app.ini

# Acceder al contenedor de Gitea
docker compose exec gitea bash

# Acceder a PostgreSQL
docker compose exec gitea-db psql -U gitea

# Reiniciar solo Gitea (sin afectar DB)
docker compose restart gitea

# Ver espacio usado por volúmenes
docker system df -v | grep gitea

🔄 Actualización

Ver la página Actualización para instrucciones detalladas.


Siguiente paso: Configuración Inicial