Gitea con PostgreSQL
Gitea de producción — cableado a PostgreSQL out of the box.
Gitea (el servicio Git ligero autohospedado) emparejado con un backend PostgreSQL dedicado para uso de producción. Gitea por defecto usa SQLite, que está bien para equipos pequeños; PostgreSQL es el backend recomendado una vez que cruzas un puñado de usuarios concurrentes, quieres backups HA, o corres Gitea Actions a cualquier volumen.
Desplegar con Pier
- 1 Abre el panel de Pier y haz clic en Add service.
- 2 Elige Gitea with PostgreSQL en la lista de plantillas.
- 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
- 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.
¿Qué es Gitea con PostgreSQL?
Gitea es un servicio Git ligero autohospedado — repos, issues, PRs, code review, releases, registries de paquetes, Gitea Actions (CI compatible GitHub Actions). Por defecto SQLite para simplicidad, pero Postgres es el backend recomendado una vez que tienes múltiples usuarios activos, alto volumen webhook, o corres Gitea Actions a cualquier volumen.
Esta plantilla corre Gitea más un PostgreSQL dedicado en un stack Pier con el cableado env ya correcto. Inicias sesión y usas Gitea exactamente como en la plantilla standalone — código, issues, PRs, paquetes — el backend solo performa mejor bajo carga concurrente.
Cómo lo despliega Pier
Pier usa la imagen oficial gitea/gitea y postgres:17-alpine para el
backend. Puertos por defecto — Gitea web en 3000, Gitea SSH en 22
(remapeado a un puerto externo alto como 222). PostgreSQL queda en la red
Docker interna (no expuesto).
Volúmenes persistentes — /data para Gitea (repos, uploads, config) y
/var/lib/postgresql/data para Postgres. Ambos sobreviven a reinicios de
contenedor y version upgrades.
Setup inicial es la pantalla estándar de install Gitea en la primera visita - elige base de datos (pre-completada para apuntar al Postgres bundleado), configura usuario admin, save. Adjunta un dominio custom en Pier para HTTPS vía Traefik.
Cuándo NO usar esta plantilla
Para 1-3 usuarios y conteos pequeños de repos, la plantilla standalone Gitea (SQLite) es más simple. Para plataformas DevOps completas (Wiki, Pages, Container Registry built-in, escaneo de seguridad avanzado), GitLab CE es más feature-complete pero mucho más pesado en recursos. Para governance community-governed, Forgejo es un fork Gitea que vale considerar. Esta plantilla es la respuesta correcta para “Gitea de producción en mi propio VPS.”
Características clave
Gitea production-ready
Hosting Git web, issues, PRs, code review, releases, paquetes, Actions — todo Gitea, cableado a Postgres para confiabilidad de writes concurrentes.
Config DB pre-cableado
Pier configura el tipo de base de datos Gitea a postgres, más host/db/user/password env vars. Gitea arranca directo en Postgres en el primer launch.
Misma UI Gitea
Repositorios, issues, PRs, mirrors, actions, registries de paquetes (npm/pypi/maven/docker/...), webhooks, acceso SSH — todo idéntico al Gitea standalone.
Gitea Actions
CI/CD built-in compatible con sintaxis GitHub Actions. Corre en sandbox por repo; runners se despliegan separadamente.
Backup vía PostgreSQL
pg_dump captura el estado Gitea entero. Más el volumen de repos. Historia de backup más limpia que el "detén el mundo y copia" de SQLite.
Multi-tenant friendly
Organizaciones, equipos, ACLs fine-grained escalan cómodamente con Postgres. SSO vía OAuth2/OIDC/LDAP/SAML.
Casos de uso
GitHub autohospedado para un equipo
Un equipo de 5-500 usando Gitea diariamente para code review, issues, releases. PostgreSQL maneja la carga concurrente de writes issue/PR suavemente.
Git + CI interno production
Agrega runners Gitea Actions, apunta CI a PRs, ship a tu propio registry — todo en tu VPS, sin facturas de minutos GitHub Actions.
Hosting OSS público
Algunos proyectos hostean repos públicos en su propio Gitea en vez de GitHub. Postgres maneja la carga de visibility/concurrent-read.
Mirror de GitHub / GitLab
Auto-pull mirrors de repos upstream a tu Gitea para acceso offline o backup. Webhook-driven, sin sync manual.
Hub de registry de paquetes
Registry interno npm / PyPI / Maven / Docker / Helm junto a repos Git. Una superficie de auth, un target de backup.
Ejemplos de código
# Puerto SSH expuesto por Pier (default 222 → mapea a 22 interno)
git clone ssh://[email protected]:222/alice/myrepo.git # .gitea/workflows/build.yml
name: build
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: go test ./... Página de Migration en UI -
Tipo - Mirror
URL - https://github.com/orgs/orgname/repo
Auth - PAT (si privado)
Intervalo - 1h docker login gitea.example.com -u alice -p $PAT
docker tag myapp gitea.example.com/alice/myapp:1.0
docker push gitea.example.com/alice/myapp:1.0 Comparativa
| vs Gitea con SQLite (plantilla standalone) | SQLite Gitea está bien para 1-3 usuarios y conteos pequeños de repos. Postgres-backed Gitea es el setup recomendado una vez que tienes writes concurrentes, quieres HA, o corres Actions a cualquier volumen. |
| vs GitLab CE | GitLab es más potente (plataforma DevOps completa) pero heavyweight (mínimo realista 8 GB RAM). Gitea es ligero (~500 MB RAM); elige por recursos disponibles. |
| vs Forgejo | Forgejo es un hard fork de Gitea gobernado por la comunidad (Codeberg). Mismo feature set, mayormente drop-in compatible. Elige basándote en governance preferida. |
| vs GitHub Enterprise | SaaS o self-hosted, pricing enterprise. Gitea es la alternativa abierta a cero costo por seat. |
Preguntas frecuentes
¿Por qué PostgreSQL sobre SQLite?
¿Puedo migrar de SQLite Gitea?
¿Necesito un runner separado para Gitea Actions?
¿Acceso SSH?
¿Cómo funciona el registry de paquetes?
¿Backups?
¿SSO / LDAP / SAML?
Servicios relacionados
Desplegar en tu VPS
Gitea (el servicio Git ligero autohospedado) emparejado con un backend PostgreSQL dedicado para uso de producción. Gitea por defecto usa SQLite, que está bien para equipos pequeños; PostgreSQL es el backend recomendado una vez que cruzas un puñado de usuarios concurrentes, quieres backups HA, o corres Gitea Actions a cualquier volumen.
Desplegar este servicio →