GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Gitea Self-hosted Git Service usando Docker en Ubuntu 18.04

Gitea es una bifurcación de Gogs, el servicio Git autohospedado y fácil de usar. Es similar a GitHub, Bitbucket y Gitlab. Gitea es una solución de alojamiento de código ligera escrita en Go, puede ejecutarse con requisitos mínimos de hardware. Es una aplicación multiplataforma, se puede ejecutar en cualquier lugar donde se pueda compilar Go, como Windows, Linux, MacOS, ARM, etc.

En este tutorial, le mostraré paso a paso cómo instalar y configurar el servicio ligero de Git usando Gitea. Implementaremos el servidor Gitea usando Docker y usaremos la base de datos PostgreSQL y el proxy Traefik Reverse. Para esta guía, utilizaremos el servidor Ubuntu 18.04 más reciente.

Requisitos

  • Ubuntu 18.04
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar Docker-CE
  2. Instalar Docker Compose
  3. Implementar Gitea como Contenedor usando Docker
  4. Post-Instalación Gitea
  5. Crear primer repositorio
  6. Probando la primera confirmación

Paso 1:instalar Docker-CE

El primer paso que haremos para esta guía es instalar la edición comunitaria de Docker en el servidor Ubuntu 18.04. Instalaremos el paquete Docker CE desde el repositorio oficial de Docker.

Agregue Docker y el repositorio de Docker ejecutando los comandos a continuación.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

El comando 'add-apt-repository' actualizará automáticamente el repositorio.

Ahora instale el paquete Docker CE.

sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu

Cuando se complete la instalación, inicie el servicio Docker y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl start docker
sudo systemctl enable docker

Docker CE está funcionando en el servidor Ubuntu 18.04. Verifique la instalación comprobando la versión de docker.

docker version

o ejecute la ventana acoplable 'hello-world'.

docker run hello-world

Paso 2:instalar Docker Compose

Docker-Compose es una herramienta de línea de comandos para definir y administrar aplicaciones docker de varios contenedores. Le permite crear un contenedor como servicio, excelente para su entorno de desarrollo, prueba y preparación.

Instale Docker Compose descargando el archivo binario y conviértalo en un ejecutable.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Ahora comprueba el comando docker-compose.

docker-compose version

Docker Compose ya está instalado.

Paso 3:implementar Gitea como contenedor Docker

En este paso, crearemos un nuevo script docker-compose que contiene la configuración de todos los servicios, incluida la base de datos PostgreSQL y el proxy inverso Traefik. Configuraremos todos los archivos de implementación en el directorio denominado 'implementación'.

Crear red Docker personalizada

Antes de crear la configuración de implementación, creemos una nueva red de puente personalizada. Se utilizará para el servicio externo traefik proxy inverso.

Verifique la lista de la red acoplable.

docker network ls

Ahora cree una nueva red puente personalizada llamada 'hakasenet'.

docker network create hakasenet

Compruébalo de nuevo.

docker network ls

Ahora obtendrá la red 'hakasenet' en la lista.

Configurar directorio y archivos de implementación

Cree un nuevo directorio llamado 'implementación' y el script 'docker-compose.yml' en él.

mkdir deployment; cd deployment
touch docker-compose.yml

Ahora cree el nuevo directorio 'gitea' y el volumen de datos 'postgres'.

mkdir -p gitea/ postgres/

Cree un nuevo archivo 'acme.json' y cambie el permiso del archivo. se usará para almacenar datos de Letsencrypt.

touch acme.json
chmod 600 acme.json

Ahora cree el archivo de configuración global traefik 'traefik.toml'.

touch traefik.toml

Y debajo están los archivos y directorios que tenemos para la instalación de Gitea usando Docker.

tree

Configurar el servicio PostgreSQL

El servicio de base de datos PostgreSQL es el primer servicio que queremos configurar. El servicio de la base de datos solo se ejecutará en la red interna de Docker.

Y usaremos la imagen de Postgres 9.6, usando 'gitea' como nombre de base de datos, usuario y contraseña, y configuraremos el volumen de datos de Postgres.

Edite el archivo 'docker-compose.yml' usando vim.

vim docker-compose.yml

Pegue las configuraciones a continuación.

version: "3"

networks:
  hakasenet:
    external: true
  internal:
    external: false

services:
  db:
    image: postgres:9.6
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    labels:
      - "traefik.enable=false"
    networks:
      - internal
    volumes:
      - ./postgres:/var/lib/postgresql/data

Guardar y salir.

Configurar el proxy inverso de Traefik

Ahora configuraremos el proxy inverso de Traefik para nuestra instalación de Gitea.

El servicio traefik se ejecutará en los puertos predeterminados HTTP y HTTPS, se ejecutará en la red puente personalizada denominada 'hakasenet' y lo configuraremos para usar los certificados Letsencrypt que se definirán en el archivo 'traefik.toml'.

Edite el guión de redacción.

vim docker-compose.yml

Pegue las configuraciones en la configuración del servicio db.

  traefik:
    image: traefik:latest
    command: --docker
    ports:
      - 80:80
      - 443:443
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dashboard"
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    networks:
      - hakasenet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    container_name: traefik
    restart: always

Guardar y salir.

Ahora edite el archivo de configuración 'traefik.toml'.

vim traefik.toml

Y pega la siguiente configuración.

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#hakase and password
[entryPoints.dash]
address=":8080"
[entryPoints.dash.auth]
[entryPoints.dash.auth.basic]
    users = [
        "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.",
    ]

[api]
entrypoint="dash"
dashboard = true

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Guardar y salir.

Nota:

  • Cambie el correo electrónico acme letsencrypt con su dirección de correo electrónico válida.

Configurar Servicio Gitea

Edite el archivo de configuración 'docker-compose.yml'.

vim docker-compose.yml

Pegue la configuración del servicio gitea al final de la línea.

  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - internal
    volumes:
      - ./gitea:/data
    ports:
      - "3000"
      - "22"
    labels:
      - "traefik.enabled=true"
      - "traefik.backend=gitea"
      - "traefik.frontend.rule=Host:git.hakase-labs.io"
      - "traefik.docker.network=hakasenet"
      - "traefik.port=3000"
    networks:
      - internal
      - hakasenet
    depends_on:
      - db
      - traefik

Guardar y salir.

El servicio de Gitea se ejecutará en el puerto TCP '3000', utilizando esas dos redes acoplables 'interna' y 'hakasenet', y se ejecutará bajo el proxy inverso traefik en el dominio 'git.hakase-labs.io'.

Se ha completado la configuración de composición de Docker para la implementación de Gitea.

Implementar todos los servicios

Ahora implemente la pila usando el comando 'docker-compose' a continuación.

docker-compose up -d

El comando descargará todas las imágenes de la ventana acoplable necesarias y ejecutará los servicios definidos en el script de composición de la ventana acoplable.

Y cuando esté completo, verifique los servicios disponibles en Docker usando la opción ps como se muestra a continuación.

docker-compose ps

Ahora obtendrá el resultado como se muestra a continuación.

La base de datos PostgreSQL, Gitea y los contenedores de proxy inverso traefik ahora están en funcionamiento. El servicio de la base de datos se ejecuta en el puerto predeterminado '5432', el servidor gitea se ejecuta en el puerto '3000' y el proxy traefik se ejecuta en los puertos HTTP y HTTPS, accesibles desde la red externa/internet.

Si desea verificar todos los registros desde Docker Check, ejecute el comando a continuación.

docker-compose logs

Paso 4 - Posinstalación de Gitea

Abra su navegador web y escriba su URL de instalación de Gitea. El mío es:

https://git.hakase-labs.io/

Ahora obtendrá la página predeterminada de Gitea.

Agregue la ruta de instalación a la URL.

https://git.hakase-labs.io/install

Ahora obtendrá la página de instalación de Gitea.

Configuración de la base de datos

Escriba los detalles de la base de datos PostgreSQL y use 'db ' como anfitrión.

Configuración General Gitea

Cambia el 'Título del sitio' con tu propio título, el 'Dominio del servidor SSH' (sin https) y la 'URL base de Gitea' con la URL de tu servidor de Gitea.

Configuración de la cuenta de administrador

En la configuración del administrador, escriba el nombre de usuario, la contraseña y la dirección de correo electrónico del administrador.

Ahora haga clic en el botón 'Instalar Gitea'.

Y será redirigido al panel de usuario predeterminado de Gitea.

Paso 5 - Crear el primer repositorio en Gitea

En la página de inicio del usuario, haga clic en '+' botón.

Ahora escriba los detalles del repositorio que desea crear.

y haga clic en el botón 'Crear repositorio'.

El repositorio ha sido creado.

Paso 6:prueba del primer compromiso

Vuelva al shell de su terminal y configure el usuario y el correo electrónico predeterminados de git.

Ejecute los comandos de git a continuación.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

Ahora clona el repositorio.

git clone https://git.hakase-labs.io/hakase/myrepo.git

Vaya al directorio del repositorio 'myyrepo' y edite el archivo README.md.

cd myrepo/
vim README.md

realice cambios en el archivo README, luego guarde y salga.

Ahora confirme el repositorio.

git add .
git commit -m 'Edit the README.md file by hakase-labs'

Y empújelo al servidor.

git push origin master

Escriba su nombre de usuario y contraseña.

Y el siguiente debería ser el resultado.

Consulte la página del repositorio y asegúrese de obtener los cambios que se muestran a continuación.

La instalación de Gitea con Docker en Ubuntu 18.04 se ha completado con éxito.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 18.04

  2. Cómo instalar Git en Ubuntu 18.04 / 20.04

  3. Cómo instalar Kubernetes en Ubuntu 18.04

  4. Cómo instalar Docker Compose en Ubuntu 18.04

  5. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

Cómo instalar Docker en Ubuntu 20.04, 18.04, 21.04

Cómo instalar Docker en Ubuntu 14.04

Cómo instalar Git en Ubuntu 15.04

Cómo instalar Git en Ubuntu 16.04

Cómo instalar Gitea en Ubuntu usando Docker

Cómo instalar Gitea en Ubuntu 22.04