Cómo instalar tu propio servidor Gitea en EC2: Tutorial paso a paso

Brian - Dec 20 '24 - - Dev Community

¿Buscas tener tu propio servidor Git? Configurar un servidor Gitea en una instancia EC2 con Amazon Linux es más sencillo de lo que parece. Sigue estos pasos para instalar y configurar Gitea y gestionar tus repositorios en la nube.


Instalación de Gitea

1. Actualizar y preparar el entorno

1. Actualiza los paquetes e instala los requisitos:

sudo yum update -y  
sudo yum install -y git wget mariadb105-server mariadb105 jq  
Enter fullscreen mode Exit fullscreen mode

2. Configura y habilita MariaDB:

sudo systemctl enable mariadb  
sudo systemctl start mariadb  
sudo mysql_secure_installation  
Enter fullscreen mode Exit fullscreen mode

2. Configurar la base de datos

1. Accede a MariaDB:

sudo mysql -u root -p  
Enter fullscreen mode Exit fullscreen mode

2. Crea una base de datos y usuario para Gitea:

CREATE DATABASE gitea;  
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'tu-contraseña';  
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';  
FLUSH PRIVILEGES;  
EXIT;  
Enter fullscreen mode Exit fullscreen mode

3. Instalar Gitea

1. Descarga el binario de Gitea:

wget -O gitea https://dl.gitea.io/gitea/1.21.4/gitea-1.21.4-linux-amd64  
Enter fullscreen mode Exit fullscreen mode

2. Asigna permisos y mueve el binario:

chmod +x gitea  
sudo mv gitea /usr/local/bin/  
Enter fullscreen mode Exit fullscreen mode

3. Crea directorios necesarios:

sudo mkdir -p /var/lib/gitea/{custom,data,log}  
sudo chown -R ec2-user:ec2-user /var/lib/gitea  
sudo chmod -R 750 /var/lib/gitea  
sudo mkdir -p /etc/gitea  
sudo chown -R ec2-user:ec2-user /etc/gitea  
Enter fullscreen mode Exit fullscreen mode

4. Crear un servicio para Gitea

1. Crea un archivo de servicio en systemd:

sudo nano /etc/systemd/system/gitea.service  
Enter fullscreen mode Exit fullscreen mode

2. Añade la siguiente configuración:

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mariadb.service

[Service]
RestartSec=2s
Type=simple
User=ec2-user
Group=ec2-user
WorkingDirectory=/var/lib/gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=ec2-user HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target
Enter fullscreen mode Exit fullscreen mode

3. Guarda, recarga y habilita el servicio:

sudo systemctl daemon-reload  
sudo systemctl enable gitea  
sudo systemctl start gitea  
Enter fullscreen mode Exit fullscreen mode

5. Configurar Gitea desde el navegador

  • Abre un navegador y ve a: http://<tu-ip-pública>:3000.
  • Completa la configuración:
    • Base de datos:
      • Tipo: MySQL.
      • Host: 127.0.0.1:3306.
      • Nombre: gitea.
      • Usuario: gitea.
      • Contraseña: Tu contraseña configurada.
      • URL: http://<tu-ip-pública>:3000.

6. Redirigir tráfico al puerto 80 (Opcional)

1. Haz que Gitea esté disponible en el puerto 80 con iptables:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000  
Enter fullscreen mode Exit fullscreen mode

2. Guarda los cambios para que sean persistentes:

sudo yum install -y iptables-services  
sudo service iptables save  
Enter fullscreen mode Exit fullscreen mode

¡Todo listo!

Ahora tienes un servidor Gitea corriendo en tu instancia EC2. ¿Qué sigue? Agrega tus repositorios y comienza a colaborar.

Si tienes preguntas o quieres mejorar la configuración, ¡déjalo en los comentarios! 👇🏻

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .