bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward

Gitea en un VPS: instalación, configuración y mantenimiento

calendar_month 9 de junio de 2026 schedule 25 min de lectura visibility 33 vistas
person
Valebyte Team
Gitea en un VPS: instalación, configuración y mantenimiento

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.
    Para la mayoría de los despliegues en VPS, especialmente con Docker, SQLite o PostgreSQL son las opciones más convenientes.
  • 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.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

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_UID y USER_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__PASSWD y POSTGRES_PASSWORD: OBLIGATORIO reemplazar your_gitea_db_password con una contraseña fuerte y única.
  • GITEA__server__ROOT_URL y GITEA__server__SSH_DOMAIN: Reemplace git.yourdomain.com con 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:3000 abre el puerto de Gitea dentro del contenedor al puerto 3000 del host. 2222:22 abre el puerto SSH de Gitea al puerto 2222 del host. Puede cambiar 2222 a 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 directorio gitea_data de 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, usuario gitea, nombre de la BD gitea, contraseña).
  • Configuración principal de Gitea:
    • Ruta a los repositorios: /data/git/repositories (dentro del contenedor, corresponde a ./gitea_data/git/repositories en el host).
    • Ruta raíz de Gitea: /data.
    • URL de Gitea: https://git.yourdomain.com/ (o http://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 en ports).
  • 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:

  1. Base de datos de Gitea: Contiene información sobre usuarios, repositorios, tareas, comentarios, etc.
  2. Datos de Gitea: Incluyen repositorios Git, claves SSH, avatares, adjuntos y otros archivos almacenados en el directorio /data (que se monta como ./gitea_data en el host).
  3. 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 dump

    Este comando creará un archivo gitea-dump-YYYYMMDDHHMMSS.zip en el directorio de trabajo de Gitea (/tmp dentro 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 dump no 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_data y postgres_data con 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:

  1. Cree una copia de seguridad: Siempre haga una copia de seguridad completa antes de actualizar.
  2. Detenga el contenedor de Gitea:
    docker compose stop gitea
  3. Descargue la nueva imagen de Gitea:
    docker compose pull gitea

    Esto descargará la versión más reciente de la imagen gitea/gitea:latest.

  4. Inicie el contenedor de Gitea:
    docker compose up -d gitea

    Docker Compose creará automáticamente un nuevo contenedor con la nueva imagen, utilizando los volúmenes de datos existentes.

  5. 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.

  1. Copia de seguridad: Asegúrese de hacer una copia de seguridad completa de Gitea y de la base de datos.
  2. Detenga todos los contenedores:
    docker compose down
  3. Modifique docker-compose.yml: Actualice la etiqueta de la imagen de PostgreSQL (por ejemplo, de postgres:15 a postgres:16).
  4. Descargue la nueva imagen:
    docker compose pull db
  5. Inicie los contenedores:
    docker compose up -d
  6. 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, glances o top para 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 gitea

    Para 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.log y error.log para Nginx, o /var/log/caddy/access.log y error.log para Caddy) para identificar problemas de acceso o errores.
  • Monitoreo de Docker: El comando docker stats muestra 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.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

¿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:

  1. Número de usuarios activos: ¿Cuántos desarrolladores utilizarán Gitea simultáneamente?
  2. 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)?
  3. Frecuencia de operaciones Git: ¿Con qué frecuencia se realizarán push, pull, clonaciones?
  4. 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?
  5. 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 →

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.