Skip to content

Gitea

Instalación sobre Ubuntu 20.04

Basándonos en la documentación oficial sobre Gitea, tendríamos que ejecutar los siguientes comandos para la instalación...

bash
sudo apt update -y
sudo apt install sqlite3
sudo apt install git

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/1.16.7/gitea-1.16.7-linux-amd64

sudo mv /tmp/gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea

sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/

sudo systemctl daemon-reload
sudo systemctl enable --now gitea
sudo systemctl status gitea

Por defecto el servicio se inicia en el servicio 3000

En caso de requerir usar UFW (Firewall) se ejecutaría:

bash
sudo ufw allow 3000/tcp

Luego se establecen los siguientes privilegios:

bash
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

Configurando Nginx

Se edita archivo de Nginx (ej. /etc/nginx/sites-enabled/git.example.com) con un contenido como lo siguiente:

nginx
server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}
bash
sudo systemctl restart nginx

Luego se edita el archivo de configuracion de Gitea (sudo nano /etc/gitea/app.ini)

ini
[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

[mailer]
ENABLED = false
HOST    = MY_SMTP_SERVER:SMTP_PORT
FROM    = MY_SENDER_EMAIL
USER    = MY_SMTP_USER
PASSWD  = MY_YOUR_SMTP_PASSWORD
bash
sudo systemctl restart gitea