DEV Community

Cover image for Cómo instalar tu propio servidor Gitea en EC2: Tutorial paso a paso
Brian
Brian

Posted on • Edited on

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

¿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! 👇🏻

Top comments (0)