[{"data":1,"prerenderedAt":260},["ShallowReactive",2],{"seo-verification":3,"blog-gitea-vs-gitlab-que-forja-git-self-hosted-en-vps-ma-es":6,"promo-bar-likely":259},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-gitea-vs-gitlab-que-forja-git-self-hosted-en-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":196,"ctaBody":197,"ctaButton":198,"ctaUrl":199,"relatedPosts":200},99,"gitea-vs-gitlab-que-forja-git-self-hosted-en-vps",{"fr":12,"en":13,"ar":14,"es":10},"gitea-vs-gitlab","gitea-vs-gitlab-which-self-hosted-git-forge-on-a-vps","gitea-مقابل-gitlab-أي-منصة-git-مستضافة-ذاتيا-على-vps","Gitea vs GitLab: ¿qué forja Git self-hosted en VPS?","Gitea vs GitLab self-hosted en 2026: licencias, huella de memoria, CI\u002FCD, migración y seguridad comparados para elegir tu forja Git en un VPS.",10,3,false,"2026-03-13T00:00:00+00:00","2026-10-20T23:18:08+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},5,"Comparativas","comparatif","bg-info\u002F10 text-info",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fgitea-vs-gitlab-poster.svg",{"categorySlug":33,"appSlug":34},"desarrollo","gitea","Alojar tu propia forja Git es recuperar el control de tu código, de tu CI y de tus secretos. Gitea apuesta por la ligereza; GitLab, por la plataforma completa. Te explicamos cómo decidirte y desplegarla en un VPS — desde la comparativa de licencias hasta la instalación en cuatro pasos.",[37,41,51,54,57,117,120,123,132,135,151,172,190,194],{"type":38,"title":39,"body":40},"h2","Por qué autoalojar tu forja Git en un VPS","Una forja Git autoalojada mantiene tu propiedad intelectual fuera de las plataformas públicas y elimina cualquier límite arbitrario sobre el número de repositorios privados, de colaboradores o de minutos de CI. En un VPS, controlas la localización de los datos, las copias de seguridad y la integración con tu pipeline interno. Gitea (y su fork Forgejo) está escrito en Go: un binario único, arranque instantáneo, huella de memoria mínima, ideal para un VPS modesto. GitLab CE es una suite integrada (incidencias, CI\u002FCD, registro Docker, registro de paquetes, wiki, entornos), pero consume mucha más RAM.",{"type":42,"title":43,"items":44},"ul","Las ventajas de una forja autoalojada",[45,46,47,48,49,50],"Repositorios privados sin tope ni suscripción por puesto","CI\u002FCD bajo tu control, con tus propios runners en el VPS","Secretos y tokens almacenados en tu servidor, fuera de una plataforma de terceros","Registro de imágenes Docker y de paquetes integrado, cerca de tus despliegues","Cumplimiento y localización de los datos completamente bajo control","Con Gitea: un único binario, con una copia de seguridad que se limita a una carpeta y una base de datos",{"type":38,"title":52,"body":53},"Gitea vs GitLab: diferencias de licencia en 2026","Gitea se publica bajo licencia MIT: puedes leer el código, modificarlo, redistribuirlo y alojarlo sin restricciones comerciales. Forgejo, su fork comunitario nacido en 2022, aplica la misma licencia. GitLab CE también es MIT — pero únicamente la capa Community Edition. GitLab EE (Enterprise Edition) es propietario: las funcionalidades premium (SAML SSO avanzado, aprobaciones de MR múltiples, SAST\u002FDAST integrados, epics, roadmaps) están bloqueadas detrás de una suscripción de pago que empieza en varios cientos de euros por usuario al año. Para un equipo que autoaloja GitLab CE, el riesgo principal no es la licencia sino el efecto de arrastre hacia el nivel de pago: las funcionalidades ausentes en CE empujan progresivamente hacia EE. Con Gitea o Forgejo, todas las funcionalidades disponibles están incluidas en la versión libre, sin nivel de pago.",{"type":38,"title":55,"body":56},"Rendimiento y recursos del servidor","Gitea consume aproximadamente 100 a 150 MB de RAM en reposo en un despliegue Docker estándar con PostgreSQL. Con una decena de runners activos y algunas pipelines simultáneas, te mantienes por debajo de 400 MB para la forja — encaja fácilmente en un VPS de 2 GB. GitLab CE en omnibus es una categoría diferente: PostgreSQL, Redis, Sidekiq, Gitaly, Puma y NGINX corren en paralelo. En reposo, el conjunto supera habitualmente los 3 a 4 GB de RAM y puede subir a 6-8 GB bajo carga CI. GitLab recomienda oficialmente 8 GB de RAM para uso en producción con CI activado.",{"type":58,"title":59,"headers":60,"rows":64},"comparison","Gitea vs GitLab CE: tabla comparativa completa",[61,62,63],"Criterio","Gitea \u002F Forgejo","GitLab CE",[65,69,73,77,81,85,89,93,97,101,105,109,113],[66,67,68],"RAM en reposo","~128 MB (solo la forja)","3 a 4 GB (omnibus completo)",[70,71,72],"RAM recomendada producción","1 a 2 GB","8 GB",[74,75,76],"Arquitectura","Binario Go único","Suite multiservicio (omnibus)",[78,79,80],"Tiempo de arranque","Casi instantáneo","Varios minutos",[82,83,84],"Licencia","MIT (Gitea) \u002F MIT (Forgejo)","MIT (CE) \u002F propietaria (EE)",[86,87,88],"CI\u002FCD integrada","Gitea Actions (estilo GitHub)","GitLab CI\u002FCD, muy completa",[90,91,92],"Runners distribuidos","Básico (act runner)","Avanzado (runners distribuidos, executor k8s)",[94,95,96],"SAST \u002F DAST integrado","No (vía plugins CI)","Solo EE",[98,99,100],"Aprobaciones de MR múltiples","Simple","Avanzado (EE)",[102,103,104],"Registro Docker \u002F paquetes","Incluido y ligero","Incluido, completo",[106,107,108],"Gestión de proyectos (incidencias, tableros)","Esencial","Avanzada (epics según la edición)",[110,111,112],"Facilidad de copia de seguridad","Carpeta + dump SQL","Procedimiento omnibus dedicado",[114,115,116],"Ideal para","VPS modesto, equipos de 1 a 30 devs","Plataforma DevOps enterprise",{"type":38,"title":118,"body":119},"Comparativa de funcionalidades CI\u002FCD","Gitea Actions apareció en Gitea 1.19 (2023) y reutiliza exactamente la sintaxis de los workflows de GitHub Actions: los archivos `.github\u002Fworkflows\u002F*.yml` existentes son reutilizables sin modificación en la mayoría de los casos. El ejecutor subyacente es `act`, encapsulado en un runner Docker. Es suficiente para la mayoría de las pipelines: build, test, lint, push de imagen, despliegue SSH. Las limitaciones aparecen en los casos avanzados: sin cachés compartidas entre runners a escala, sin entornos de revisión nativos. GitLab CI es más maduro en estos puntos: runners distribuidos en varias máquinas, ejecutores Kubernetes, cachés compartidas, entornos dinámicos, review apps, directivas `rules:` e `include:` potentes. La regla práctica: Gitea Actions es suficiente para equipos de 1 a 20 desarrolladores con pipelines estándar; GitLab CI se impone cuando la madurez del pipeline es en sí misma un criterio de elección.",{"type":38,"title":121,"body":122},"Migración GitLab a Gitea: lo que cubre la CVE-2026-85706","La CVE-2026-85706 es una vulnerabilidad de tipo Server-Side Request Forgery (SSRF) descubierta en GitLab CE y EE que afecta a las versiones anteriores al parche de marzo de 2026. Permite a un atacante autenticado forzar a GitLab a hacer solicitudes HTTP hacia recursos de la red interna a través de la funcionalidad de importación de repositorio remoto. En un VPS donde GitLab comparte la red interna con otros servicios (bases de datos, registros, APIs), la exposición es real. Gitea no está afectado por esta CVE específica. La migración GitLab a Gitea está documentada y cubierta por `gitea-migration-tool`: importa repositorios, incidencias, etiquetas, hitos, pull requests y comentarios desde la API de GitLab. Si estás ejecutando una versión sin parchear de GitLab CE en un VPS expuesto, migrar a Gitea o actualizar urgentemente son las únicas opciones razonables.",{"type":42,"title":124,"items":125},"Cuándo elegir GitLab CE pese al coste en recursos",[126,127,128,129,130,131],"Equipos de más de 50 desarrolladores activos: la gestión detallada de permisos y los grupos anidados de GitLab justifican la complejidad","Compliance enterprise o certificación ISO 27001: los logs de auditoría, las aprobaciones de MR con quórum y las políticas de push protegido son más maduras","SAST \u002F DAST integrado en el pipeline (requiere GitLab EE, pero algunos equipos prefieren consolidar en una única herramienta de pago)","Review apps y entornos dinámicos por MR: GitLab CI lo gestiona nativamente; Gitea Actions requiere herramientas externas","Runners de Kubernetes con autoescalado: GitLab dispone de un operador K8s dedicado y un executor nativo","Wiki vinculada al repositorio con historial Git y renders de Mermaid \u002F PlantUML integrados en la interfaz",{"type":38,"title":133,"body":134},"Requisitos según la forja elegida","Gitea es frugal: 1 vCPU y 1 GB de RAM bastan para un equipo pequeño, 2 GB con la base de datos y algunos runners. GitLab CE es mucho más exigente: apunta como mínimo a 4 GB de RAM (8 GB recomendados en uso real con CI), 4 vCPU y un disco rápido, porque la suite incorpora PostgreSQL, Redis, Sidekiq y Gitaly. En ambos casos necesitas Docker y Compose, un subdominio (git.tudominio.com), un reverse proxy para el TLS e, idealmente, un segundo subdominio si activas el registro Docker.",{"type":136,"title":137,"steps":138},"steps","Instalar Gitea en un VPS ServOrbit en 4 pasos",[139,142,145,148],{"title":140,"body":141},"Preparar el volumen y la red Docker","En tu VPS ServOrbit, crea los directorios de datos y una red Docker aislada: `mkdir -p \u002Fsrv\u002Fgitea\u002F{data,db} && docker network create forge`. Esta red permite que Gitea y PostgreSQL se comuniquen sin exponer la base de datos a la interfaz pública.",{"title":143,"body":144},"Escribir el docker-compose.yml","Declara dos servicios: `gitea\u002Fgitea:latest` montado en `\u002Fsrv\u002Fgitea\u002Fdata` y `postgres:16-alpine` montado en `\u002Fsrv\u002Fgitea\u002Fdb`. Expón el puerto `3000` internamente y el puerto SSH de Git `2222` externamente. Pasa `GITEA__database__DB_TYPE=postgres`, `GITEA__server__DOMAIN` y `GITEA__server__ROOT_URL` como variables de entorno.",{"title":146,"body":147},"Configurar el dominio y el SSL","En tu área de cliente ServOrbit, crea un registro DNS para `git.tudominio.com` apuntando a la IP de tu VPS. Haz de proxy de ese subdominio con Caddy o Nginx hacia el puerto `3000` de Gitea. Caddy gestiona Let's Encrypt automáticamente; con Nginx, añade un bloque certbot. Verifica que se transmite `X-Forwarded-Proto: https` para que las URL de clonado sean correctas.",{"title":149,"body":150},"Crear el primer repositorio y conectar un runner CI","Ejecuta `docker compose up -d`, luego accede a `https:\u002F\u002Fgit.tudominio.com`. El asistente de instalación se abre en la primera conexión: indica el tipo de base de datos (PostgreSQL), confirma el dominio y crea la cuenta de administrador. Para CI, instala `act_runner`, regístralo en Administración > Runners y coloca tu primer `.gitea\u002Fworkflows\u002Fci.yml` en un repositorio.",{"type":136,"title":152,"steps":153},"Desplegar Gitea (o GitLab) en un VPS con Docker",[154,157,160,163,166,169],{"title":155,"body":156},"Crear los volúmenes y la red","Prepara `mkdir -p \u002Fsrv\u002Fgitea\u002F{data,db}` y una red Docker dedicada `docker network create forge`. La separación data\u002Fdb facilita copias de seguridad diferenciadas del código y de la base de datos.",{"title":158,"body":159},"Definir el docker-compose.yml","Para Gitea, declara el servicio `gitea\u002Fgitea` más un `postgres`, monta los volúmenes y expón el puerto HTTP `3000` y el puerto SSH de Git `2222` en local. Para GitLab, utiliza `gitlab\u002Fgitlab-ce` con la variable `GITLAB_OMNIBUS_CONFIG` para fijar la `external_url`.",{"title":161,"body":162},"Arrancar y finalizar la instalación","Ejecuta `docker compose up -d`. Gitea muestra un asistente de instalación en la primera conexión (indica el tipo de base de datos y el dominio); GitLab tarda varios minutos en inicializarse, recupera en los logs la contraseña root generada.",{"title":164,"body":165},"Configurar el reverse proxy y el SSL","Haz de proxy de git.tudominio.com hacia el puerto HTTP de la forja con Caddy o Nginx para obtener un certificado Let's Encrypt. Asegúrate de transmitir el `X-Forwarded-Proto` correcto para que las URL de clonado HTTPS sean correctas.",{"title":167,"body":168},"Activar el SSH de Git","Mapea el puerto SSH del contenedor hacia un puerto del VPS (por ejemplo, 2222) y configura tus claves. Rellena `SSH_DOMAIN` para que los comandos `git clone` que propone la interfaz sean exactos.",{"title":170,"body":171},"Conectar la CI\u002FCD","Registra un runner: Gitea Actions (compatible con la sintaxis de GitHub Actions) o un GitLab Runner Docker. Limita sus recursos y aíslalo en su propio contenedor para que un job pesado no tumbe la forja.",{"type":58,"title":173,"headers":174,"rows":176},"Gitea vs GitLab CE: tabla comparativa",[61,175,63],"Gitea",[177,181,182,183,184,185,186,187],[178,179,180],"RAM mínima recomendada","De 1 a 2 GB","De 4 a 8 GB",[74,75,76],[78,79,80],[86,87,88],[102,103,104],[106,107,108],[110,111,112],[114,188,189],"VPS modesto, equipo pequeño\u002Fmediano","Plataforma DevOps completa",{"type":191,"title":192,"body":193},"tip","Gitea + Woodpecker CI: el stack ligero para equipos de 1 a 15","Si Gitea Actions te parece demasiado cercano al ecosistema GitHub y quieres una CI estrictamente self-hosted sin dependencia de `act`, mira Woodpecker CI (un fork de Drone CI, licencia Apache 2.0). Se integra nativamente con Gitea vía OAuth, corre en Docker, y su sintaxis YAML es más explícita que GitHub Actions. El stack Gitea + Woodpecker CI consume menos de 300 MB de RAM en reposo en un VPS de 2 GB — frente a un mínimo de 4 GB para GitLab CE con CI activado. Para equipos de 1 a 15 desarrolladores con pipelines estándar, es la combinación self-hosted más frugal disponible.",{"type":191,"body":195},"En GitLab, evita el OOM-kill en un VPS pequeño reduciendo la concurrencia: pon `puma['worker_processes']` a 2 y `sidekiq['max_concurrency']` a 10 en la configuración omnibus. Si la RAM sigue siendo un problema, echa un vistazo a Forgejo (fork comunitario de Gitea), que conserva la ligereza y cubre el 90% de las necesidades de un equipo, registro y Actions incluidos.","Su forja Git lista para clonar","Un VPS Cloud ServOrbit con plantilla Docker le permite desplegar Gitea o GitLab con reverse proxy, SSL y runner de CI en unos pocos pasos, desde su área de cliente.","Lanzar mi forja en un VPS","\u002Fvps-cloud",[201,220,239],{"id":202,"slug":203,"slugs":204,"title":208,"excerpt":209,"readTime":210,"views":18,"isPinned":19,"noindex":19,"publishedAt":211,"updatedAt":212,"category":213,"categories":214,"featuredImage":29,"bgImage":30,"posterImage":216,"relatedSolution":217},4,"coolify-vs-dokploy-que-herramienta-elegir-para-su-vps",{"fr":205,"en":206,"ar":207,"es":203},"coolify-vs-dokploy","coolify-vs-dokploy-which-tool-to-deploy-on-a-vps","coolify-مقابل-dokploy-أي-أداة-للنشر-على-vps","Coolify vs Dokploy: ¿qué herramienta elegir para su VPS?","¿Coolify o Dokploy para tu VPS? Comparativa binaria sobre RAM en reposo, licencia, plantillas y soporte multinodo para elegir una vez y desplegar.",7,"2026-06-07T00:00:00+00:00","2026-09-18T02:05:20+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[215],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fcoolify-vs-dokploy-poster.svg",{"categorySlug":218,"appSlug":219},"despliegue-de-aplicaciones-devops","coolify",{"id":221,"slug":222,"slugs":223,"title":227,"excerpt":228,"readTime":229,"views":18,"isPinned":19,"noindex":19,"publishedAt":230,"updatedAt":231,"category":232,"categories":233,"featuredImage":29,"bgImage":30,"posterImage":235,"relatedSolution":236},93,"n8n-vs-node-red-que-automatizacion-self-hosted-elegir",{"fr":224,"en":225,"ar":226,"es":222},"n8n-vs-node-red","n8n-vs-node-red-which-self-hosted-automation-tool-to-choose","n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار","n8n vs Node-RED self-hosted: ¿cuál elegir en 2026?","n8n o Node-RED en tu VPS: comparativa de licencia, recursos, IoT vs SaaS, pasos de migración y despliegue con Docker Compose.",9,"2026-03-19T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[234],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":237,"appSlug":238},"automatizacion","n8n",{"id":240,"slug":241,"slugs":242,"title":246,"excerpt":247,"readTime":248,"views":249,"isPinned":19,"noindex":19,"publishedAt":250,"updatedAt":251,"category":252,"categories":253,"featuredImage":29,"bgImage":30,"posterImage":255,"relatedSolution":256},94,"supabase-vs-appwrite-que-backend-self-hosted-para-vps",{"fr":243,"en":244,"ar":245,"es":241},"supabase-vs-appwrite","supabase-vs-appwrite-which-self-hosted-backend-for-your-vps","supabase-مقابل-appwrite-أي-خلفية-مستضافة-ذاتيا-لـ-vps","Supabase vs Appwrite: ¿qué BaaS open source para su VPS?","Comparativa completa Supabase vs Appwrite: despliegue Docker, RAM necesaria, auth, funciones serverless, tiempo real y guía de elección para su VPS.",14,0,"2026-03-18T00:00:00+00:00","2026-11-08T01:13:16+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[254],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":257,"appSlug":258},"bases-de-datos","supabase",true,1794270604479]