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?
- Instalar Docker-CE
- Instalar Docker Compose
- Implementar Gitea como Contenedor usando Docker
- Post-Instalación Gitea
- Crear primer repositorio
- 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.
- 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.