<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Teconología &amp;mdash; El rincón de ferlagod </title>
    <link>https://escritura.social/ferlagod/tag:Teconología</link>
    <description>Blog personal sobre tecnología, cine, series, libros y cualquier frikada.</description>
    <pubDate>Tue, 26 May 2026 06:48:38 +0000</pubDate>
    <item>
      <title>Tutorial: Cómo montar tu propia forja con Forgejo </title>
      <link>https://escritura.social/ferlagod/tutorial-como-montar-tu-propia-forja-con-forgejo</link>
      <description>&lt;![CDATA[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.&#xA;&#xA;Este es el proceso que he seguido para levantar ForjaLibre.eu. Cambia midominio.com o tudominio.com por tu dominio:&#xA;&#xA;---&#xA;&#xA;Requisitos previos&#xA;&#xA;Para que esto vaya fluido y no se quede colgado a la primera de cambio, vamos a necesitar:&#xA;&#xA;Un VPS en Europa: Yo recomiendo un servidor con al menos 2 GB de RAM (un CX11 de Hetzner o un equivalente en IONOS).&#xA;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.&#xA;Puertos abiertos: Asegúrate de tener abiertos los puertos 80 (HTTP) y 443 (HTTPS) en el firewall.&#xA;&#xA;---&#xA;&#xA;Pasos de instalación (ejecuta como root)&#xA;&#xA;1. Actualiza el sistema e instala las dependencias&#xA;Lo primero es tener la casa limpia y con las herramientas necesarias.&#xA;&#xA;apt update &amp;&amp; apt upgrade -y&#xA;apt install git wget curl nginx-full certbot python3-certbot-nginx sqlite3 ufw -y&#xA;&#xA;Configuramos el firewall básico&#xA;ufw allow OpenSSH&#xA;ufw allow &#39;Nginx Full&#39;&#xA;ufw --force enable&#xA;&#xA;2. Crea el usuario y directorios de Forgejo&#xA;Por seguridad, Forgejo funcionará bajo su propio usuario de sistema.&#xA;&#xA;adduser --system --shell /bin/bash --group --disabled-password --gecos &#39;Git Version Control&#39; git&#xA;&#xA;Estructura de carpetas&#xA;mkdir -p /var/lib/forgejo/{custom,data,log}&#xA;chown -R git:git /var/lib/forgejo/&#xA;chmod -R 750 /var/lib/forgejo/&#xA;&#xA;mkdir /etc/forgejo&#xA;chown root:git /etc/forgejo&#xA;chmod 770 /etc/forgejo&#xA;&#xA;3. Descarga Forgejo&#xA;Bajamos la versión estable (v14.0.2) y le damos permisos de ejecución.&#xA;&#xA;cd /tmp&#xA;wget https://codeberg.org/forgejo/forgejo/releases/download/v14.0.2/forgejo-14.0.2-linux-amd64&#xA;mv forgejo-14.0.2-linux-amd64 /usr/local/bin/forgejo&#xA;chmod +x /usr/local/bin/forgejo&#xA;&#xA;4. Configura el servicio systemd&#xA;Para que Forgejo arranque siempre con el sistema.&#xA;&#xA;wget https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service -P /etc/systemd/system/&#xA;systemctl daemon-reload&#xA;systemctl enable forgejo&#xA;&#xA;5. Configuración inicial app.ini&#xA;Aquí es donde quitamos los límites de tamaño. Crea el archivo de configuración:&#xA;&#xA;nano /etc/forgejo/app.ini&#xA;Pega este contenido adaptado (ajusta tu dominio):&#xA;&#xA;[server]&#xA;DOMAIN = tudominio.com&#xA;HTTPPORT = 3000&#xA;ROOTURL = https://tudominio.com/&#xA;ENABLEGZIP = true&#xA;&#xA;[database]&#xA;DBTYPE = sqlite3&#xA;PATH = /var/lib/forgejo/data/gitea.db&#xA;&#xA;[repository]&#xA;Aquí ampliamos a 10 GB para tu app entre sin problemas&#xA;UPLOADMAXFILESIZE = 10240 &#xA;MAXFILES = 50&#xA;&#xA;[session]&#xA;PROVIDER = file&#xA;&#xA;[lfs]&#xA;ENABLED = true&#xA;&#xA;Ajustamos permisos finales:&#xA;&#xA;chown root:git /etc/forgejo/app.ini&#xA;chmod 640 /etc/forgejo/app.ini&#xA;&#xA;6. Inicia Forgejo&#xA;systemctl start forgejo&#xA;systemctl status forgejo # Verifica que esté en &#34;active (running)&#34;&#xA;&#xA;7. Configura Nginx + SSL (Let&#39;s Encrypt)&#xA;Configuramos el proxy inverso para que todo pase por HTTPS y permitamos subidas pesadas.&#xA;nano /etc/nginx/sites-available/forgejo&#xA;Contenido del archivo:&#xA;&#xA;server {&#xA;    listen 80;&#xA;    servername midominio.com;&#xA;    return 301 https://$servername$requesturi;&#xA;}&#xA;&#xA;server {&#xA;    listen 443 ssl http2;&#xA;    servername midominio.com;&#xA;&#xA;    # Clave para permitir uploads de más de 100MB&#xA;    clientmaxbodysize 50g; &#xA;&#xA;    location / {&#xA;        proxypass http://127.0.0.1:3000;&#xA;        proxysetheader X-Forwarded-For $proxyaddxforwardedfor;&#xA;        proxysetheader X-Forwarded-Proto $scheme;&#xA;        proxysetheader X-Real-IP $remoteaddr;&#xA;        proxyredirect off;&#xA;    }&#xA;}&#xA;&#xA;Activamos y pedimos el certificado:&#xA;&#xA;ln -s /etc/nginx/sites-available/forgejo /etc/nginx/sites-enabled/&#xA;rm /etc/nginx/sites-enabled/default&#xA;nginx -t &amp;&amp; systemctl reload nginx&#xA;certbot --nginx -d midominio.com&#xA;&#xA;8. Setup inicial vía web&#xA;Ahora abre tu navegador en midominio.com y termina la configuración:&#xA;&#xA;Base de datos: SQLite ya está listo.&#xA;&#xA;Admin: Crea tu usuario y contraseña.&#xA;&#xA;Confirmación: En Admin   Settings, verifica que MAXFILESIZE sea de 10240 MB.&#xA;&#xA;¡Listo! Ya tienes tu forja funcionando, soberana y sin que nadie te diga cuánto tiene que pesar tu trabajo.&#xA;&#xA;#Teconología #Tutorial #Forgejo&#xA;&#xA;div class=&#34;post-signature&#34;&#xD;&#xA;    pstrongEl rincón de ferlagod/strong — Si dejas tu comentario en Mastodon te leeré./p&#xD;&#xA;p/p&#xD;&#xA;    pContenido bajo licencia a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34;Creative Commons BY-SA 4.0/a./p&#xD;&#xA;p/p&#xD;&#xA;    pa rel=&#34;me&#34; href=&#34;https://frikiverse.zone/@ferlagod&#34;Me puedes encontrar en Mastodon/a/p&#xD;&#xA;img src=&#34;https://i.imgur.com/sTFawkr.png&#34; alt=&#34;Copia de Enredando Temas&#34; width=&#34;64&#34; /&#xD;&#xA;&#xD;&#xA;/div&#xD;&#xA;&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Como os conté en el post anterior, si quiero que mi app <strong>BiblioHouse</strong> 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 <strong>Forgejo</strong> en un VPS europeo, manteniendo el control total.</p>

<p>Este es el proceso que he seguido para levantar <strong>ForjaLibre.eu</strong>. Cambia <em>midominio.com</em> o <em>tudominio.com</em> por tu dominio:</p>

<hr>

<h3 id="requisitos-previos">Requisitos previos</h3>

<p>Para que esto vaya fluido y no se quede colgado a la primera de cambio, vamos a necesitar:</p>
<ul><li><strong>Un VPS en Europa:</strong> Yo recomiendo un servidor con al menos <strong>2 GB de RAM</strong> (un CX11 de Hetzner o un equivalente en IONOS).</li>
<li><strong>Un dominio:</strong> En mi caso he usado <code>forjalibre.eu</code>. Debes añadir un <strong>registro A</strong> en tu panel de DNS que apunte a la IP de tu servidor.</li>
<li><strong>Puertos abiertos:</strong> Asegúrate de tener abiertos los puertos <strong>80</strong> (HTTP) y <strong>443</strong> (HTTPS) en el firewall.</li></ul>

<hr>

<h3 id="pasos-de-instalación-ejecuta-como-root">Pasos de instalación (ejecuta como root)</h3>

<h4 id="1-actualiza-el-sistema-e-instala-las-dependencias">1. Actualiza el sistema e instala las dependencias</h4>

<p>Lo primero es tener la casa limpia y con las herramientas necesarias.</p>

<pre><code>apt update &amp;&amp; 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 &#39;Nginx Full&#39;
ufw --force enable
</code></pre>

<h4 id="2-crea-el-usuario-y-directorios-de-forgejo">2. Crea el usuario y directorios de Forgejo</h4>

<p>Por seguridad, Forgejo funcionará bajo su propio usuario de sistema.</p>

<pre><code>adduser --system --shell /bin/bash --group --disabled-password --gecos &#39;Git Version Control&#39; 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
</code></pre>

<h4 id="3-descarga-forgejo">3. Descarga Forgejo</h4>

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

<pre><code>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
</code></pre>

<h4 id="4-configura-el-servicio-systemd">4. Configura el servicio systemd</h4>

<p>Para que Forgejo arranque siempre con el sistema.</p>

<pre><code>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
</code></pre>

<h4 id="5-configuración-inicial-app-ini">5. Configuración inicial app.ini</h4>

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

<pre><code>nano /etc/forgejo/app.ini
</code></pre>

<p>Pega este contenido adaptado (ajusta tu dominio):</p>

<pre><code>[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
</code></pre>

<p>Ajustamos permisos finales:</p>

<pre><code>chown root:git /etc/forgejo/app.ini
chmod 640 /etc/forgejo/app.ini
</code></pre>

<h4 id="6-inicia-forgejo">6. Inicia Forgejo</h4>

<pre><code>systemctl start forgejo
systemctl status forgejo # Verifica que esté en &#34;active (running)&#34;
</code></pre>

<h4 id="7-configura-nginx-ssl-let-s-encrypt">7. Configura Nginx + SSL (Let&#39;s Encrypt)</h4>

<p>Configuramos el proxy inverso para que todo pase por HTTPS y permitamos subidas pesadas.</p>

<pre><code>nano /etc/nginx/sites-available/forgejo
</code></pre>

<p>Contenido del archivo:</p>

<pre><code>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;
    }
}
</code></pre>

<p>Activamos y pedimos el certificado:</p>

<pre><code>ln -s /etc/nginx/sites-available/forgejo /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
nginx -t &amp;&amp; systemctl reload nginx
certbot --nginx -d midominio.com
</code></pre>

<h4 id="8-setup-inicial-vía-web">8. Setup inicial vía web</h4>

<p>Ahora abre tu navegador en <em>midominio.com</em> y termina la configuración:</p>
<ul><li><p>Base de datos: SQLite ya está listo.</p></li>

<li><p>Admin: Crea tu usuario y contraseña.</p></li>

<li><p>Confirmación: En Admin &gt; Settings, verifica que MAX<em>FILE</em>SIZE sea de 10240 MB.</p></li></ul>

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

<p><a href="/ferlagod/tag:Teconolog%C3%ADa" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Teconología</span></a> <a href="/ferlagod/tag:Tutorial" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Tutorial</span></a> <a href="/ferlagod/tag:Forgejo" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Forgejo</span></a></p>

<div class="post-signature">
    <p><strong>El rincón de ferlagod</strong> — Si dejas tu comentario en Mastodon te leeré.</p>
<p></p>
    <p>Contenido bajo licencia <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow">Creative Commons BY-SA 4.0</a>.</p>
<p></p>
    <p><a href="https://frikiverse.zone/@ferlagod" rel="nofollow">Me puedes encontrar en Mastodon</a></p>
<img src="https://i.imgur.com/sTFawkr.png" alt="Copia de Enredando Temas" width="64"/>

</div>
]]></content:encoded>
      <guid>https://escritura.social/ferlagod/tutorial-como-montar-tu-propia-forja-con-forgejo</guid>
      <pubDate>Fri, 30 Jan 2026 18:29:27 +0000</pubDate>
    </item>
  </channel>
</rss>