Gitea en un VPS — es una plataforma ligera, de código abierto y autosuficiente para el alojamiento de repositorios Git, que se puede instalar, configurar y mantener de manera eficiente en un servidor privado virtual (VPS) para un control total sobre sus proyectos y datos.
¿Qué es Gitea y por qué elegir Gitea self-hosted en un VPS?
En el mundo del desarrollo de software, los sistemas de control de versiones, como Git, se han convertido en una parte integral del flujo de trabajo. Permiten a los equipos colaborar de manera eficiente, rastrear cambios en el código y gestionar las versiones de los proyectos. Las plataformas más conocidas para el alojamiento de repositorios Git – GitHub, GitLab, Bitbucket – ofrecen potentes soluciones en la nube. Sin embargo, estos servicios no siempre cumplen con todos los requisitos de privacidad, seguridad o flexibilidad de configuración, especialmente para usuarios corporativos o proyectos con condiciones de licencia especiales.
Aquí es donde entra en escena Gitea – un servicio de código abierto, ligero y autosuficiente para el alojamiento de repositorios Git, escrito en Go. Fue desarrollado como un fork de Gogs con el objetivo de proporcionar un desarrollo más activo y una mayor funcionalidad, manteniendo al mismo tiempo requisitos mínimos del sistema. La elección de gitea self-hosted en su propio VPS proporciona a los desarrolladores y equipos un nivel de control sin precedentes sobre sus datos, infraestructura y flujos de trabajo.
Ventajas clave de Gitea
- Ligereza y rendimiento: Gitea está escrito en Go, lo que lo hace muy rápido y eficiente. Consume significativamente menos recursos del sistema en comparación con GitLab, lo que permite ejecutarlo incluso en VPS modestos.
- Facilidad de instalación y configuración: Gracias a sus dependencias mínimas y a un único archivo ejecutable, la instalación de Gitea es sorprendentemente sencilla, especialmente utilizando Docker.
- Control total sobre los datos: Al alojar Gitea en su propio VPS, usted posee completamente todos los datos de los repositorios, los datos de los usuarios y las configuraciones. Esto es crítico para proyectos con altos requisitos de seguridad y privacidad.
- Flexibilidad y personalización: El código fuente abierto permite personalizar Gitea según necesidades específicas, integrarlo con otras herramientas y adaptarlo a flujos de trabajo únicos.
- Funcionalidad: Gitea ofrece todas las funciones principales necesarias para la gestión de proyectos: repositorios, seguimiento de tareas (issues), solicitudes de fusión (pull requests), wiki, migración de repositorios, integración con CI/CD, soporte LDAP/OAuth y mucho más.
- Comunidad: Una comunidad de desarrolladores activa y creciente contribuye al rápido desarrollo y soporte del proyecto.
Comparación con GitHub/GitLab y escenarios de uso
A diferencia de GitHub, que es una solución completamente en la nube, o GitLab, que ofrece versiones tanto en la nube como self-hosted (pero esta última es mucho más exigente en recursos), Gitea es ideal para los siguientes escenarios:
- Equipos pequeños y medianos: Para startups, pequeños departamentos de desarrollo o freelancers que necesitan una herramienta potente pero económica.
- Instituciones educativas: Para estudiantes y profesores que necesitan su propio hosting Git sin restricciones ni altos costos.
- Repositorios corporativos internos: Empresas que necesitan almacenar el código fuente dentro de su propia infraestructura para garantizar la seguridad y el cumplimiento de requisitos regulatorios.
- Desarrollo con recursos limitados: Proyectos que se ejecutan en VPS con poca RAM y CPU, donde GitLab sería demasiado "pesado".
- Experimentos y proyectos personales: Desarrolladores que desean tener su propio servidor Git para proyectos personales, experimentos o aprendizaje.
El alojamiento de Gitea en un servidor, especialmente en un VPS, le otorga control total sobre el entorno, permitiéndole optimizar el rendimiento y la seguridad de acuerdo con sus requisitos únicos. Esto convierte a Gitea en una opción atractiva para quienes valoran la independencia y la eficiencia.
Requisitos del sistema para instalar Gitea en un servidor
Una de las ventajas clave de Gitea es su modesto consumo de recursos, lo que lo convierte en un candidato ideal para el despliegue en servidores virtuales con características limitadas. Sin embargo, para un funcionamiento estable y cómodo, es necesario considerar tanto los requisitos mínimos como los recomendados del sistema, especialmente si se planea un uso activo.
Configuraciones mínimas y recomendadas
Para ejecutar Gitea se requieren relativamente pocos recursos, pero la configuración real dependerá del número de usuarios, repositorios y la intensidad de su uso. Presentamos recomendaciones generales:
Requisitos mínimos (para 1-5 usuarios, hasta 10 repositorios):
- Procesador (CPU): 1 vCPU (núcleo virtual) con una frecuencia de reloj de 1 GHz o más.
- Memoria RAM: 512 MB – 1 GB. Si se utiliza SGBD SQLite, 512 MB pueden ser suficientes. Para PostgreSQL o MySQL/MariaDB, es mejor tener 1 GB.
- Espacio en disco: 5 GB de espacio libre. Esto será suficiente para el sistema operativo, Gitea y algunos repositorios pequeños.
- Tipo de disco: HDD o SSD.
Requisitos recomendados (para 5-20 usuarios, hasta 50 repositorios, desarrollo activo):
- Procesador (CPU): 2 vCPU con una frecuencia de reloj de 2 GHz o más.
- Memoria RAM: 2 GB – 4 GB. Esto garantizará un funcionamiento cómodo de Gitea, la base de datos y otros procesos del sistema.
- Espacio en disco: 20 GB – 50 GB de espacio libre. El espacio adicional es necesario para el crecimiento de repositorios, registros y copias de seguridad.
- Tipo de disco: NVMe SSD. La velocidad del subsistema de disco es críticamente importante para las operaciones de Git, especialmente con repositorios grandes o operaciones frecuentes de clonación/push.
Requisitos avanzados (para más de 20 usuarios, más de 50 repositorios, CI/CD):
- Procesador (CPU): 4 vCPU o más.
- Memoria RAM: 8 GB o más.
- Espacio en disco: 100 GB o más.
- Tipo de disco: NVMe SSD.
Es importante recordar que estas cifras son orientativas. La carga puede variar mucho dependiendo del tamaño de los repositorios, la frecuencia de las operaciones, el uso de Git LFS y la integración con otros servicios.
Elección del SO y del subsistema de disco
- Sistema Operativo (SO): Gitea soporta una amplia gama de sistemas operativos. Para el despliegue en un VPS, las distribuciones de Linux más populares y recomendadas son Ubuntu (versiones LTS), Debian, CentOS/Rocky Linux. Están bien documentadas, tienen una comunidad activa y proporcionan estabilidad. Para la instalación de Gitea a través de Docker, estos SO son los más adecuados.
- Base de datos: Gitea puede utilizar varios tipos de bases de datos:
- SQLite3: Ideal para instalaciones pequeñas y proyectos personales. Fácil de configurar, no requiere un servidor de base de datos separado, pero es menos eficiente bajo alta carga.
- PostgreSQL: Recomendado para instalaciones medianas y grandes. Ofrece alto rendimiento, fiabilidad y amplias capacidades.
- MySQL/MariaDB: También una buena opción para instalaciones medianas y grandes, ampliamente difundido y bien soportado.
- MS SQL Server: Compatible, pero menos utilizado en VPS Linux.
- Subsistema de disco: Este es un componente a menudo subestimado, pero críticamente importante para el rendimiento de un servidor Git.
- HDD: Lentos, no recomendados para desarrollo activo.
- SSD (SATA): Significativamente más rápidos que los HDD, adecuados para equipos pequeños.
- NVMe SSD: La opción más rápida. Si su proveedor de hosting, como Valebyte.com, ofrece VPS con discos NVMe, será la mejor opción para Gitea, garantizando la máxima velocidad de operaciones con repositorios, especialmente al trabajar con archivos grandes o commits frecuentes.
La elección de la configuración correcta del VPS para gitea vps es la clave para su funcionamiento estable y eficiente. No escatime en el subsistema de disco y la memoria RAM si espera un uso activo.
¿Buscas un servidor fiable para tus proyectos?
VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.
Ver ofertas →Preparación del VPS para la instalación de Gitea Docker
Antes de proceder con la instalación de Gitea, es necesario preparar su VPS. Esto incluye la elección de un plan de hosting adecuado, la actualización del sistema operativo y la instalación de Docker y Docker Compose. El uso de Docker simplifica significativamente el despliegue de Gitea, aislando su entorno y simplificando la gestión de dependencias.
Elección del plan de VPS adecuado en Valebyte.com
Para gitea vps, es importante elegir un plan que se adapte a sus necesidades. Valebyte.com ofrece varios planes de VPS que pueden ser óptimos para Gitea.
| Plan Valebyte.com | vCPU | RAM | NVMe SSD | Costo aproximado/mes. | Uso recomendado de Gitea |
|---|---|---|---|---|---|
| VPS Start | 1 | 2 GB | 20 GB | desde $5 | Proyectos personales, equipos pequeños (hasta 5 pers.) |
| VPS Pro | 2 | 4 GB | 50 GB | desde $10 | Equipos medianos (5-20 pers.), desarrollo activo |
| VPS Business | 4 | 8 GB | 100 GB | desde $20 | Equipos grandes (más de 20 pers.), con CI/CD, repositorios grandes |
Para el hosting autosuficiente de Gitea en un VPS, recomendamos elegir planes con NVMe SSD, ya que la velocidad del subsistema de disco influye significativamente en el rendimiento de las operaciones con repositorios Git. También considere la posibilidad de elegir un VPS self-managed si desea tener control total sobre su servidor y su configuración.
Instalación de Docker y Docker Compose
Después de elegir y configurar su VPS (por ejemplo, con Ubuntu 22.04 LTS), el primer paso es actualizar el sistema e instalar las herramientas necesarias.
1. Actualización del sistema:
Conéctese a su VPS por SSH y ejecute los comandos para actualizar los paquetes:
sudo apt update
sudo apt upgrade -y
2. Instalación de Docker Engine:
Instale Docker, siguiendo la documentación oficial. Esto garantiza la obtención de la versión más reciente y estable.
# Eliminamos versiones antiguas de Docker (si las hay)
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
# Añadimos el repositorio de Docker
sudo apt update
sudo apt install ca-certificates curl gnupg -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instalamos Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Añada su usuario al grupo docker para ejecutar comandos Docker sin sudo (después de esto, deberá volver a conectarse por SSH):
sudo usermod -aG docker $USER
newgrp docker
Verifique que Docker esté instalado correctamente:
docker run hello-world
Debería ver un mensaje de bienvenida de Docker.
3. Instalación de Docker Compose (si no está instalado como plugin):
Si instaló Docker Engine con docker-compose-plugin, entonces docker compose ya está disponible. Si no, o si prefiere la versión antigua, instálela manualmente:
# Verificamos la presencia del Plugin de Docker Compose
docker compose version
# Si el plugin no está instalado, instalamos Docker Compose standalone
sudo apt update
sudo apt install docker-compose -y
Asegúrese de que Docker Compose esté instalado:
docker-compose --version
Ahora su VPS está listo para el despliegue de gitea docker.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Instalación paso a paso de Gitea en un VPS con Docker Compose
El uso de Docker Compose es la forma más conveniente y recomendada de instalar Gitea en un VPS. Permite definir todos los servicios (Gitea, base de datos) y sus configuraciones en un solo archivo, simplificando la gestión y la escalabilidad.
Creación del archivo docker-compose.yml
Cree un directorio para Gitea y dentro de él el archivo docker-compose.yml. Por ejemplo:
mkdir -p /opt/gitea
cd /opt/gitea
nano docker-compose.yml
Pegue el siguiente contenido. Este ejemplo utiliza PostgreSQL como base de datos, pero puede reemplazarlo fácilmente por SQLite o MySQL/MariaDB, modificando la sección correspondiente.
version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=your_gitea_db_password # Reemplace con una contraseña fuerte
- GITEA__server__ROOT_URL=https://git.yourdomain.com/ # Reemplace con su dominio
- GITEA__server__SSH_DOMAIN=git.yourdomain.com # Reemplace con su dominio
- GITEA__server__HTTP_PORT=3000
- GITEA__webhook__ALLOWED_HOSTS=localhost,127.0.0.1
volumes:
- ./gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # Puerto para HTTP/HTTPS a través de reverse proxy
- "2222:22" # Puerto para SSH Git (puede ser cambiado)
depends_on:
- db
db:
image: postgres:15
container_name: gitea_db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=your_gitea_db_password # Reemplace con la misma contraseña fuerte
- POSTGRES_DB=gitea
volumes:
- ./postgres_data:/var/lib/postgresql/data
networks:
- default
volumes:
gitea_data:
postgres_data:
networks:
default:
external: false
Puntos importantes para la configuración de docker-compose.yml:
USER_UIDyUSER_GID: Se recomienda establecerlos al UID/GID de su usuario en el sistema host (normalmente 1000), para evitar problemas con los permisos de acceso a los archivos en los volúmenes.GITEA__database__PASSWDyPOSTGRES_PASSWORD: OBLIGATORIO reemplazaryour_gitea_db_passwordcon una contraseña fuerte y única.GITEA__server__ROOT_URLyGITEA__server__SSH_DOMAIN: Reemplacegit.yourdomain.comcon el nombre de dominio o la dirección IP de su VPS, a través del cual Gitea será accesible. Si planea usar Nginx/Caddy como proxy inverso, entonces debe ser un dominio.- Puertos:
3000:3000abre el puerto de Gitea dentro del contenedor al puerto 3000 del host.2222:22abre el puerto SSH de Gitea al puerto 2222 del host. Puede cambiar2222a cualquier otro puerto libre para evitar conflictos con el servidor SSH del sistema en el puerto 22. volumes:./gitea_data:/data: Guarda todos los datos de Gitea (repositorios, configuraciones, avatares) en el directoriogitea_datade su host. Esto es críticamente importante para la persistencia de datos al actualizar el contenedor../postgres_data:/var/lib/postgresql/data: De manera similar, guarda los datos de PostgreSQL.
Inicio y configuración inicial de Gitea
Después de guardar el archivo docker-compose.yml, inicie los contenedores:
docker compose up -d
El comando -d inicia los contenedores en segundo plano. Puede verificar el estado de los contenedores en ejecución:
docker compose ps
Si todo salió bien, debería ver ambos contenedores (gitea y gitea_db) en estado running.
Ahora Gitea debería estar accesible en http://SU_IP_VPS:3000. Abra esta dirección en su navegador.
Interfaz web de configuración inicial:
Al acceder a Gitea por primera vez, verá la página de instalación. La mayoría de los campos ya estarán prellenados en base a sus variables de entorno en docker-compose.yml. Revise y ajuste si es necesario:
- Configuración de la base de datos: Deberían estar llenos a partir de las variables de entorno (PostgreSQL, host
db:5432, usuariogitea, nombre de la BDgitea, contraseña). - Configuración principal de Gitea:
- Ruta a los repositorios:
/data/git/repositories(dentro del contenedor, corresponde a./gitea_data/git/repositoriesen el host). - Ruta raíz de Gitea:
/data. - URL de Gitea:
https://git.yourdomain.com/(ohttp://SU_IP_VPS:3000/, si aún no tiene dominio y HTTPS). - Dominio del servidor SSH:
git.yourdomain.com(o la IP de su VPS). - Puerto del servidor SSH:
2222(o el que haya especificado enports).
- Ruta a los repositorios:
- Configuración del administrador: Cree el primer administrador. Esta será su cuenta principal para la gestión de Gitea. Rellene el nombre de usuario, la contraseña y la dirección de correo electrónico.
Haga clic en "Instalar Gitea". Una vez completada la instalación, será redirigido automáticamente a la página de inicio de sesión. Inicie sesión con las credenciales de administrador.
¡Felicidades! La instalación de Gitea ha finalizado. Ahora tiene un servidor Git en funcionamiento en su VPS. El siguiente paso será configurar un proxy inverso y HTTPS para un acceso seguro.
Configuración de Reverse Proxy y HTTPS para Gitea
El acceso directo a Gitea por el puerto 3000 a través de HTTP no es una solución segura ni profesional. Para garantizar la seguridad, el uso de un nombre de dominio y el cifrado del tráfico, es necesario configurar un proxy inverso (Reverse Proxy) y HTTPS. Como proxy inverso, consideraremos Nginx y Caddy, y para HTTPS utilizaremos Certbot con Let's Encrypt.
Configuración de Nginx como proxy inverso
Nginx es un potente y popular servidor web que funciona excelentemente como proxy inverso. Aceptará solicitudes en los puertos estándar (80 para HTTP, 443 para HTTPS) y las reenviará a Gitea, que se ejecuta en el puerto 3000 dentro del contenedor Docker.
1. Instalación de Nginx:
sudo apt update
sudo apt install nginx -y
2. Configuración de DNS:
Asegúrese de que su dominio (por ejemplo, git.yourdomain.com) apunte a la dirección IP de su VPS mediante un registro A en la configuración de su proveedor de DNS.
3. Creación del archivo de configuración de Nginx para Gitea:
Cree un nuevo archivo de configuración para su dominio:
sudo nano /etc/nginx/sites-available/gitea.conf
Pegue la siguiente configuración (por ahora sin HTTPS):
server {
listen 80;
server_name git.yourdomain.com; # Reemplace con su dominio
client_max_body_size 50m; # Para la carga de archivos grandes
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ /_next/static/ {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 1y;
add_header Cache-Control "public";
}
# Para SSH a través de HTTP/HTTPS (si no utiliza SSH directo en 2222)
location /ssh/ {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 3600s; # Aumente el tiempo de espera para operaciones SSH
proxy_send_timeout 3600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Guarde y cierre el archivo (Ctrl+X, Y, Enter).
4. Activación de la configuración y reinicio de Nginx:
Cree un enlace simbólico al archivo en sites-enabled y verifique la sintaxis de Nginx:
sudo ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/
sudo nginx -t
Si la sintaxis es correcta, recargue Nginx:
sudo systemctl reload nginx
Ahora Gitea debería estar accesible en http://git.yourdomain.com.
Garantizar HTTPS con Certbot (Let's Encrypt)
Para garantizar una conexión segura (HTTPS), utilizaremos certificados SSL/TLS gratuitos de Let's Encrypt a través de la utilidad Certbot.
1. Instalación de Certbot:
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
2. Obtención e instalación del certificado SSL:
Certbot puede configurar automáticamente Nginx para usar HTTPS:
sudo certbot --nginx -d git.yourdomain.com # Reemplace con su dominio
Siga las instrucciones de Certbot: introduzca su correo electrónico, acepte los términos y elija si desea redirigir el tráfico HTTP a HTTPS (se recomienda "2: Redirect").
Certbot actualizará automáticamente su archivo /etc/nginx/sites-available/gitea.conf, añadiendo la sección para HTTPS y la configuración SSL. Después de esto, Nginx se recargará.
Ahora su Gitea está accesible en https://git.yourdomain.com con una conexión segura.
Verificación de la renovación automática del certificado:
sudo certbot renew --dry-run
Si el comando se ejecutó sin errores, la renovación automática funciona.
Configuración de Caddy como alternativa
Caddy es un servidor web moderno con soporte HTTPS automático (a través de Let's Encrypt). Es significativamente más fácil de configurar que Nginx, ya que gestiona los certificados por sí mismo.
1. Instalación de Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
2. Configuración de Caddyfile:
Cree o edite el archivo /etc/caddy/Caddyfile:
sudo nano /etc/caddy/Caddyfile
Elimine el contenido estándar y añada:
git.yourdomain.com { # Reemplace con su dominio
reverse_proxy localhost:3000 {
header_up Host {host}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Forwarded-Proto {scheme}
}
# Para SSH a través de HTTP/HTTPS (si no utiliza SSH directo en 2222)
# Esta es una configuración simplificada, puede requerir ajustes
# @ssh {
# path /ssh/*
# }
# reverse_proxy @ssh localhost:3000 {
# header_up Host {host}
# header_up X-Real-IP {remote_ip}
# header_up X-Forwarded-For {remote_ip}
# header_up X-Forwarded-Proto {scheme}
# websocket
# }
}
Guarde y cierre el archivo.
3. Verificación e inicio de Caddy:
sudo caddy validate
sudo systemctl reload caddy
Caddy obtendrá automáticamente un certificado SSL para su dominio y comenzará a actuar como proxy para el tráfico a Gitea. Esta es una forma muy conveniente de garantizar el acceso seguro a sus servicios en el VPS.
Mantenimiento de Gitea: copias de seguridad, actualizaciones y monitoreo
La instalación de Gitea en un VPS es solo el comienzo. Para garantizar un funcionamiento fiable e ininterrumpido, es necesario realizar un mantenimiento regular que incluya copias de seguridad, actualizaciones y monitoreo. Estos pasos son críticos para proteger sus datos y mantener el sistema actualizado.
Estrategias de copia de seguridad de datos de Gitea
La copia de seguridad es el aspecto más importante del mantenimiento de cualquier servidor. La pérdida de datos de los repositorios Git puede ser catastrófica. Para Gitea, es necesario hacer una copia de seguridad de tres componentes principales:
- Base de datos de Gitea: Contiene información sobre usuarios, repositorios, tareas, comentarios, etc.
- Datos de Gitea: Incluyen repositorios Git, claves SSH, avatares, adjuntos y otros archivos almacenados en el directorio
/data(que se monta como./gitea_dataen el host). - Archivo de configuración de Gitea:
app.ini(ubicado en./gitea_data/gitea/conf/app.ini).
Métodos de copia de seguridad:
- Utilidad integrada de Gitea: Gitea viene con un comando conveniente
gitea dump, que crea un archivo con todos los datos necesarios.# Ejecute dentro del contenedor de Gitea docker exec -it gitea gitea dumpEste comando creará un archivo
gitea-dump-YYYYMMDDHHMMSS.zipen el directorio de trabajo de Gitea (/tmpdentro del contenedor, pero al usar Docker Compose con volúmenes, puede ser accesible a través del volumen montado). Se recomienda mover este archivo al sistema host y luego a un almacenamiento externo seguro.Para la automatización, se puede crear un script en el host:
#!/bin/bash DATE=$(date +%Y%m%d%H%M%S) BACKUP_DIR="/opt/gitea/backups" GITEA_DATA_DIR="/opt/gitea/gitea_data" DB_DATA_DIR="/opt/gitea/postgres_data" # O donde tenga sus datos de BD mkdir -p $BACKUP_DIR echo "Deteniendo Gitea para una copia de seguridad consistente..." docker compose stop gitea echo "Volcando datos de Gitea..." docker exec gitea gitea dump -c /data/gitea/conf/app.ini -f /tmp/gitea-dump-$DATE.zip docker cp gitea:/tmp/gitea-dump-$DATE.zip $BACKUP_DIR/ echo "Volcando la base de datos PostgreSQL..." docker exec gitea_db pg_dumpall -U gitea > $BACKUP_DIR/gitea_db_dump_$DATE.sql echo "Copiando el directorio de datos de Gitea..." # Se pueden copiar simplemente gitea_data y postgres_data, ya que ya están en el host cp -r $GITEA_DATA_DIR $BACKUP_DIR/gitea_data_$DATE cp -r $DB_DATA_DIR $BACKUP_DIR/postgres_data_$DATE echo "Iniciando Gitea..." docker compose start gitea echo "Limpiando copias de seguridad antiguas (por ejemplo, mantener los últimos 7 días)..." find $BACKUP_DIR -type f -name 'gitea-dump-*.zip' -mtime +7 -delete find $BACKUP_DIR -type f -name 'gitea_db_dump_*.sql' -mtime +7 -delete find $BACKUP_DIR -type d -name 'gitea_data_*' -mtime +7 -exec rm -rf {} + find $BACKUP_DIR -type d -name 'postgres_data_*' -mtime +7 -exec rm -rf {} + echo "Copia de seguridad finalizada: $BACKUP_DIR/gitea-dump-$DATE.zip"Este script debería añadirse a cron para su ejecución automática. No olvide cambiar las rutas y contraseñas. También es importante hacer una copia de seguridad de la base de datos por separado, ya que
gitea dumpno siempre incluye un volcado completo de la BD, especialmente para SGBD externos. - Instantáneas del sistema de archivos/volúmenes del VPS: Muchos proveedores de hosting, incluido Valebyte.com, ofrecen la posibilidad de crear instantáneas (snapshots) de todo el VPS o de volúmenes de disco individuales. Esta es una forma rápida de hacer una copia completa del estado del servidor, pero puede ser intensiva en recursos y no siempre adecuada para copias de seguridad frecuentes.
- Rsync: Para un control más granular, se puede usar rsync para sincronizar las carpetas
gitea_dataypostgres_datacon un servidor remoto o almacenamiento externo.
Importante: Siempre guarde las copias de seguridad fuera de su VPS (por ejemplo, en S3, Google Drive, otro servidor) para evitar la pérdida de datos en caso de fallo del servidor principal.
Proceso de actualización de Gitea y contenedores Docker
Las actualizaciones regulares de Gitea y las imágenes de Docker son importantes para obtener nuevas funciones, correcciones de errores y solución de vulnerabilidades de seguridad.
Actualización de Gitea:
Dado que Gitea se ejecuta en Docker, la actualización es muy sencilla:
- Cree una copia de seguridad: Siempre haga una copia de seguridad completa antes de actualizar.
- Detenga el contenedor de Gitea:
docker compose stop gitea - Descargue la nueva imagen de Gitea:
docker compose pull giteaEsto descargará la versión más reciente de la imagen
gitea/gitea:latest. - Inicie el contenedor de Gitea:
docker compose up -d giteaDocker Compose creará automáticamente un nuevo contenedor con la nueva imagen, utilizando los volúmenes de datos existentes.
- Verifique la versión: Acceda a la interfaz web de Gitea y verifique la versión en la parte inferior de la página.
Actualización de la imagen Docker de PostgreSQL (u otro SGBD):
La actualización de la base de datos requiere mayor precaución, ya que puede haber cambios en el esquema de datos. Siempre lea la documentación de Gitea y de la base de datos antes de actualizar.
- Copia de seguridad: Asegúrese de hacer una copia de seguridad completa de Gitea y de la base de datos.
- Detenga todos los contenedores:
docker compose down - Modifique
docker-compose.yml: Actualice la etiqueta de la imagen de PostgreSQL (por ejemplo, depostgres:15apostgres:16). - Descargue la nueva imagen:
docker compose pull db - Inicie los contenedores:
docker compose up -d - Verifique: Asegúrese de que Gitea y la base de datos funcionan correctamente.
Importante: Al actualizar versiones mayores de la base de datos (por ejemplo, PostgreSQL 15 a 16), a menudo se requiere una migración de datos, no simplemente iniciar un nuevo contenedor con los volúmenes existentes. En tales casos, se recomienda utilizar los métodos de migración oficiales o crear un nuevo contenedor de BD e importar en él un volcado de la base de datos antigua.
Monitoreo de rendimiento y registro
Para el funcionamiento estable de gitea en un servidor, es necesario el monitoreo.
- Monitoreo de recursos del VPS: Utilice las utilidades
htop,glancesotoppara observar el uso de CPU, RAM y disco en su VPS. Si los recursos están constantemente cerca del 100%, es posible que necesite un aumento del plan. - Registros de Gitea: Los registros de Gitea se muestran por defecto en la salida estándar del contenedor. Puede verlos con el comando:
docker compose logs giteaPara una visualización y filtrado más cómodos, puede usar la opción
-f(follow) o redirigir los registros a un archivo. - Registros de Nginx/Caddy: Revise los registros de su proxy inverso (normalmente en
/var/log/nginx/access.logyerror.logpara Nginx, o/var/log/caddy/access.logyerror.logpara Caddy) para identificar problemas de acceso o errores. - Monitoreo de Docker: El comando
docker statsmuestra el consumo actual de recursos de todos los contenedores en ejecución.
El monitoreo regular ayudará a identificar problemas potenciales antes de que se vuelvan críticos.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
¿Qué configuración de VPS elegir para Gitea VPS bajo carga real?
La elección de la configuración correcta del VPS para gitea vps bajo carga real es un equilibrio entre rendimiento, costo y escalabilidad. Subestimar las necesidades puede llevar a un funcionamiento lento y a la insatisfacción del equipo, mientras que sobreestimarlas puede resultar en gastos innecesarios. Los factores clave que influyen en la elección incluyen el número de usuarios, el volumen de repositorios, la frecuencia de las operaciones Git y el uso de funciones adicionales (por ejemplo, CI/CD).
Evaluación de las necesidades del equipo y los proyectos
Antes de elegir un plan, responda a las siguientes preguntas:
- Número de usuarios activos: ¿Cuántos desarrolladores utilizarán Gitea simultáneamente?
- Número y tamaño de los repositorios: ¿Cuántos repositorios planea alojar? ¿Habrá repositorios muy grandes (por ejemplo, con gráficos, videos o archivos binarios que requieran Git LFS)?
- Frecuencia de operaciones Git: ¿Con qué frecuencia se realizarán push, pull, clonaciones?
- Uso de CI/CD: ¿Planea integrar Gitea con sistemas de integración/entrega continua (por ejemplo, Jenkins, Drone CI) que se ejecutarán en el mismo VPS o en servidores separados?
- Crecimiento esperado: ¿Qué tan rápido crecerá su equipo o el número de proyectos?
Basándose en estas preguntas, se pueden recomendar las siguientes configuraciones de VPS de Valebyte.com para la instalación de Gitea:
| Escenario de uso de Gitea | vCPU | RAM | NVMe SSD | Costo aproximado/mes. (Valebyte.com) | Notas |
|---|---|---|---|---|---|
| Personal/Prueba (1-3 usuarios, hasta 10 repos, operaciones poco frecuentes) | 1 | 1-2 GB | 20 GB | desde $5 | BD SQLite, sin CI/CD. Suficiente para aprendizaje y proyectos pequeños. |
| Equipo pequeño (3-10 usuarios, hasta 30 repos, actividad moderada) | 2 | 2-4 GB | 50 GB | desde $10 | PostgreSQL/MariaDB, posible CI/CD ligero. Buen equilibrio precio/rendimiento. |
| Equipo mediano (10-25 usuarios, hasta 100 repos, alta actividad, CI/CD) | 4 | 8-16 GB | 100-200 GB | desde $20 | PostgreSQL, CI/CD activo. Recomendado para desarrollo profesional. |
| Equipo grande/Empresarial (más de 25 usuarios, cientos de repos, CI/CD intensivo, Git LFS) | 8+ | 16-32 GB+ | 200 GB+ | desde $40 (posiblemente, servidor dedicado) | BD de alto rendimiento, recursos dedicados. Considere servidores dedicados para máxima performance y aislamiento. |
Recomendaciones para la escalabilidad y optimización
Incluso con un VPS correctamente elegido, se pueden tomar medidas para optimizar y prepararse para la escalabilidad:
- Utilice NVMe SSD: Para Gitea, este es quizás el factor de rendimiento más importante, especialmente al trabajar con repositorios grandes o con operaciones Git frecuentes.
- Elija KVM VPS: La virtualización KVM proporciona un mejor aislamiento de recursos y rendimiento en comparación con OpenVZ.
- Optimice la base de datos: Si utiliza PostgreSQL o MySQL, asegúrese de que estén configurados para un rendimiento óptimo. Verifique los parámetros de caché y búfer.
- Separación de servicios: Para instalaciones muy grandes, considere alojar la base de datos de Gitea en un VPS separado o en un servicio de BD gestionado. Esto reducirá la carga en el servidor principal de Gitea y simplificará la escalabilidad.
- Monitoreo: El monitoreo continuo de los recursos (CPU, RAM, I/O de disco) le ayudará a detectar cuellos de botella con antelación y a tomar decisiones sobre la necesidad de una actualización.
- Almacenamiento en caché: Gitea admite el almacenamiento en caché de varios componentes. Asegúrese de que esté habilitado y configurado en
app.ini. - Git LFS: Si trabaja con archivos binarios grandes, utilice Git LFS (Large File Storage). Gitea tiene soporte LFS integrado.
Recuerde que gitea en un servidor, incluso en uno potente, requiere atención a la configuración. La elección correcta del VPS y la posterior optimización garantizarán el funcionamiento ininterrumpido de su hosting Git. Para aquellos que quieran comprender más a fondo los fundamentos de la infraestructura de servidores, recomendamos consultar el artículo "Qué es un servidor y un dedicado: Guía completa para principiantes".
Conclusiones
Gitea en un VPS ofrece una solución potente, flexible y económica para el alojamiento autosuficiente de repositorios Git, brindando control total sobre sus proyectos y datos. Siguiendo las instrucciones paso a paso para la instalación a través de Docker Compose, la configuración de acceso seguro con Nginx/Caddy y HTTPS, así como el mantenimiento regular, podrá crear una plataforma fiable para su equipo. La elección de un plan de VPS adecuado de Valebyte.com con NVMe SSD garantizará un alto rendimiento, y una planificación correcta de la configuración para la carga real asegurará el funcionamiento estable de Gitea a largo plazo.
¿Listo para elegir un servidor?
VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.
Empezar ahora →