El rincón de ferlagod

forgejo

Como os conté en el post anterior, si quiero que mi app BiblioHouse pese 300 MB o lo que me dé la gana, necesito mi propio terreno. Por eso, hoy os traigo una guía paso a paso para que cualquiera pueda montar su propia instancia de Forgejo en un VPS europeo, manteniendo el control total.

Este es el proceso que he seguido para levantar ForjaLibre.eu. Cambia midominio.com o tudominio.com por tu dominio:


Requisitos previos

Para que esto vaya fluido y no se quede colgado a la primera de cambio, vamos a necesitar:

  • Un VPS en Europa: Yo recomiendo un servidor con al menos 2 GB de RAM (un CX11 de Hetzner o un equivalente en IONOS).
  • Un dominio: En mi caso he usado forjalibre.eu. Debes añadir un registro A en tu panel de DNS que apunte a la IP de tu servidor.
  • Puertos abiertos: Asegúrate de tener abiertos los puertos 80 (HTTP) y 443 (HTTPS) en el firewall.

Pasos de instalación (ejecuta como root)

1. Actualiza el sistema e instala las dependencias

Lo primero es tener la casa limpia y con las herramientas necesarias.

apt update && apt upgrade -y
apt install git wget curl nginx-full certbot python3-certbot-nginx sqlite3 ufw -y

# Configuramos el firewall básico
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw --force enable

2. Crea el usuario y directorios de Forgejo

Por seguridad, Forgejo funcionará bajo su propio usuario de sistema.

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

# Estructura de carpetas
mkdir -p /var/lib/forgejo/{custom,data,log}
chown -R git:git /var/lib/forgejo/
chmod -R 750 /var/lib/forgejo/

mkdir /etc/forgejo
chown root:git /etc/forgejo
chmod 770 /etc/forgejo

3. Descarga Forgejo

Bajamos la versión estable (v14.0.2) y le damos permisos de ejecución.

cd /tmp
wget [https://codeberg.org/forgejo/forgejo/releases/download/v14.0.2/forgejo-14.0.2-linux-amd64](https://codeberg.org/forgejo/forgejo/releases/download/v14.0.2/forgejo-14.0.2-linux-amd64)
mv forgejo-14.0.2-linux-amd64 /usr/local/bin/forgejo
chmod +x /usr/local/bin/forgejo

4. Configura el servicio systemd

Para que Forgejo arranque siempre con el sistema.

wget [https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service](https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service) -P /etc/systemd/system/
systemctl daemon-reload
systemctl enable forgejo

5. Configuración inicial app.ini

Aquí es donde quitamos los límites de tamaño. Crea el archivo de configuración:

nano /etc/forgejo/app.ini

Pega este contenido adaptado (ajusta tu dominio):

[server]
DOMAIN = tudominio.com
HTTP_PORT = 3000
ROOT_URL = https://tudominio.com/
ENABLE_GZIP = true

[database]
DB_TYPE = sqlite3
PATH = /var/lib/forgejo/data/gitea.db

[repository]
# Aquí ampliamos a 10 GB para tu app entre sin problemas
UPLOAD_MAX_FILE_SIZE = 10240 
MAX_FILES = 50

[session]
PROVIDER = file

[lfs]
ENABLED = true

Ajustamos permisos finales:

chown root:git /etc/forgejo/app.ini
chmod 640 /etc/forgejo/app.ini

6. Inicia Forgejo

systemctl start forgejo
systemctl status forgejo # Verifica que esté en "active (running)"

7. Configura Nginx + SSL (Let's Encrypt)

Configuramos el proxy inverso para que todo pase por HTTPS y permitamos subidas pesadas.

nano /etc/nginx/sites-available/forgejo

Contenido del archivo:

server {
    listen 80;
    server_name midominio.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name midominio.com;

    # Clave para permitir uploads de más de 100MB
    client_max_body_size 50g; 

    location / {
        proxy_pass [http://127.0.0.1:3000](http://127.0.0.1:3000);
        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;
        proxy_redirect off;
    }
}

Activamos y pedimos el certificado:

ln -s /etc/nginx/sites-available/forgejo /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
certbot --nginx -d midominio.com

8. Setup inicial vía web

Ahora abre tu navegador en midominio.com y termina la configuración:

  • Base de datos: SQLite ya está listo.

  • Admin: Crea tu usuario y contraseña.

  • Confirmación: En Admin > Settings, verifica que MAXFILESIZE sea de 10240 MB.

¡Listo! Ya tienes tu forja funcionando, soberana y sin que nadie te diga cuánto tiene que pesar tu trabajo.

#Teconología #Tutorial #Forgejo

El rincón de ferlagod — Si dejas tu comentario en Mastodon te leeré.

Contenido bajo licencia Creative Commons BY-SA 4.0.

Me puedes encontrar en Mastodon

Copia de Enredando Temas