Gitea: Docker

2 minuto(s) de lectura

Docker

Gitea es una aplicación que permite desplegar un servicio Git del estilo de Github, Gitlab, Bitbucket en tu propio servidor.

Gitea es multiplataforma y dispone de versiones precompiladas para los principales Sistemas Operativos, es una aplicación desarrollado en Go.

Gitea soporta autenticación de doble factor (two factor authentication), más funcionalidades relativas a la gestión del código, granularidad en los roles, firma de commits con GPG, restricción de push y merge a usuarios específicos, estado de integración con pipelines CI/CD externas, etc…

Vamos a realizar unos pasos previos para preparar el entorno. En primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/gitea/{config,bd} && \
cd $HOME/docker/gitea

Ahora vamos a crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/gitea/docker-compose.yml
version: '3.7'
services:
  gitea:
    image: gitea/gitea:latest
    container_name: Gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=postgres
      - DB_HOST=db:5432
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    restart: always
    volumes:
      - '~/docker/gitea/config:/data'
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "3022:22"
  db:
    image: postgres:alpine
    container_name: GiteaDB
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    restart: always
    volumes:
      - '~/docker/gitea/bd:/var/lib/postgresql/data'
    expose:
      - 5432
volumes:
  db_data:
  git_data:
EOF

Vamos a repasar los principales parámetros a modificar para adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
USER_UID=1000 UID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
USER_GID=1000 GID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
3000:3000 Puerto de acceso interfaz Web :3000
3022:22 Puerto de acceso gestión SSH :3022
~/docker/gitea/config:/data Ruta donde almacena la configuración
~/docker/gitea/bd:/var/lib/postgresql/data Ruta donde almacena la base datos
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

Una vez configurado, lo levantamos para ser creado y ejecutado:

docker-compose up -d

Tras ello, podremos configurar el servicio, que en mi caso estaría disponible en la dirección web http://192.168.1.90:3000 y continuar con el asistente:

Tras hacer clic en Instalar Gitea, lo próximo que veremos será la pantalla de Login con una bienvenida.

Lo que hay que hacer es darle un clic en Registro y registrar una nueva cuenta.

Importante definir que el primer usuario que se registre será administrador de Gitea:

Adicionalmente podremos configurar ciertas opciones adicionales editando el fichero de configuración:

nano $HOME/docker/gitea/config/gitea/conf/app.ini

Entre algunas destaco las siguientes:

Parámetro Función
DISABLE_REGISTRATION Deshabilitamos la opción de registrar nuevos usuarios, por defecto: false
ENABLE_CAPTCHA Habilitamos la opción de código CAPTCHA, por defecto: false
DEFAULT_KEEP_EMAIL_PRIVATE Habilitamos la opción de ocultar email, por defecto: false

Una vez configurado nuevas opciones, tendremos que reiniciar el contenedor:

docker-compose restart

Y listo!