Gitea: 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!