Cargando...

Monta tu propio servidor de Git con Gitea y Docker

Aprende cómo montar tu propio servidor de Git con Gitea usando contenedores Docker y empieza a desplegar tus proyectos en equipo desde tu entorno privado y sin costos.

¿Qué es Gitea?

Es un servidor de Git autohospedado, rápido y fácil de usar. Similar a la interfaz gráfica de GitHub y con muchas funcionalidades que comparten con BitBucket y GitLab. Este se encuentra escrito en Go. Es una aplicación ligera y se puede instalar en sistemas de baja potencia, así que, si estás buscando una alternativa a alguno de los sistemas de gestión de Git en la nube antes mencionados, Gitea es una gran opción.

El objetivo de este proyecto es proporcionar la forma más fácil de establecer un servicio de Git autohospedado (que puedes instalar y gestionar desde tu propia infraestructura).


Características de Gitea

Gitea es una aplicación multiplataforma, que se ejecuta desde cualquier sistema operativo, como Windows, MacOS, GNU/Linux, ARM, ect. Además, es fácil de instalar, logrando el cometido desde los mismos binarios hasta utilizar contenedores Docker. El paquete es liviano, por lo que no necesitará de muchos recursos, incluso este puede ejecutarse en una Raspberry Pi económica. El ser de código abierto es lo que lo convierte en un software de mucho potencial, ya que la comunidad está en constante crecimiento.

También, algunas funcionalidades que tiene son las siguientes:

  • Panel de control de usuario.
    • Posibilidad de gestionar usuarios y organizaciones.
    • Cronograma de actividades como los commits, issues, pull requests, creación de repositorios y más.
  • Panel de issues (problemas).
    • Filtrar los issues como son típicamente: Abiertos, Cerrados, Tus repositorios, issues asignados y más.
  • Panel de PR (Pull Requests).
  • Notificaciones por email y el propio sistema web.
  • Explorador de páginas, usuarios, repositorios y organizaciones.
  • Plantillas personalizadas.
  • Compatibilidad con HTTPS.
  • Protección CSRF y XSS.
  • Establecer tamaños y tipos de carga.
  • Sistema de registro e inicio de sesión.
  • Capacidad de configurar distintos sistemas gestores de base de datos como MySQL, PostgreSQL, SQLite3, MSSQL y TiDB.
  • Estadísticas y gestión de usuarios.
  • Conexión SSH y estado del servidor.
  • Orígenes de autenticación como: OAuth, Pam, LDAP y SMTP.
  • Monitorización y mucho más.


Instalación de Gitea por medio de contenedores Docker

La instalación se lleva a cabo por medio de Docker Compose. Este recurso puedes encontrarlo también en el repositorio Gitea-Docker-Compose. Igualmente, en la documentación de Gitea, puede encontrar otras formas y alternativas al gestor de base de datos.

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.17.3
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

Ejecutas el Docker Compose mediante la siguiente instrucción: docker-compose up -d. Donde instalará los paquetes en los contenedores necesarios.

$ docker-compose up -d
[+] Running 21/21
 - server Pulled                                                                                                                                    45.0s 
   - 213ec9aee27d Pull complete                                                                                                                      1.4s 
   - 3b125bd762f1 Pull complete                                                                                                                     10.5s 
 - db Pulling                                                                                                                                       
   - 6e6c408eba18 Pull complete                                                                                                                     10.5s 
   - 3b125bd762f1 Pull complete                                                                                                                     10.5s
[+] Running 3/3
 - Network gitea-docker-compose_gitea   Created                                                                                                      0.0s
 - Container gitea-docker-compose-db-1  Started                                                                                                      0.8s
 - Container gitea                      Started                                                                                                      0.9s

Se levantan dos contenedores, la cual uno es el servidor de Gitea y el otro es el servidor donde se encuentra el sistema gestor de base de datos MySQL; corriendo en los puertos correspondientes.

$ docker-compose ps
NAME                        COMMAND                  SERVICE             STATUS              PORTS
gitea                       "/usr/bin/entrypoint…"   server              running             0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp
gitea-docker-compose-db-1   "docker-entrypoint.s…"   db                  running             3306/tcp, 33060/tcp


Primeros pasos con Gitea

Para llegar a la interfaz gráfica web de Gitea, es tan sencillo como abrir en su navegador la ruta: https://127.0.0.1:3000. Este le llevará a la configuración inicial, donde señala el tipo de base de datos, servidor, nombre de usuario, contraseña y demás credenciales.

Installation of Gitea

Aplicar una configuración inicial es muy importante, en este caso, establecer credenciales de acceso, como una cuenta personal. Los datos escritos en las screenshots, son de ejemplo.

Optional Configuration for Gitea

Después de registrarse, tanto que esto hubiese sido desde la configuración inicial, como desde el panel de registro en el inicio de sesión, lo que faltaría es acceder a tu cuenta para contemplar las bondades que te trae Gitea.

Login of Gitea


Migrar un repositorio de GitHub a Gitea

Es posible migrar repostorios que estén en diferentes espacios. En este ejemplo estoy usando el repositorio Gitea-Docker-Compose almacenado en GitHub.

Migrate repository from GitHub with Gitea

Esta es la forma en que se observa un repositorio en Gitea; y es fácil de ver que se parece mucho a la interfaz de GitHub.

View a repository migrate from GitHub with Gitea

Con esto ya estás listo para trabajar en un entorno local, para instalar tu propio servidor de Git con interfaz gráfica; trabajar en equipo y poder llevar este proyecto a la nube, a tu propia infraestructura. 

  • John Doe
    43 Sales$156,24 Totals
    62%
  • Rosy O'Dowell
    12 Leads$56,24 Totals
    32%

With supporting text below as a natural lead-in to additional content.

Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.