Este documento está basado en este artículo: Monta tu propio servidor de Git con Gitea y Docker
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).
La instalación se lleva a cabo por medio de 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
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.
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.
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.
Es posible migrar repostorios que estén en diferentes espacios. En este ejemplo estoy usando este mismo repositorio.
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.
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.
$ docker-compose down --volumes
[+] Running 3/3
- Container gitea Removed 1.4s
- Container gitea-docker-compose-db-1 Removed 1.5s
- Network gitea-docker-compose_gitea Removed
Esta última instrucción termina con los contenedores que habían sido levantados.