Todos los sistemas en funcionamiento 21 criptomonedas aceptadas · Monero bienvenido Política sin KYC
ChainVPS

Dev · sin KYC

Aloja Gitea en un VPS offshore

Ejecuta tu propia forja Git ligera en un VPS sin KYC y con pago en criptomonedas, y mantén cada repositorio, issue y pipeline de CI fuera de las nubes de terceros.

Qué es

Gitea es un servicio Git autoalojado escrito en Go — una alternativa ligera a GitHub/GitLab que ofrece repositorios, pull requests, issues, wikis, releases y Actions (CI/CD). Se distribuye como un único binario o imagen Docker con un consumo de memoria mínimo, lo que lo hace ideal para equipos que quieren control total sobre su código fuente.

Por qué alojarlo offshore

El código fuente está entre los datos más sensibles que maneja un equipo; alojarlo en un VPS offshore y sin identidad lo mantiene fuera del alcance de las grandes plataformas de hospedaje de código y sus políticas de retención de datos y retirada de contenido. Pagar en cripto sin KYC significa que la infraestructura de tu proyecto no queda vinculada a una identidad corporativa, y el ancho de banda sin medición permite que los clones, las ejecuciones de CI y las descargas de releases fluyan sin sorpresas de consumo.

El despliegue

Una configuración de referencia funcional

Copia esto en una nueva instancia de ChainVPS. Sustituye los marcadores de posición y ponlo en marcha.

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

Firewall

Puertos que debes abrir

PuertoProtocoloPropósito
3000TCPInterfaz web de Gitea y git por HTTP — mantenla detrás de un proxy inverso TLS (Caddy/Nginx) en producción
222TCPGit a través de SSH (puerto del host mapeado al 22 del contenedor) para clonar/hacer push mediante claves SSH
443TCPHTTPS a través de tu proxy inverso una vez que el dominio y el certificado estén configurados
22TCPSSH del host para administración — mantenlo en un puerto distinto al 222 de Gitea y solo con clave

Dimensionamiento adecuado

Qué plan necesitas

Ligero

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Desarrollador individual o un puñado de usuarios, unas pocas decenas de repositorios, sin CI. Gitea consume en reposo entre 150 y 200 MB de RAM.

Medio

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Equipo pequeño, pull requests activos, además de uno o dos runners de Gitea Actions para CI. Añade un volumen de almacenamiento para artefactos de releases voluminosos.

Alto

Dedicated (or Storage VPS for repos)

Muchos usuarios concurrentes, monorepos grandes, alta concurrencia de CI o mucho contenido con LFS. La CPU dedicada mantiene ágiles las operaciones de clone/pack; combínalo con un plan de almacenamiento para los datos de repositorios/LFS.

Mejores ubicaciones: Elige una ubicación de nivel privacidad — Suiza (CH) e Islandia (IS) ofrecen la postura de protección de datos más sólida para código fuente, con Países Bajos (NL), Rumanía (RO), Moldavia (MD) y Luxemburgo (LU) como sólidas alternativas offshore. Elige la región más cercana a tus colaboradores para reducir la latencia de clone/push, ya que los intercambios de git son sensibles a la latencia.

Blíndalo

Lista de verificación de hardening

  • Nunca expongas el puerto 3000 directamente a internet — pon Gitea detrás de un proxy inverso TLS (Caddy con HTTPS automático o Nginx + certbot) y configura GITEA__server__ROOT_URL con el dominio https para que las URLs de clonado sean correctas.
  • Configura DISABLE_REGISTRATION=true (ya incluido en el compose) justo después de crear tu cuenta de administrador para que nadie pueda autorregistrarse; invita a los usuarios manualmente o desde el panel de administración.
  • Mantén git-over-SSH en el puerto 222 y el sshd propio del host en un puerto distinto, ambos solo con clave (PasswordAuthentication no); Gitea gestiona internamente su authorized_keys, así que no lo edites a mano.
  • Activa 2FA en todas las cuentas y exígelo para el administrador; saca la contraseña de la base de datos de las variables de entorno hacia un secreto de Docker o un archivo .env con permisos 600.
  • Haz copias de seguridad programadas de ./gitea (repositorios, configuración, LFS) y de un pg_dump de la base de datos gitea, y fija la imagen a una etiqueta de versión (gitea/gitea:1.22) en lugar de latest para que las actualizaciones sean deliberadas — lee las notas de versión antes de subir de versión mayor.

Preguntas

Hosting Gitea — Preguntas frecuentes

¿Puedo ejecutar CI/CD sin un servicio aparte?

Sí. Gitea incluye Actions (compatible con GitHub Actions). Actívalo y luego registra un contenedor runner (gitea/act_runner) contra tu instancia. Para carga real de CI, usa un plan Medio o superior para que las compilaciones no le quiten recursos al servicio web.

¿SQLite, MySQL o PostgreSQL?

SQLite funciona para un único usuario con carga ligera y no necesita contenedor de base de datos. Para cualquier equipo o proyecto en crecimiento, usa PostgreSQL como se muestra en el compose — gestiona la concurrencia mucho mejor y es trivial respaldarlo con pg_dump.

¿Cómo migro mis repositorios desde GitHub/GitLab?

La herramienta de migración integrada de Gitea importa un repositorio por URL, incluyendo issues, PRs, releases y wiki. Añade un token de la plataforma de origen en el formulario de migración para traer repositorios privados y sus metadatos.

¿Soporta archivos grandes (Git LFS)?

Sí, LFS es compatible de forma nativa y se almacena bajo /data. Si alojas binarios grandes o contenido multimedia, pon ./gitea en un volumen de VPS de almacenamiento y calcula el espacio en disco en consecuencia — los objetos LFS se acumulan rápido.

¿Mi código se mantiene privado en un host sin KYC?

Tus repositorios viven por completo en el disco de tu VPS, en la jurisdicción offshore que elijas; nada se replica hacia terceros. Mantén el registro desactivado, usa HTTPS + claves SSH, activa 2FA y realiza copias de seguridad cifradas fuera del servidor para tener control total.

Desplegar Gitea
en los próximos 60 segundos.

Ancho de banda ilimitado · DDoS incluido · 21 criptomonedas · sin KYC.