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

Despliegue con Traefik

Esta guía te ayudará a desplegar Gitea usando Traefik como reverse proxy con certificados SSL automáticos de Let's Encrypt.

Requisitos Previos

Antes de comenzar, asegúrate de tener:

  • Traefik funcionando con soporte para Let's Encrypt
  • Red Docker proxy creada y Traefik conectado a ella
  • Dominio configurado apuntando a tu servidor
  • Puertos 80 y 443 abiertos en el firewall
  • 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: docker-compose.override.traefik.yml.example
  5. En Environment variables, añade:

DOMAIN_HOST=gitea.tudominio.com
DB_PASSWORD='tu_password_generado'

⚠️ Importante:

  • DOMAIN_HOST es el dominio sin protocolo
  • Usa comillas simples en DB_PASSWORD para evitar problemas con caracteres especiales
  • Reemplaza con tu contraseña real generada anteriormente
  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 Traefik
  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. Copiar el archivo override

cp docker-compose.override.traefik.yml.example docker-compose.override.yml

3. Configurar variables de entorno

cp .env.example .env

Edita el archivo .env y configura:

DOMAIN_HOST=gitea.tudominio.com
DB_PASSWORD='tu_password_generado'

4. Iniciar el servicio

docker compose up -d

5. Verificar el despliegue

# Ver logs de Gitea
docker compose logs -f gitea

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

# Verificar que ambos contenedores están corriendo
docker compose ps

🔧 Configuración Inicial

Una vez desplegado, accede a https://gitea.tudominio.com y completa el asistente de instalación.

Ver la página Configuración Inicial para más detalles.

📝 Notas Técnicas

Red Interna

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

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

Labels de Traefik

El override configura:

  • Redirección automática HTTP → HTTPS
  • Certificado SSL con Let's Encrypt
  • Puerto interno 3000 (puerto web de Gitea)
  • Middleware de redirección permanente

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