Cómo instalar tu propio servidor Gitea en EC2

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

1
2
sudo yum update -y
sudo yum install -y git wget mariadb105-server mariadb105 jq

2. Configura y habilita MariaDB:

1
2
3
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation

2. Configurar la base de datos

1. Accede a MariaDB:

1
sudo mysql -u root -p

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

1
2
3
4
5
CREATE DATABASE gitea;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'tu-contraseña';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. Instalar Gitea

1. Descarga el binario de Gitea:

1
wget -O gitea https://dl.gitea.io/gitea/1.21.4/gitea-1.21.4-linux-amd64

2. Asigna permisos y mueve el binario:

1
2
chmod +x gitea
sudo mv gitea /usr/local/bin/

3. Crea directorios necesarios:

1
2
3
4
5
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

4. Crear un servicio para Gitea

1. Crea un archivo de servicio en systemd:

1
sudo nano /etc/systemd/system/gitea.service

2. Añade la siguiente configuración:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[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

3. Guarda, recarga y habilita el servicio:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

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:

1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

2. Guarda los cambios para que sean persistentes:

1
2
sudo yum install -y iptables-services
sudo service iptables save

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