Wiki completa de Gitea: 9 páginas en español
290
Actualización.md
Normal file
290
Actualización.md
Normal file
@@ -0,0 +1,290 @@
|
||||
# Actualización
|
||||
|
||||
Mantén Gitea y PostgreSQL actualizados para obtener nuevas características y parches de seguridad.
|
||||
|
||||
## 🔄 Actualización desde Portainer
|
||||
|
||||
### Método 1: Git Repository Stack
|
||||
|
||||
Si desplegaste usando Git Repository:
|
||||
|
||||
1. Ve a **Stacks** → Tu stack `gitea`
|
||||
2. Haz clic en **Pull and redeploy**
|
||||
3. Portainer:
|
||||
- Descarga la última versión del compose desde Git
|
||||
- Descarga las imágenes Docker actualizadas
|
||||
- Recrea los contenedores
|
||||
|
||||
⏱️ **Tiempo estimado**: 2-5 minutos (con downtime)
|
||||
|
||||
### Método 2: Web Editor Stack
|
||||
|
||||
Si usaste Web Editor:
|
||||
|
||||
1. Ve a **Stacks** → Tu stack `gitea`
|
||||
2. Haz clic en **Editor**
|
||||
3. No cambies nada (usa `latest` tag)
|
||||
4. Haz clic en **Update the stack**
|
||||
5. ✅ Marca **Re-pull image and redeploy**
|
||||
|
||||
## 🖥️ Actualización desde CLI
|
||||
|
||||
### Actualización Estándar
|
||||
|
||||
```bash
|
||||
cd /path/to/gitea
|
||||
|
||||
# 1. Hacer backup antes de actualizar
|
||||
./backup-gitea.sh # Si tienes script de backup
|
||||
|
||||
# 2. Descargar nuevas imágenes
|
||||
docker compose pull
|
||||
|
||||
# 3. Recrear contenedores
|
||||
docker compose up -d
|
||||
|
||||
# 4. Verificar logs
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
### Actualización con Downtime Mínimo
|
||||
|
||||
```bash
|
||||
# 1. Pull de imágenes (sin downtime)
|
||||
docker compose pull
|
||||
|
||||
# 2. Recrear solo Gitea (downtime ~10 segundos)
|
||||
docker compose up -d --no-deps gitea
|
||||
|
||||
# 3. Verificar
|
||||
docker compose ps
|
||||
docker compose logs gitea
|
||||
```
|
||||
|
||||
## 📋 Checklist Pre-Actualización
|
||||
|
||||
Antes de actualizar, verifica:
|
||||
|
||||
- ✅ **Backup reciente**: Tienes backup de datos y BD
|
||||
- ✅ **Changelog revisado**: Lee [Gitea Releases](https://github.com/go-gitea/gitea/releases)
|
||||
- ✅ **Breaking changes**: Verifica si hay cambios que rompan compatibilidad
|
||||
- ✅ **Migraciones de BD**: Algunas versiones requieren migraciones
|
||||
- ✅ **Tiempo de ventana**: Planifica mantenimiento si es producción
|
||||
|
||||
## 🔍 Verificar Versión Actual
|
||||
|
||||
```bash
|
||||
# Ver versión de Gitea
|
||||
docker compose exec gitea gitea --version
|
||||
|
||||
# Ver versión de PostgreSQL
|
||||
docker compose exec gitea-db psql --version
|
||||
|
||||
# Ver tags de imágenes
|
||||
docker compose images
|
||||
```
|
||||
|
||||
## 🆙 Actualizar a Versión Específica
|
||||
|
||||
Si necesitas una versión específica en lugar de `latest`:
|
||||
|
||||
### Editar docker-compose.yml
|
||||
|
||||
```yaml
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:1.21.0 # En lugar de :latest
|
||||
|
||||
gitea-db:
|
||||
image: postgres:16-alpine # Mantener versión
|
||||
```
|
||||
|
||||
### Actualizar
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## 🔄 Migraciones Automáticas
|
||||
|
||||
Gitea ejecuta migraciones de base de datos automáticamente al iniciar:
|
||||
|
||||
```bash
|
||||
# Ver logs de migración
|
||||
docker compose logs gitea | grep -i migrat
|
||||
|
||||
# Ejemplo de salida:
|
||||
# [I] [SQL] Running migration: v123 -> Add new column to issues table
|
||||
```
|
||||
|
||||
> ⚠️ Las migraciones son irreversibles. Por eso es crítico hacer backup antes.
|
||||
|
||||
## 🐘 Actualizar PostgreSQL
|
||||
|
||||
### Actualización Menor (16.0 → 16.1)
|
||||
|
||||
```bash
|
||||
# Cambiar en compose
|
||||
image: postgres:16.1-alpine
|
||||
|
||||
# Actualizar
|
||||
docker compose pull gitea-db
|
||||
docker compose up -d gitea-db
|
||||
```
|
||||
|
||||
### Actualización Mayor (15 → 16)
|
||||
|
||||
Requiere dump y restore:
|
||||
|
||||
```bash
|
||||
# 1. Backup de BD
|
||||
docker compose exec gitea-db pg_dump -U gitea gitea > gitea-backup.sql
|
||||
|
||||
# 2. Detener servicios
|
||||
docker compose down
|
||||
|
||||
# 3. Eliminar volumen de BD
|
||||
docker volume rm gitea_db
|
||||
|
||||
# 4. Actualizar versión en compose
|
||||
# image: postgres:16-alpine
|
||||
|
||||
# 5. Crear nuevo volumen y restaurar
|
||||
docker volume create gitea_db
|
||||
docker compose up -d gitea-db
|
||||
sleep 10
|
||||
docker compose exec -T gitea-db psql -U gitea gitea < gitea-backup.sql
|
||||
|
||||
# 6. Iniciar Gitea
|
||||
docker compose up -d gitea
|
||||
```
|
||||
|
||||
## 🧪 Probar Actualización
|
||||
|
||||
Antes de actualizar producción, prueba en entorno de desarrollo:
|
||||
|
||||
```bash
|
||||
# Clonar setup
|
||||
cp -r /path/to/gitea /tmp/gitea-test
|
||||
cd /tmp/gitea-test
|
||||
|
||||
# Restaurar backup
|
||||
# (seguir pasos de Backup y Restauración)
|
||||
|
||||
# Actualizar versión de prueba
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
|
||||
# Verificar funcionamiento
|
||||
# Acceder a http://localhost:3000
|
||||
```
|
||||
|
||||
## 🔙 Rollback (Volver Atrás)
|
||||
|
||||
Si algo sale mal:
|
||||
|
||||
### Método 1: Restaurar desde Backup
|
||||
|
||||
```bash
|
||||
# Detener servicios
|
||||
docker compose down
|
||||
|
||||
# Restaurar volúmenes
|
||||
# (seguir pasos de Backup y Restauración)
|
||||
|
||||
# Iniciar con versión anterior
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Método 2: Usar Versión Anterior de Imagen
|
||||
|
||||
```bash
|
||||
# Ver imágenes disponibles
|
||||
docker images | grep gitea
|
||||
|
||||
# Editar compose para usar imagen anterior
|
||||
image: gitea/gitea:1.20.0 # Versión previa
|
||||
|
||||
# Aplicar
|
||||
docker compose up -d --force-recreate gitea
|
||||
```
|
||||
|
||||
## 📅 Estrategia de Actualizaciones
|
||||
|
||||
### Opción 1: Siempre Latest (Automático)
|
||||
|
||||
**Pros**:
|
||||
- ✅ Siempre al día
|
||||
- ✅ Parches de seguridad inmediatos
|
||||
|
||||
**Contras**:
|
||||
- ❌ Puede romper sin aviso
|
||||
- ❌ Requiere supervisión
|
||||
|
||||
### Opción 2: Versiones Específicas (Manual)
|
||||
|
||||
**Pros**:
|
||||
- ✅ Control total
|
||||
- ✅ Actualizaciones planificadas
|
||||
|
||||
**Contras**:
|
||||
- ❌ Requiere monitoreo manual
|
||||
- ❌ Puede quedar desactualizado
|
||||
|
||||
### Recomendación
|
||||
|
||||
Para producción:
|
||||
- Usa **versiones específicas** (ej: `1.21.0`)
|
||||
- Monitorea [Gitea Releases](https://github.com/go-gitea/gitea/releases)
|
||||
- Actualiza mensualmente o cuando hay parches de seguridad
|
||||
- Siempre prueba en entorno de desarrollo primero
|
||||
|
||||
## 🔔 Notificaciones de Nuevas Versiones
|
||||
|
||||
### GitHub Watch
|
||||
|
||||
1. Ve a https://github.com/go-gitea/gitea
|
||||
2. Haz clic en **Watch** → **Custom** → ✅ **Releases**
|
||||
3. Recibirás emails de nuevas versiones
|
||||
|
||||
### RSS Feed
|
||||
|
||||
Suscríbete al feed:
|
||||
```
|
||||
https://github.com/go-gitea/gitea/releases.atom
|
||||
```
|
||||
|
||||
## 🛡️ Actualizaciones de Seguridad
|
||||
|
||||
Para parches críticos de seguridad:
|
||||
|
||||
1. **Lee el Security Advisory**
|
||||
2. **Haz backup inmediato**
|
||||
3. **Actualiza lo antes posible**
|
||||
4. **Verifica que funciona**
|
||||
5. **Monitorea logs por 24-48 horas**
|
||||
|
||||
## 📊 Después de Actualizar
|
||||
|
||||
```bash
|
||||
# 1. Verificar versión
|
||||
docker compose exec gitea gitea --version
|
||||
|
||||
# 2. Ver logs
|
||||
docker compose logs --tail=100 gitea
|
||||
|
||||
# 3. Probar funciones clave
|
||||
# - Login
|
||||
# - Clonar repositorio
|
||||
# - Push nuevo commit
|
||||
# - Crear issue
|
||||
# - Revisar panel de administración
|
||||
|
||||
# 4. Monitorear recursos
|
||||
docker stats gitea gitea-db
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Siguiente**: [Solución de Problemas](Solución-de-Problemas)
|
||||
281
Backup-y-Restauración.md
Normal file
281
Backup-y-Restauración.md
Normal file
@@ -0,0 +1,281 @@
|
||||
# Backup y Restauración
|
||||
|
||||
Protege tus repositorios Git, base de datos y configuración con backups regulares.
|
||||
|
||||
## ⚠️ Importancia de los Backups
|
||||
|
||||
Un servidor Git sin backups es un **riesgo crítico**:
|
||||
|
||||
- 💔 Pérdida de código fuente
|
||||
- 💔 Pérdida de historial de commits
|
||||
- 💔 Pérdida de issues y pull requests
|
||||
- 💔 Pérdida de configuración y usuarios
|
||||
|
||||
## 📦 ¿Qué respaldar?
|
||||
|
||||
Gitea almacena datos en dos lugares principales:
|
||||
|
||||
1. **Volumen `gitea_data`**: Repositorios, configuración, avatares, LFS
|
||||
2. **Volumen `gitea_db`**: Base de datos PostgreSQL con metadatos
|
||||
|
||||
## 🔄 Backup Manual
|
||||
|
||||
### Método Completo (Recomendado)
|
||||
|
||||
```bash
|
||||
# 1. Detener Gitea (mantener DB corriendo)
|
||||
docker compose stop gitea
|
||||
|
||||
# 2. Backup de datos de Gitea
|
||||
docker run --rm \
|
||||
-v gitea_data:/data \
|
||||
-v $(pwd):/backup \
|
||||
alpine tar czf /backup/gitea-data-$(date +%Y%m%d-%H%M%S).tar.gz -C /data .
|
||||
|
||||
# 3. Backup de PostgreSQL
|
||||
docker compose exec gitea-db pg_dump -U gitea gitea > gitea-db-$(date +%Y%m%d-%H%M%S).sql
|
||||
|
||||
# 4. Reiniciar Gitea
|
||||
docker compose start gitea
|
||||
|
||||
# 5. Verificar backups
|
||||
ls -lh gitea-*.tar.gz
|
||||
ls -lh gitea-*.sql
|
||||
```
|
||||
|
||||
### Método Rápido (Sin Downtime)
|
||||
|
||||
Para Gitea, si aceptas posibles inconsistencias menores:
|
||||
|
||||
```bash
|
||||
# Backup en caliente
|
||||
docker run --rm \
|
||||
-v gitea_data:/data \
|
||||
-v $(pwd):/backup \
|
||||
alpine tar czf /backup/gitea-data-$(date +%Y%m%d-%H%M%S).tar.gz -C /data .
|
||||
|
||||
# DB backup (sin detener)
|
||||
docker compose exec gitea-db pg_dump -U gitea gitea > gitea-db-$(date +%Y%m%d-%H%M%S).sql
|
||||
```
|
||||
|
||||
## 🔙 Restauración
|
||||
|
||||
### Restaurar Completamente
|
||||
|
||||
```bash
|
||||
# 1. Detener todos los servicios
|
||||
docker compose down
|
||||
|
||||
# 2. Eliminar volúmenes antiguos (¡CUIDADO!)
|
||||
docker volume rm gitea_data gitea_db
|
||||
|
||||
# 3. Crear nuevos volúmenes
|
||||
docker volume create gitea_data
|
||||
docker volume create gitea_db
|
||||
|
||||
# 4. Restaurar datos de Gitea
|
||||
docker run --rm \
|
||||
-v gitea_data:/data \
|
||||
-v $(pwd):/backup \
|
||||
alpine sh -c "cd /data && tar xzf /backup/gitea-data-20241203-120000.tar.gz"
|
||||
|
||||
# 5. Iniciar solo PostgreSQL
|
||||
docker compose up -d gitea-db
|
||||
|
||||
# 6. Esperar a que PostgreSQL esté listo
|
||||
sleep 10
|
||||
|
||||
# 7. Restaurar base de datos
|
||||
docker compose exec -T gitea-db psql -U gitea gitea < gitea-db-20241203-120000.sql
|
||||
|
||||
# 8. Iniciar todo
|
||||
docker compose up -d
|
||||
|
||||
# 9. Verificar
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
### Restaurar Solo Repositorios
|
||||
|
||||
Si solo necesitas restaurar repositorios específicos:
|
||||
|
||||
```bash
|
||||
# Extraer backup a directorio temporal
|
||||
mkdir temp-restore
|
||||
tar xzf gitea-data-20241203.tar.gz -C temp-restore
|
||||
|
||||
# Copiar repositorios específicos
|
||||
docker cp temp-restore/git/repositories/usuario/repo.git gitea:/data/git/repositories/usuario/
|
||||
|
||||
# Reiniciar Gitea
|
||||
docker compose restart gitea
|
||||
```
|
||||
|
||||
## 🤖 Backup Automático
|
||||
|
||||
### Opción 1: Cron Job
|
||||
|
||||
Crea un script `/root/backup-gitea.sh`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
BACKUP_DIR="/backups/gitea"
|
||||
DATE=$(date +%Y%m%d-%H%M%S)
|
||||
|
||||
mkdir -p $BACKUP_DIR
|
||||
|
||||
cd /path/to/gitea
|
||||
|
||||
# Backup Gitea data
|
||||
docker run --rm \
|
||||
-v gitea_data:/data \
|
||||
-v $BACKUP_DIR:/backup \
|
||||
alpine tar czf /backup/gitea-data-$DATE.tar.gz -C /data .
|
||||
|
||||
# Backup PostgreSQL
|
||||
docker compose exec -T gitea-db pg_dump -U gitea gitea > $BACKUP_DIR/gitea-db-$DATE.sql
|
||||
|
||||
# Comprimir SQL
|
||||
gzip $BACKUP_DIR/gitea-db-$DATE.sql
|
||||
|
||||
# Eliminar backups antiguos (más de 30 días)
|
||||
find $BACKUP_DIR -name "gitea-*" -mtime +30 -delete
|
||||
|
||||
echo "Backup completado: $DATE"
|
||||
```
|
||||
|
||||
Hazlo ejecutable y añade a cron:
|
||||
|
||||
```bash
|
||||
chmod +x /root/backup-gitea.sh
|
||||
|
||||
# Editar crontab
|
||||
crontab -e
|
||||
|
||||
# Añadir línea (backup diario a las 2 AM)
|
||||
0 2 * * * /root/backup-gitea.sh >> /var/log/gitea-backup.log 2>&1
|
||||
```
|
||||
|
||||
### Opción 2: docker-volume-backup
|
||||
|
||||
Usa [offen/docker-volume-backup](https://github.com/offen/docker-volume-backup):
|
||||
|
||||
```yaml
|
||||
services:
|
||||
backup:
|
||||
image: offen/docker-volume-backup:latest
|
||||
environment:
|
||||
BACKUP_CRON_EXPRESSION: "0 2 * * *" # 2 AM diario
|
||||
BACKUP_FILENAME: "gitea-backup-%Y%m%d-%H%M%S.tar.gz"
|
||||
BACKUP_RETENTION_DAYS: "30"
|
||||
volumes:
|
||||
- gitea_data:/backup/gitea_data:ro
|
||||
- /backups:/archive
|
||||
```
|
||||
|
||||
### Opción 3: Duplicati
|
||||
|
||||
Configura Duplicati para respaldar:
|
||||
- `/var/lib/docker/volumes/gitea_data/_data`
|
||||
- Los archivos SQL generados por cron
|
||||
|
||||
## 📤 Backup Remoto
|
||||
|
||||
### rsync a Servidor Remoto
|
||||
|
||||
```bash
|
||||
# En el script de backup, añade:
|
||||
rsync -avz --delete /backups/gitea/ usuario@servidor-remoto:/backups/gitea/
|
||||
```
|
||||
|
||||
### Subir a Cloud Storage
|
||||
|
||||
**AWS S3**:
|
||||
```bash
|
||||
aws s3 sync /backups/gitea/ s3://mi-bucket/gitea-backups/
|
||||
```
|
||||
|
||||
**Google Drive** (con rclone):
|
||||
```bash
|
||||
rclone sync /backups/gitea/ gdrive:gitea-backups/
|
||||
```
|
||||
|
||||
## 🧪 Probar Restauración
|
||||
|
||||
**CRÍTICO**: Prueba tus backups regularmente:
|
||||
|
||||
```bash
|
||||
# 1. Crear entorno de prueba
|
||||
mkdir /tmp/gitea-test
|
||||
cd /tmp/gitea-test
|
||||
|
||||
# 2. Copiar compose files
|
||||
cp /path/to/gitea/docker-compose.yml .
|
||||
cp /path/to/gitea/.env .
|
||||
|
||||
# 3. Restaurar y verificar
|
||||
# (Usa los pasos de restauración anteriores)
|
||||
|
||||
# 4. Verificar que todo funciona
|
||||
docker compose up -d
|
||||
# Accede a http://localhost:3000 y verifica repos
|
||||
```
|
||||
|
||||
## 📋 Checklist de Backup
|
||||
|
||||
- ✅ Backup automático configurado
|
||||
- ✅ Backups se ejecutan regularmente
|
||||
- ✅ Backups se copian a ubicación remota
|
||||
- ✅ Rotación de backups antiguos configurada
|
||||
- ✅ Proceso de restauración documentado
|
||||
- ✅ Restauración probada al menos una vez
|
||||
- ✅ Alertas configuradas si falla el backup
|
||||
|
||||
## 🔍 Verificar Integridad
|
||||
|
||||
```bash
|
||||
# Verificar archivos tar.gz
|
||||
tar tzf gitea-data-20241203.tar.gz > /dev/null && echo "OK" || echo "CORRUPTO"
|
||||
|
||||
# Verificar SQL
|
||||
gzip -t gitea-db-20241203.sql.gz && echo "OK" || echo "CORRUPTO"
|
||||
|
||||
# Ver tamaño de backups
|
||||
du -sh gitea-*.tar.gz
|
||||
```
|
||||
|
||||
## 🆘 Recuperación de Desastres
|
||||
|
||||
### Pérdida Completa del Servidor
|
||||
|
||||
1. Instalar Docker y Docker Compose en nuevo servidor
|
||||
2. Clonar repositorio de configuración
|
||||
3. Restaurar `.env` desde backup o recrear
|
||||
4. Seguir pasos de **Restaurar Completamente**
|
||||
5. Configurar DNS apuntando al nuevo servidor
|
||||
6. Verificar SSL y acceso
|
||||
|
||||
### Corrupción de Base de Datos
|
||||
|
||||
Si PostgreSQL falla:
|
||||
|
||||
```bash
|
||||
# Detener todo
|
||||
docker compose down
|
||||
|
||||
# Eliminar solo volumen de DB
|
||||
docker volume rm gitea_db
|
||||
|
||||
# Recrear y restaurar solo DB
|
||||
docker volume create gitea_db
|
||||
docker compose up -d gitea-db
|
||||
sleep 10
|
||||
docker compose exec -T gitea-db psql -U gitea gitea < gitea-db-backup.sql
|
||||
|
||||
# Iniciar Gitea
|
||||
docker compose up -d gitea
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Siguiente**: [Actualización](Actualización)
|
||||
242
Configuración-Inicial.md
Normal file
242
Configuración-Inicial.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# Configuración Inicial
|
||||
|
||||
Después de desplegar Gitea, debes completar el asistente de instalación inicial para configurar la aplicación.
|
||||
|
||||
## 🌐 Acceso al Asistente
|
||||
|
||||
Visita `https://gitea.tudominio.com` en tu navegador. La primera vez verás el **asistente de instalación de Gitea**.
|
||||
|
||||
## 🗄️ 1. Configuración de Base de Datos
|
||||
|
||||
Esta sección ya está pre-configurada gracias a las variables de entorno del compose:
|
||||
|
||||
**Configuración (pre-rellenada automáticamente)**:
|
||||
- **Tipo de base de datos**: PostgreSQL
|
||||
- **Host**: `gitea-db:5432`
|
||||
- **Nombre de usuario**: `gitea` (o el valor de `DB_USER`)
|
||||
- **Contraseña**: La que configuraste en `DB_PASSWORD`
|
||||
- **Nombre de base de datos**: `gitea` (o el valor de `DB_NAME`)
|
||||
|
||||
> ⚠️ **Importante**: Verifica que estos valores coinciden con tu archivo `.env`.
|
||||
|
||||
## ⚙️ 2. Configuración General del Sitio
|
||||
|
||||
Configura los parámetros generales de tu instalación Gitea:
|
||||
|
||||
### Título del Sitio
|
||||
|
||||
**Campo**: `Site Title`
|
||||
**Valor recomendado**: `Git ICT Iberia` o el nombre de tu organización
|
||||
|
||||
Aparecerá en la interfaz web, emails y notificaciones.
|
||||
|
||||
### URL Base del Servidor
|
||||
|
||||
**Campo**: `Server Domain` y `Gitea Base URL`
|
||||
**Valores críticos**:
|
||||
- **Server Domain**: `gitea.tudominio.com`
|
||||
- **Gitea Base URL**: `https://gitea.tudominio.com`
|
||||
|
||||
⚠️ **MUY IMPORTANTE**:
|
||||
- Debe incluir `https://`
|
||||
- Si usas un puerto diferente a 443, inclúyelo: `https://gitea.tudominio.com:8443`
|
||||
- Esta URL se usa para clonado de repos y webhooks
|
||||
|
||||
### Rutas de Archivos
|
||||
|
||||
**Valores por defecto (recomendados)**:
|
||||
- **Ruta de repositorios Git**: `/data/git/repositories`
|
||||
- **Ruta raíz Git LFS**: `/data/git/lfs`
|
||||
- **Ejecutar como nombre de usuario**: `git`
|
||||
|
||||
> ✅ No cambies estas rutas a menos que sepas lo que haces.
|
||||
|
||||
### SSH
|
||||
|
||||
**Puerto del servidor SSH**: `22`
|
||||
|
||||
Gitea puede servir SSH en el puerto 22 del contenedor. Para usarlo desde fuera:
|
||||
- **Con Traefik/NPM**: Necesitas publicar el puerto SSH separadamente (no cubierto en este stack básico)
|
||||
- **Alternativa**: Usar HTTPS para git (más simple, funciona directamente)
|
||||
|
||||
## 👤 3. Configuración del Administrador
|
||||
|
||||
**Crea tu cuenta de administrador**:
|
||||
|
||||
### Nombre de Usuario
|
||||
|
||||
**Campo**: `Administrator Username`
|
||||
**Valor**: Tu nombre de usuario preferido (ej: `admin`, `groales`)
|
||||
|
||||
Este será el primer usuario y tendrá permisos de administrador completos.
|
||||
|
||||
### Contraseña
|
||||
|
||||
**Campo**: `Password` y `Confirm Password`
|
||||
**Recomendaciones**:
|
||||
- ✅ Mínimo 12 caracteres
|
||||
- ✅ Combina mayúsculas, minúsculas, números y símbolos
|
||||
- ✅ No reutilices contraseñas de otros servicios
|
||||
|
||||
### Email
|
||||
|
||||
**Campo**: `Email Address`
|
||||
**Valor**: Tu email real
|
||||
|
||||
Úsalo para:
|
||||
- Recuperación de contraseña
|
||||
- Notificaciones (si configuras SMTP)
|
||||
- Webhooks y alertas
|
||||
|
||||
## ⚙️ 4. Configuración Opcional
|
||||
|
||||
Antes de hacer clic en "Install", puedes expandir **Optional Settings** para ajustes adicionales.
|
||||
|
||||
### Configuración de Email
|
||||
|
||||
Si tienes un servidor SMTP, configúralo ahora:
|
||||
|
||||
- **Server and Other Services** → **Email Settings**:
|
||||
- SMTP Host: `smtp.tudominio.com`
|
||||
- SMTP Port: `587` (STARTTLS) o `465` (SSL)
|
||||
- Send Email As: `gitea@tudominio.com`
|
||||
- SMTP Username: Tu usuario SMTP
|
||||
- SMTP Password: Tu contraseña SMTP
|
||||
|
||||
> ℹ️ También puedes configurar SMTP más tarde editando `/data/gitea/conf/app.ini`.
|
||||
|
||||
### Configuración del Servidor
|
||||
|
||||
Ajustes opcionales en **Server and Other Services**:
|
||||
|
||||
- **Disable Self-Registration**: ✅ Recomendado si es una instalación privada
|
||||
- **Require Sign-In to View Pages**: ✅ Activar para repositorios completamente privados
|
||||
- **Enable OpenID Sign-In**: ❌ Desactivar si no lo necesitas
|
||||
|
||||
### Notificaciones
|
||||
|
||||
- **Enable Email Notifications**: ✅ Activar si configuraste SMTP
|
||||
- **Disable Gravatar Service**: ❌ Dejar activado (usa avatares de Gravatar)
|
||||
|
||||
## ✅ 5. Completar Instalación
|
||||
|
||||
1. Revisa que todo esté correcto
|
||||
2. Haz clic en **Install Gitea**
|
||||
3. Espera unos segundos mientras se configura
|
||||
|
||||
Si todo va bien, serás redirigido a la pantalla de login.
|
||||
|
||||
## 🔐 6. Primer Inicio de Sesión
|
||||
|
||||
1. Introduce tu nombre de usuario y contraseña del administrador
|
||||
2. Haz clic en **Sign In**
|
||||
|
||||
¡Bienvenido a Gitea! Ya puedes empezar a crear repositorios.
|
||||
|
||||
## 🛠️ Post-Instalación
|
||||
|
||||
### Verificar Configuración
|
||||
|
||||
Accede al panel de administración:
|
||||
|
||||
1. Haz clic en tu avatar (esquina superior derecha)
|
||||
2. Selecciona **Site Administration**
|
||||
3. Revisa las secciones:
|
||||
- **Dashboard**: Estado general del sistema
|
||||
- **Configuration**: Ver configuración completa
|
||||
- **Users**: Gestionar usuarios
|
||||
|
||||
### Crear tu Primer Repositorio
|
||||
|
||||
1. Haz clic en el **+** en la esquina superior derecha
|
||||
2. Selecciona **New Repository**
|
||||
3. Configura:
|
||||
- **Owner**: Tu usuario
|
||||
- **Repository Name**: Nombre del proyecto
|
||||
- **Visibility**: Public/Private
|
||||
- ✅ **Initialize Repository**: Añade README, .gitignore, License
|
||||
4. Haz clic en **Create Repository**
|
||||
|
||||
### Configurar SSH (Opcional)
|
||||
|
||||
Ver la sección SSH en la página [Personalización](Personalización).
|
||||
|
||||
## 📝 Notas Importantes
|
||||
|
||||
### Archivo app.ini
|
||||
|
||||
La configuración de Gitea se guarda en:
|
||||
```
|
||||
/data/gitea/conf/app.ini
|
||||
```
|
||||
|
||||
Para editarlo:
|
||||
```bash
|
||||
docker compose exec gitea vi /data/gitea/conf/app.ini
|
||||
|
||||
# Después de editar, reiniciar Gitea
|
||||
docker compose restart gitea
|
||||
```
|
||||
|
||||
### Cambiar URL Base Después
|
||||
|
||||
Si necesitas cambiar la URL base después de la instalación:
|
||||
|
||||
1. Edita `/data/gitea/conf/app.ini`
|
||||
2. Busca `[server]`
|
||||
3. Modifica:
|
||||
```ini
|
||||
DOMAIN = gitea.tudominio.com
|
||||
ROOT_URL = https://gitea.tudominio.com/
|
||||
```
|
||||
4. Reinicia: `docker compose restart gitea`
|
||||
|
||||
### Primer Usuario = Admin
|
||||
|
||||
El primer usuario que crees automáticamente tiene permisos de administrador. Si deshabilitaste auto-registro, solo tú podrás crear tu cuenta.
|
||||
|
||||
## 🆘 Solución de Problemas
|
||||
|
||||
### "Database connection failed"
|
||||
|
||||
**Causa**: Gitea no puede conectar a PostgreSQL
|
||||
|
||||
**Solución**:
|
||||
```bash
|
||||
# Verificar que gitea-db está corriendo
|
||||
docker compose ps
|
||||
|
||||
# Ver logs de PostgreSQL
|
||||
docker compose logs gitea-db
|
||||
|
||||
# Verificar que están en la red gitea-internal
|
||||
docker network inspect gitea-internal
|
||||
```
|
||||
|
||||
### "Cannot save configuration"
|
||||
|
||||
**Causa**: Permisos incorrectos en el volumen
|
||||
|
||||
**Solución**:
|
||||
```bash
|
||||
# Verificar permisos
|
||||
docker compose exec gitea ls -la /data/gitea
|
||||
|
||||
# Si es necesario, recrear el volumen
|
||||
docker compose down
|
||||
docker volume rm gitea_data
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### No puedo acceder a https://gitea.tudominio.com
|
||||
|
||||
**Causa**: Problema con el proxy inverso
|
||||
|
||||
**Solución**:
|
||||
- **Traefik**: Verifica labels en el contenedor: `docker inspect gitea`
|
||||
- **NPM**: Verifica que el Proxy Host está configurado correctamente
|
||||
- Comprueba que el puerto 3000 está accesible: `docker compose exec gitea netstat -ln | grep 3000`
|
||||
|
||||
---
|
||||
|
||||
**Siguiente paso**: [Personalización](Personalización)
|
||||
100
Home.md
Normal file
100
Home.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Wiki de Gitea
|
||||
|
||||
Bienvenido a la wiki de **Gitea**, un servidor Git autoalojado ligero y rápido.
|
||||
|
||||
## 📋 Índice de Contenidos
|
||||
|
||||
### Despliegue
|
||||
- **[Traefik](Traefik)**: Despliegue con Traefik como reverse proxy (requiere override)
|
||||
- **[Nginx Proxy Manager](NPM)**: Despliegue con Nginx Proxy Manager (usa compose base)
|
||||
|
||||
### Configuración y Mantenimiento
|
||||
- **[Configuración Inicial](Configuración-Inicial)**: Asistente de instalación y primeros pasos
|
||||
- **[Personalización](Personalización)**: SMTP, SSH, webhooks, integración CI/CD
|
||||
- **[Backup y Restauración](Backup-y-Restauración)**: Protege tus repositorios
|
||||
- **[Actualización](Actualización)**: Mantener Gitea actualizado
|
||||
- **[Solución de Problemas](Solución-de-Problemas)**: Resolver errores comunes
|
||||
|
||||
## 🔧 ¿Qué es Gitea?
|
||||
|
||||
Gitea es un servidor Git autoalojado escrito en Go. Es una alternativa ligera a GitLab y GitHub on-premises que ofrece:
|
||||
|
||||
- 🚀 **Ligero y rápido**: Consume menos de 100MB de RAM
|
||||
- 📦 **Fácil de instalar**: Un solo binario, no requiere Node.js ni Ruby
|
||||
- 🔒 **Seguro y confiable**: Gestión completa de permisos y accesos
|
||||
- 📱 **Interfaz moderna**: UI similar a GitHub, intuitiva y responsive
|
||||
- 🔄 **Git completo**: Pull requests, issues, wiki, projects, CI/CD
|
||||
|
||||
## ⚠️ Consideraciones Importantes
|
||||
|
||||
Antes de desplegar Gitea:
|
||||
|
||||
1. **PostgreSQL incluido**: Este stack incluye PostgreSQL 16 Alpine
|
||||
2. **Contraseña segura**: Genera `DB_PASSWORD` fuerte para la base de datos
|
||||
3. **Backups esenciales**: Un servidor Git sin backups es un riesgo crítico
|
||||
4. **HTTPS recomendado**: Para push/pull seguro y autenticación
|
||||
5. **Usuario administrador**: El primer usuario creado es automáticamente admin
|
||||
6. **URL base correcta**: Debe configurarse en el asistente inicial con HTTPS
|
||||
|
||||
## 🔑 Generar DB_PASSWORD
|
||||
|
||||
**Antes de cualquier despliegue**, genera una contraseña segura para PostgreSQL:
|
||||
|
||||
```bash
|
||||
openssl rand -base64 32
|
||||
```
|
||||
|
||||
Guarda el resultado, lo necesitarás como `DB_PASSWORD`.
|
||||
|
||||
> ⚠️ **Importante**: Usa comillas simples en el archivo `.env` si contiene caracteres especiales.
|
||||
> Ejemplo: `DB_PASSWORD='tu_password_generado'`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Inicio Rápido
|
||||
|
||||
### Elección del Modo de Despliegue
|
||||
|
||||
| Modo | Recomendado | Requisitos | Características |
|
||||
|------|-------------|------------|-----------------|
|
||||
| **Traefik** | ✅ Sí | Red `proxy`, Traefik con Let's Encrypt | SSL automático, configuración simple |
|
||||
| **NPM** | ✅ Sí | Red `proxy`, NPM configurado | Configuración manual de proxy host |
|
||||
|
||||
### Variables de Entorno
|
||||
|
||||
**Todas las configuraciones requieren**:
|
||||
|
||||
```env
|
||||
DB_PASSWORD='tu_password_generado' # Contraseña PostgreSQL (entre comillas simples)
|
||||
```
|
||||
|
||||
**Para Traefik necesitas también**:
|
||||
```env
|
||||
DOMAIN_HOST=gitea.tudominio.com # Sin protocolo
|
||||
```
|
||||
|
||||
**Opcionales** (tienen valores por defecto):
|
||||
```env
|
||||
DB_NAME=gitea # Nombre de la base de datos (default: gitea)
|
||||
DB_USER=gitea # Usuario PostgreSQL (default: gitea)
|
||||
```
|
||||
|
||||
## 📚 Recursos Adicionales
|
||||
|
||||
- [README del repositorio](https://git.ictiberia.com/groales/gitea)
|
||||
- [Documentación oficial de Gitea](https://docs.gitea.com/)
|
||||
- [GitHub de Gitea](https://github.com/go-gitea/gitea)
|
||||
- [Gitea Awesome](https://gitea.com/gitea/awesome-gitea)
|
||||
|
||||
## 🆘 Soporte
|
||||
|
||||
Si encuentras problemas:
|
||||
|
||||
1. Consulta la página **[Solución de Problemas](Solución-de-Problemas)**
|
||||
2. Revisa los logs: `docker compose logs gitea` o `docker compose logs gitea-db`
|
||||
3. Verifica la configuración en `/data/gitea/conf/app.ini`
|
||||
4. Consulta la documentación oficial de Gitea
|
||||
|
||||
---
|
||||
|
||||
**Última actualización**: Diciembre 2025
|
||||
195
NPM.md
Normal file
195
NPM.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
docker network ls | grep proxy
|
||||
```
|
||||
|
||||
Si no existe, créala:
|
||||
|
||||
```bash
|
||||
docker network create proxy
|
||||
```
|
||||
|
||||
## 🔑 Generar DB_PASSWORD
|
||||
|
||||
**Antes de cualquier despliegue**, genera una contraseña segura para PostgreSQL:
|
||||
|
||||
```bash
|
||||
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 **Stacks** → **Add 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:
|
||||
|
||||
```env
|
||||
DB_PASSWORD='tu_password_generado'
|
||||
```
|
||||
|
||||
⚠️ **Nota**: Otras opciones se configuran desde el panel de administración de Gitea después del despliegue.
|
||||
|
||||
6. 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](https://git.ictiberia.com/groales/gitea#despliegue-con-nginx-proxy-manager)
|
||||
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
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Edita el archivo `.env` y configura:
|
||||
|
||||
```env
|
||||
DB_PASSWORD='tu_password_generado'
|
||||
```
|
||||
|
||||
### 3. Iniciar el servicio
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 4. Verificar el despliegue
|
||||
|
||||
```bash
|
||||
# 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 Hosts** → **Add 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
|
||||
|
||||
```bash
|
||||
# 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](Actualización) para instrucciones detalladas.
|
||||
|
||||
---
|
||||
|
||||
**Siguiente paso**: [Configuración Inicial](Configuración-Inicial)
|
||||
211
Personalización.md
Normal file
211
Personalización.md
Normal file
@@ -0,0 +1,211 @@
|
||||
# Personalización
|
||||
|
||||
Configuraciones avanzadas y personalización de tu instancia de Gitea.
|
||||
|
||||
## 📧 Configuración de Email (SMTP)
|
||||
|
||||
Para notificaciones, recuperación de contraseñas y webhooks.
|
||||
|
||||
### Editar app.ini
|
||||
|
||||
```bash
|
||||
docker compose exec gitea vi /data/gitea/conf/app.ini
|
||||
```
|
||||
|
||||
Añade o modifica la sección `[mailer]`:
|
||||
|
||||
```ini
|
||||
[mailer]
|
||||
ENABLED = true
|
||||
FROM = gitea@tudominio.com
|
||||
MAILER_TYPE = smtp
|
||||
HOST = smtp.tudominio.com:587
|
||||
IS_TLS_ENABLED = true
|
||||
USER = gitea@tudominio.com
|
||||
PASSWD = tu_password_smtp
|
||||
```
|
||||
|
||||
Para Gmail:
|
||||
```ini
|
||||
HOST = smtp.gmail.com:587
|
||||
USER = tu_email@gmail.com
|
||||
PASSWD = tu_app_password
|
||||
```
|
||||
|
||||
Reinicia Gitea:
|
||||
```bash
|
||||
docker compose restart gitea
|
||||
```
|
||||
|
||||
## 🔑 Configuración de SSH
|
||||
|
||||
### Generar Clave SSH (Cliente)
|
||||
|
||||
```bash
|
||||
ssh-keygen -t ed25519 -C "tu_email@ejemplo.com"
|
||||
cat ~/.ssh/id_ed25519.pub
|
||||
```
|
||||
|
||||
### Añadir Clave en Gitea
|
||||
|
||||
1. Ve a **Settings** → **SSH / GPG Keys**
|
||||
2. Haz clic en **Add Key**
|
||||
3. Pega tu clave pública
|
||||
4. Haz clic en **Add Key**
|
||||
|
||||
### Clonar con SSH
|
||||
|
||||
```bash
|
||||
git clone git@gitea.tudominio.com:usuario/repo.git
|
||||
```
|
||||
|
||||
> ⚠️ **Nota**: Este stack básico no expone el puerto SSH (22). Para usar SSH, necesitas publicar el puerto 22 del contenedor.
|
||||
|
||||
## 🔗 Webhooks
|
||||
|
||||
Configura notificaciones cuando ocurren eventos en tus repositorios.
|
||||
|
||||
### Crear Webhook
|
||||
|
||||
1. Ve al repositorio → **Settings** → **Webhooks**
|
||||
2. Haz clic en **Add Webhook** → Selecciona tipo (Gitea, Discord, Slack, etc.)
|
||||
3. Configura:
|
||||
- **Target URL**: URL de tu servicio
|
||||
- **HTTP Method**: POST (generalmente)
|
||||
- **Content Type**: application/json
|
||||
- **Secret**: Token de seguridad (opcional pero recomendado)
|
||||
4. Selecciona eventos que disparan el webhook
|
||||
5. Haz clic en **Add Webhook**
|
||||
|
||||
## 👥 Gestión de Usuarios
|
||||
|
||||
### Desde Panel de Administración
|
||||
|
||||
**Site Administration** → **User Accounts**:
|
||||
|
||||
- **Create User Account**: Crear usuarios manualmente
|
||||
- **Edit**: Modificar usuarios existentes
|
||||
- **Delete**: Eliminar usuarios
|
||||
|
||||
### Deshabilitar Auto-Registro
|
||||
|
||||
Edita `app.ini`:
|
||||
|
||||
```ini
|
||||
[service]
|
||||
DISABLE_REGISTRATION = true
|
||||
REQUIRE_SIGNIN_VIEW = true # Requiere login para ver contenido
|
||||
```
|
||||
|
||||
### Cambiar a Usuario Admin
|
||||
|
||||
```bash
|
||||
docker compose exec gitea gitea admin user change-password --username usuario --password nueva_password
|
||||
```
|
||||
|
||||
## 🎨 Personalización Visual
|
||||
|
||||
### Logo y Favicon
|
||||
|
||||
1. Coloca tus archivos en el volumen `gitea_data`
|
||||
2. Edita `app.ini`:
|
||||
|
||||
```ini
|
||||
[ui]
|
||||
DEFAULT_THEME = gitea
|
||||
THEMES = gitea,arc-green
|
||||
```
|
||||
|
||||
### Mensaje de Bienvenida
|
||||
|
||||
Crea un archivo Markdown en:
|
||||
```
|
||||
/data/gitea/custom/templates/home.tmpl
|
||||
```
|
||||
|
||||
## 📊 Integración CI/CD
|
||||
|
||||
Gitea soporta Gitea Actions (compatible con GitHub Actions).
|
||||
|
||||
### Habilitar Gitea Actions
|
||||
|
||||
Edita `app.ini`:
|
||||
|
||||
```ini
|
||||
[actions]
|
||||
ENABLED = true
|
||||
```
|
||||
|
||||
### Añadir Runner
|
||||
|
||||
Necesitas un contenedor adicional `act_runner`. Ver [documentación oficial](https://docs.gitea.com/usage/actions/overview).
|
||||
|
||||
## 🔒 Autenticación Externa
|
||||
|
||||
### LDAP/Active Directory
|
||||
|
||||
**Site Administration** → **Authentication Sources** → **Add Authentication Source**
|
||||
|
||||
Selecciona **LDAP (via BindDN)** y configura:
|
||||
- Host
|
||||
- Port
|
||||
- Bind DN
|
||||
- User Search Base
|
||||
- User Filter
|
||||
|
||||
### OAuth2 (Google, GitHub, etc.)
|
||||
|
||||
**Site Administration** → **Authentication Sources** → **OAuth2**
|
||||
|
||||
Configura el provider y las credenciales OAuth2.
|
||||
|
||||
## 📝 Configuración de Repositorios
|
||||
|
||||
### Límites de Tamaño
|
||||
|
||||
Edita `app.ini`:
|
||||
|
||||
```ini
|
||||
[repository]
|
||||
ROOT = /data/git/repositories
|
||||
DEFAULT_BRANCH = main
|
||||
|
||||
[repository.upload]
|
||||
FILE_MAX_SIZE = 50
|
||||
```
|
||||
|
||||
### Git LFS
|
||||
|
||||
```ini
|
||||
[lfs]
|
||||
STORAGE_TYPE = local
|
||||
PATH = /data/git/lfs
|
||||
```
|
||||
|
||||
## 🛡️ Seguridad
|
||||
|
||||
### 2FA (Two-Factor Authentication)
|
||||
|
||||
1. Usuario → **Settings** → **Security**
|
||||
2. **Two-Factor Authentication**
|
||||
3. Escanea QR con app (Google Authenticator, Authy)
|
||||
4. Introduce código de verificación
|
||||
|
||||
### Tokens de Acceso
|
||||
|
||||
**Settings** → **Applications** → **Generate New Token**
|
||||
|
||||
Úsalos para:
|
||||
- API de Gitea
|
||||
- CI/CD pipelines
|
||||
- Automatización
|
||||
|
||||
## 🌐 Internacionalización
|
||||
|
||||
Gitea soporta múltiples idiomas. Cambia en:
|
||||
|
||||
**Settings** → **Account** → **Language**
|
||||
|
||||
---
|
||||
|
||||
Ver [Backup y Restauración](Backup-y-Restauración) para proteger tu configuración.
|
||||
438
Solución-de-Problemas.md
Normal file
438
Solución-de-Problemas.md
Normal file
@@ -0,0 +1,438 @@
|
||||
# Solución de Problemas
|
||||
|
||||
Guía para resolver los problemas más comunes con Gitea.
|
||||
|
||||
## 🔍 Herramientas de Diagnóstico
|
||||
|
||||
### Ver Logs
|
||||
|
||||
```bash
|
||||
# Logs de Gitea en tiempo real
|
||||
docker compose logs -f gitea
|
||||
|
||||
# Logs de PostgreSQL
|
||||
docker compose logs -f gitea-db
|
||||
|
||||
# Últimas 100 líneas
|
||||
docker compose logs --tail=100 gitea
|
||||
|
||||
# Logs dentro del contenedor
|
||||
docker compose exec gitea cat /data/gitea/log/gitea.log
|
||||
```
|
||||
|
||||
### Verificar Estado
|
||||
|
||||
```bash
|
||||
# Estado de contenedores
|
||||
docker compose ps
|
||||
|
||||
# Recursos usados
|
||||
docker stats gitea gitea-db
|
||||
|
||||
# Conectividad de redes
|
||||
docker network inspect gitea-internal
|
||||
docker network inspect proxy
|
||||
|
||||
# Espacio en disco
|
||||
df -h
|
||||
docker system df -v | grep gitea
|
||||
```
|
||||
|
||||
## 🗄️ Problemas de Base de Datos
|
||||
|
||||
### "Database connection failed" en instalación
|
||||
|
||||
**Síntomas**: Error al conectar con PostgreSQL durante el asistente
|
||||
|
||||
**Causas posibles**:
|
||||
- PostgreSQL aún no está listo
|
||||
- Contraseña incorrecta
|
||||
- Configuración de red incorrecta
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar que gitea-db está corriendo
|
||||
docker compose ps gitea-db
|
||||
|
||||
# 2. Ver logs de PostgreSQL
|
||||
docker compose logs gitea-db | tail -20
|
||||
|
||||
# 3. Verificar que están en la misma red
|
||||
docker network inspect gitea-internal | grep -A 10 Containers
|
||||
|
||||
# 4. Probar conexión manualmente
|
||||
docker compose exec gitea nc -zv gitea-db 5432
|
||||
|
||||
# 5. Verificar contraseña
|
||||
docker compose exec gitea env | grep GITEA__database__PASSWD
|
||||
|
||||
# 6. Reiniciar PostgreSQL
|
||||
docker compose restart gitea-db
|
||||
sleep 10
|
||||
|
||||
# 7. Reintentar instalación
|
||||
```
|
||||
|
||||
### PostgreSQL no inicia
|
||||
|
||||
**Síntomas**: `gitea-db` en estado `Exited` o `Restarting`
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# Ver error específico
|
||||
docker compose logs gitea-db | grep -i error
|
||||
|
||||
# Verificar permisos
|
||||
docker compose exec gitea-db ls -la /var/lib/postgresql/data
|
||||
|
||||
# Si está corrupto, restaurar desde backup
|
||||
docker compose down
|
||||
docker volume rm gitea_db
|
||||
docker volume create gitea_db
|
||||
# Restaurar BD desde backup
|
||||
```
|
||||
|
||||
### Error de migración
|
||||
|
||||
**Síntomas**: Gitea no inicia después de actualizar, logs muestran migration error
|
||||
|
||||
**Solución**:
|
||||
|
||||
```bash
|
||||
# 1. Volver a versión anterior
|
||||
docker compose down
|
||||
docker pull gitea/gitea:1.20.0 # Versión previa
|
||||
# Editar compose para usar versión anterior
|
||||
docker compose up -d
|
||||
|
||||
# 2. Restaurar BD desde backup
|
||||
# (Ver página Backup y Restauración)
|
||||
|
||||
# 3. Intentar actualización nuevamente
|
||||
```
|
||||
|
||||
## 🌐 Problemas de Conectividad
|
||||
|
||||
### No puedo acceder a https://gitea.tudominio.com
|
||||
|
||||
**Síntomas**: Timeout o conexión rechazada
|
||||
|
||||
**Soluciones para Traefik**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar que Traefik está corriendo
|
||||
docker ps | grep traefik
|
||||
|
||||
# 2. Verificar labels de Gitea
|
||||
docker inspect gitea | grep -A 20 Labels
|
||||
|
||||
# 3. Ver logs de Traefik
|
||||
docker logs traefik | grep gitea
|
||||
|
||||
# 4. Verificar que está en red proxy
|
||||
docker network inspect proxy | grep gitea
|
||||
|
||||
# 5. Probar acceso directo al puerto 3000
|
||||
curl http://localhost:3000
|
||||
```
|
||||
|
||||
**Soluciones para NPM**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar Proxy Host en NPM
|
||||
# Accede a NPM y revisa la configuración
|
||||
|
||||
# 2. Probar acceso directo
|
||||
docker compose exec gitea curl localhost:3000
|
||||
|
||||
# 3. Verificar DNS
|
||||
nslookup gitea.tudominio.com
|
||||
|
||||
# 4. Verificar que Gitea y NPM están en red proxy
|
||||
docker network inspect proxy | grep -E "(gitea|npm)"
|
||||
```
|
||||
|
||||
### SSL/TLS errors
|
||||
|
||||
**Síntomas**: Certificado inválido o ERR_CERT_AUTHORITY_INVALID
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# Verificar certificado
|
||||
echo | openssl s_client -connect gitea.tudominio.com:443 | grep -A 5 "Certificate chain"
|
||||
|
||||
# Para Traefik: verificar resolver
|
||||
docker exec traefik cat /etc/traefik/traefik.yml | grep -A 10 certificatesResolvers
|
||||
|
||||
# Para NPM: regenerar certificado
|
||||
# En NPM: Edit Proxy Host → SSL → Force SSL → Request New Certificate
|
||||
```
|
||||
|
||||
## 📥 Problemas con Git Operations
|
||||
|
||||
### No puedo hacer push/pull
|
||||
|
||||
**Síntomas**: `fatal: unable to access` o autenticación fallida
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar URL del remoto
|
||||
git remote -v
|
||||
|
||||
# 2. Probar con verbose
|
||||
GIT_CURL_VERBOSE=1 git push origin main
|
||||
|
||||
# 3. Verificar credenciales
|
||||
git config credential.helper
|
||||
|
||||
# 4. Limpiar cache de credenciales
|
||||
git credential-cache exit
|
||||
|
||||
# 5. Verificar URL base en Gitea
|
||||
docker compose exec gitea cat /data/gitea/conf/app.ini | grep ROOT_URL
|
||||
```
|
||||
|
||||
### Push rechazado por tamaño
|
||||
|
||||
**Síntomas**: `error: RPC failed; HTTP 413`
|
||||
|
||||
**Solución**:
|
||||
|
||||
Edita `app.ini`:
|
||||
|
||||
```ini
|
||||
[repository.upload]
|
||||
FILE_MAX_SIZE = 100 # En MB
|
||||
```
|
||||
|
||||
Reinicia:
|
||||
```bash
|
||||
docker compose restart gitea
|
||||
```
|
||||
|
||||
## 🔑 Problemas de Autenticación
|
||||
|
||||
### Olvidé contraseña de administrador
|
||||
|
||||
**Solución**:
|
||||
|
||||
```bash
|
||||
# Cambiar contraseña desde línea de comandos
|
||||
docker compose exec gitea gitea admin user change-password \
|
||||
--username admin \
|
||||
--password nueva_password_segura
|
||||
```
|
||||
|
||||
### No puedo iniciar sesión
|
||||
|
||||
**Síntomas**: Credenciales correctas pero login falla
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar que el usuario existe
|
||||
docker compose exec gitea gitea admin user list
|
||||
|
||||
# 2. Ver logs durante el intento de login
|
||||
docker compose logs -f gitea
|
||||
|
||||
# 3. Verificar sesiones
|
||||
docker compose exec gitea-db psql -U gitea -c "SELECT * FROM session LIMIT 5;"
|
||||
|
||||
# 4. Limpiar sesiones antiguas
|
||||
docker compose exec gitea-db psql -U gitea -c "DELETE FROM session WHERE expiry < NOW();"
|
||||
```
|
||||
|
||||
## 📧 Problemas de Email
|
||||
|
||||
### Emails no se envían
|
||||
|
||||
**Síntomas**: No llegan notificaciones
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar configuración SMTP en app.ini
|
||||
docker compose exec gitea cat /data/gitea/conf/app.ini | grep -A 10 "\[mailer\]"
|
||||
|
||||
# 2. Probar envío desde Gitea
|
||||
# Site Administration → Configuration → Send Testing Email
|
||||
|
||||
# 3. Ver logs de error
|
||||
docker compose logs gitea | grep -i mail
|
||||
|
||||
# 4. Verificar conectividad SMTP
|
||||
docker compose exec gitea nc -zv smtp.tudominio.com 587
|
||||
```
|
||||
|
||||
## 💾 Problemas de Espacio
|
||||
|
||||
### Disco lleno
|
||||
|
||||
**Síntomas**: Gitea lento, errores al hacer push
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Ver espacio usado
|
||||
df -h
|
||||
docker system df -v
|
||||
|
||||
# 2. Limpiar logs antiguos
|
||||
docker compose exec gitea find /data/gitea/log -name "*.log" -mtime +30 -delete
|
||||
|
||||
# 3. Limpiar imágenes Docker sin usar
|
||||
docker image prune -a
|
||||
|
||||
# 4. Limpiar volúmenes huérfanos
|
||||
docker volume prune
|
||||
|
||||
# 5. Ver tamaño de repositorios
|
||||
docker compose exec gitea du -sh /data/git/repositories/*
|
||||
```
|
||||
|
||||
### Volumen corrupto
|
||||
|
||||
**Síntomas**: Errores de I/O, contenedor no inicia
|
||||
|
||||
**Solución drástica**:
|
||||
|
||||
```bash
|
||||
# 1. HACER BACKUP SI ES POSIBLE
|
||||
docker compose exec gitea tar czf /tmp/backup.tar.gz /data
|
||||
|
||||
# 2. Copiar backup fuera del contenedor
|
||||
docker cp gitea:/tmp/backup.tar.gz ./
|
||||
|
||||
# 3. Recrear volumen
|
||||
docker compose down
|
||||
docker volume rm gitea_data
|
||||
docker volume create gitea_data
|
||||
|
||||
# 4. Restaurar desde backup
|
||||
docker run --rm -v gitea_data:/data -v $(pwd):/backup alpine \
|
||||
sh -c "cd /data && tar xzf /backup/backup.tar.gz --strip-components=1"
|
||||
|
||||
# 5. Reiniciar
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## ⚡ Problemas de Rendimiento
|
||||
|
||||
### Gitea muy lento
|
||||
|
||||
**Síntomas**: Interfaz web tarda mucho, git operations lentas
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Verificar recursos
|
||||
docker stats gitea gitea-db
|
||||
|
||||
# 2. Ver procesos dentro de Gitea
|
||||
docker compose exec gitea top
|
||||
|
||||
# 3. Optimizar PostgreSQL
|
||||
# Editar compose, añadir a gitea-db:
|
||||
command: postgres -c shared_buffers=256MB -c max_connections=200
|
||||
|
||||
# 4. Ver queries lentas en PostgreSQL
|
||||
docker compose exec gitea-db psql -U gitea -c "
|
||||
SELECT query, calls, total_time, mean_time
|
||||
FROM pg_stat_statements
|
||||
ORDER BY mean_time DESC
|
||||
LIMIT 10;"
|
||||
|
||||
# 5. Verificar disco
|
||||
iostat -x 5
|
||||
```
|
||||
|
||||
## 🔄 Problemas de Actualización
|
||||
|
||||
### Contenedor no inicia después de actualizar
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
```bash
|
||||
# 1. Ver logs de error
|
||||
docker compose logs gitea | grep -i error
|
||||
|
||||
# 2. Volver a versión anterior
|
||||
docker compose down
|
||||
# Editar compose: image: gitea/gitea:VERSION_ANTERIOR
|
||||
docker compose up -d
|
||||
|
||||
# 3. Si persiste, restaurar desde backup
|
||||
# (Ver página Backup y Restauración)
|
||||
```
|
||||
|
||||
## 🆘 Comandos de Emergencia
|
||||
|
||||
### Reiniciar Completamente
|
||||
|
||||
```bash
|
||||
# Reinicio completo manteniendo datos
|
||||
docker compose restart
|
||||
|
||||
# Recrear contenedores manteniendo volúmenes
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
|
||||
# Forzar recreación
|
||||
docker compose up -d --force-recreate
|
||||
```
|
||||
|
||||
### Reiniciar TODO (CUIDADO)
|
||||
|
||||
```bash
|
||||
# ⚠️ ESTO ELIMINA TODOS LOS DATOS
|
||||
docker compose down -v
|
||||
docker compose up -d
|
||||
|
||||
# Tendrás que:
|
||||
# 1. Pasar por el asistente de instalación nuevamente
|
||||
# 2. Restaurar desde backup
|
||||
```
|
||||
|
||||
### Acceder al Shell
|
||||
|
||||
```bash
|
||||
# Shell de Gitea
|
||||
docker compose exec gitea bash
|
||||
|
||||
# Shell de PostgreSQL
|
||||
docker compose exec gitea-db bash
|
||||
|
||||
# Ejecutar comando sin shell interactivo
|
||||
docker compose exec gitea ls -la /data/gitea
|
||||
```
|
||||
|
||||
## 📞 Obtener Ayuda
|
||||
|
||||
Si ninguna solución funciona:
|
||||
|
||||
1. **Recopila información**:
|
||||
```bash
|
||||
docker compose logs > logs.txt
|
||||
docker compose ps > ps.txt
|
||||
docker inspect gitea > inspect.txt
|
||||
```
|
||||
|
||||
2. **Consulta recursos**:
|
||||
- [Gitea Documentation](https://docs.gitea.com/)
|
||||
- [Gitea Discourse](https://discourse.gitea.io/)
|
||||
- [GitHub Issues](https://github.com/go-gitea/gitea/issues)
|
||||
|
||||
3. **Abre un issue** con:
|
||||
- Versión de Gitea (`gitea --version`)
|
||||
- Logs relevantes
|
||||
- Pasos para reproducir
|
||||
- Configuración (sin contraseñas)
|
||||
|
||||
---
|
||||
|
||||
**Volver a**: [Home](Home)
|
||||
180
Traefik.md
Normal file
180
Traefik.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
docker network ls | grep proxy
|
||||
```
|
||||
|
||||
Si no existe, créala:
|
||||
|
||||
```bash
|
||||
docker network create proxy
|
||||
```
|
||||
|
||||
## 🔑 Generar DB_PASSWORD
|
||||
|
||||
**Antes de cualquier despliegue**, genera una contraseña segura para PostgreSQL:
|
||||
|
||||
```bash
|
||||
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 **Stacks** → **Add 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:
|
||||
|
||||
```env
|
||||
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
|
||||
|
||||
6. 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](https://git.ictiberia.com/groales/gitea#despliegue-con-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
|
||||
|
||||
```bash
|
||||
git clone https://git.ictiberia.com/groales/gitea.git
|
||||
cd gitea
|
||||
```
|
||||
|
||||
### 2. Copiar el archivo override
|
||||
|
||||
```bash
|
||||
cp docker-compose.override.traefik.yml.example docker-compose.override.yml
|
||||
```
|
||||
|
||||
### 3. Configurar variables de entorno
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Edita el archivo `.env` y configura:
|
||||
|
||||
```env
|
||||
DOMAIN_HOST=gitea.tudominio.com
|
||||
DB_PASSWORD='tu_password_generado'
|
||||
```
|
||||
|
||||
### 4. Iniciar el servicio
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 5. Verificar el despliegue
|
||||
|
||||
```bash
|
||||
# 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](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
|
||||
|
||||
```bash
|
||||
# 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](Actualización) para instrucciones detalladas.
|
||||
|
||||
---
|
||||
|
||||
**Siguiente paso**: [Configuración Inicial](Configuración-Inicial)
|
||||
30
_Sidebar.md
Normal file
30
_Sidebar.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 📚 Wiki de Gitea
|
||||
|
||||
## Inicio
|
||||
- [🏠 Home](Home)
|
||||
|
||||
## 🚀 Despliegue
|
||||
- [Traefik](Traefik)
|
||||
- [Nginx Proxy Manager](NPM)
|
||||
|
||||
## ⚙️ Configuración
|
||||
- [Configuración Inicial](Configuración-Inicial)
|
||||
- [Personalización](Personalización)
|
||||
|
||||
## 🔧 Mantenimiento
|
||||
- [Backup y Restauración](Backup-y-Restauración)
|
||||
- [Actualización](Actualización)
|
||||
- [Solución de Problemas](Solución-de-Problemas)
|
||||
|
||||
---
|
||||
|
||||
## 📖 Enlaces Útiles
|
||||
|
||||
- [📦 Repositorio](https://git.ictiberia.com/groales/gitea)
|
||||
- [📝 README](https://git.ictiberia.com/groales/gitea#readme)
|
||||
- [🌐 Gitea Docs](https://docs.gitea.com/)
|
||||
- [💬 Gitea Discourse](https://discourse.gitea.io/)
|
||||
|
||||
---
|
||||
|
||||
**Última actualización**: Diciembre 2025
|
||||
Reference in New Issue
Block a user