Instale Gitea en una Raspberry Pi para crear su propio repositorio de código

Instale Gitea en una Raspberry Pi para crear su propio repositorio de código

Git es un sistema de control de versiones utilizado por desarrolladores de software, codificadores y expertos para colaborar y distribuir proyectos de código abierto. Con Git, puede manejar proyectos de cualquier tamaño, incorporar cambios de código y fusiones, y permitir que los usuarios clonen sus repositorios en sus propias máquinas. El ecosistema de código abierto se ejecuta en Git y muchos de los proyectos presentados en MakeUseOf.com implican el uso de recursos de GitHub. Con Gitea, puede alojar sus propios repositorios Git completamente funcionales en una Raspberry Pi en su propia casa.

¿Por qué alojar su propio servicio Git en Raspberry Pi en lugar de usar GitHub?

Una página del repositorio de GitHub que muestra una lista de archivos del código fuente de React

Con 55 millones de usuarios, GitHub es el depósito más grande de software gratuito y de código abierto en la Tierra, pero su propietario actual, Microsoft, no encaja de forma natural en el papel de custodio. Los directores ejecutivos anteriores de la compañía describieron Linux y la Licencia Pública General como «un cáncer», y la mayoría de los productos de Microsoft son propietarios y de código cerrado.

La propiedad de Microsoft también ha visto a GitHub explorar algunas tecnologías éticamente dudosas, en particular con GitHub Copilot, una herramienta de inteligencia artificial para ayudar a los programadores a generar código. Copilot fue entrenado con datos de GitHub, en posible violación de los términos de las licencias Creative Commons empleadas por los codificadores.

Al usar GitHub, los desarrolladores están creando otro cuello de botella en el que la innovación puede sofocarse, socavarse y someterse a interferencias frívolas.

Gitea te permite configurar tu propio servidor Git en Raspberry Pi

Gitea es una bifurcación de Gogs y es una solución de hospedaje de código liviano administrada por la comunidad escrita en Go y publicada bajo la licencia MIT. Su objetivo es tener un modelo de desarrollo más abierto y rápido que su predecesor, y se ejecutará en máquinas con recursos incluso modestos, como una Raspberry Pi. Podrá trabajar en sus dotfiles, ISO personalizados de Ubuntu, scripts de Bash y utilidades de Java y Python sin temor a que estén sujetos a una eliminación de DMCA, se utilicen para entrenar software nefasto o estén fuera de su control. .

Cómo instalar Gitea en tu Raspberry Pi

Gitea viene con varios métodos de instalación, pero el más fácil es a través de Docker. Si aún no los tiene en ejecución en su Raspberry Pi, instale Docker y Docker Compose ahora.

Los archivos que almacene en su servidor Gitea potencialmente ocuparán mucho espacio, por lo que sugerimos usar un almacenamiento externo con su Raspberry Pi y usarlo como la ubicación para su instalación Gitea.

Conéctese a su Pi a través de SSH, luego navegue a la ubicación donde desea instalar Gitea y cree un nuevo directorio, luego muévase a él:

mkdir gitea
cd gitea

Crea un nuevo archivo con nano:

nano docker-compose.yml

…y pegue el siguiente código en él:

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
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:gb
- /etc/localtime:/etc/localtime:gb
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

Cambie las zonas horarias a su propia configuración regional y elija una contraseña segura para su base de datos, luego guarde y salga de nano con Ctrl + O , luego Ctrl + X.

Ingresar:

docker-compose up -d

…para abrir docker-compose en modo separado. Docker-compose extraerá varias imágenes para Gitea y Maria DB y configurará contenedores. Dependiendo de la velocidad de su conexión, esto puede llevar algún tiempo.

docker-compose ps mostrando gitea y gitea_db_1 como arriba

Cuando regrese al símbolo del sistema:

docker-compose ps

…debería mostrar “gitea” y “gitea_db_1″ como “arriba”. Ahora puede visitar la página de configuración inicial de su sitio de Gitea en your.pi.local.ip.address:3000 .

No alteres nada todavía. Si planea acceder a su instancia de Gitea a través de Internet, primero debe prepararse un poco más.

Acceda a su instancia de Gitea a través de Internet

Desea poder escribir una URL estándar para poder llegar a su instancia de Gitea, por lo que necesitará Apache para manejar el proxy. Instale Apache con:

sudo apt install apache2

Ahora, inicie y habilite Apache con los siguientes comandos:

sudo systemctl start apache2
sudo systemctl enable apache2

Habilite los módulos proxy de Apache con:

sudo a2enmod proxy
sudo a2enmod proxy_http

Elija un nombre de dominio o un nombre de subdominio de un registrador acreditado. Luego, desde la página de configuración de su registrador, busque las opciones de ‘Advanced DNS’ y agregue un nuevo registro A. Establezca el campo Host en » y el campo de valor en su dirección IP estática. Establezca el valor TTL (Tiempo de arrendamiento) lo más bajo posible, luego guarde.

Abra la página de administración de su enrutador y busque una sección titulada Reenvío de puertos , Asignación de puertos o Administración de puertos.

Cree una nueva entrada para solicitudes HTTP. Establezca el puerto público y local en 80 y la dirección IP local en la dirección IP de su Raspberry Pi.

Se requiere un segundo puerto abierto para las solicitudes HTTPS. Establezca tanto el puerto local como el público en 443 y, nuevamente, la dirección IP local en la dirección IP de su Pi.

Finalmente, necesita un puerto abierto para solicitudes SSH a su servidor Git. Establezca el puerto público y local en 222 y la dirección IP local en la dirección IP de su Pi.

Utilizará Certbot para obtener certificados y claves de seguridad. Agregue el repositorio de Certbot, actualice e instale Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache

Cambie de directorio y cree un nuevo archivo con nano:

cd /etc/apache2/sites-available/
nano gitea.conf

En el nuevo archivo, pegue lo siguiente, asegurándose de copiar su propio nombre de dominio:

<VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Guarde y salga de nano con Ctrl + O , luego Ctrl + X , y habilite su nuevo archivo conf con:

sudo a2ensite gitea.conf

Reinicie Apache:

sudo service apache2 restart

Ejecute Certbot con:

sudo certbot

…y seleccione su nombre de dominio de una lista. Certbot buscará e instalará certificados y claves. Cuando regrese al indicador, reinicie Apache nuevamente:

sudo service apache2 restart

Configuración de la instancia de Gitea

Ahora puede visitar su instancia de Gitea en un navegador con la dirección https://your-domain-name.tld . Podrá establecer el tipo de base de datos, la contraseña y otras variables en la primera sección. Estos serán los valores que especificó en su archivo docker-compose y ya deberían estar completos, por lo que no es necesario cambiarlos.

En la configuración general , establezca el título del sitio en uno adecuado, el Dominio del servidor debe ser su nombre de dominio y el Puerto del servidor SSH debe establecerse en 222 . La URL base debe ser su nombre de dominio, incluido «HTTPS://».

Cuando haya terminado, presione el botón azul grande Instalar Gitea . Te recibirá una gran taza de té verde y el nombre y el slug que le hayas dado a la instancia. Para crear su primer usuario, haga clic en registrarse en la parte superior derecha de la página, luego ingrese sus datos. ¡Felicidades!

Para evitar que alguien más se registre y aloje sus propios repositorios en su servidor Git, debe editar el archivo app.ini . Si inicialmente creó su directorio gitea en el directorio / (raíz), ingrese:

nano /gitea/gitea/gitea/conf/app.ini

Desplácese hacia abajo hasta la sección de servicio y establezca DISABLE_REGISTRATION en verdadero.

gitea diable registro establecido en verdadero

Guarde y salga de nano con Ctrl + O , luego Ctrl + X, luego reinicie sus contenedores:

docker-compose downdocker-compose up -d

Usando Gitea

Si alguna vez ha usado GitHub, instantáneamente se sentirá como en casa en Gitea. Después de iniciar sesión, verá que no hay repositorios disponibles. Cree uno haciendo clic en el signo + a la derecha de la página y asígnele un nombre sensato.

creación del repositorio inicial de gitea

Puede optar por hacer que el repositorio sea privado marcando la casilla o dejarlo abierto para que el mundo lo vea. Marque la casilla para inicializar con un archivo Léame, luego haga clic en Crear repositorio para crear su primer repositorio. Puede realizar y confirmar cambios, cargar archivos y editar como si fuera GitHub.

Haga clic en SSH para copiar la dirección, y no podrá clonar repositorios en su máquina local, recibiendo un error: «Asegúrese de que tiene los derechos de acceso correctos y que el repositorio existe». Primero debe agregar la clave SSH de su máquina local a Gitea. Para hacer esto, copie la salida de:

cat ~/.ssh/id_rsa.pub

En su interfaz web de Gitea, haga clic en su foto de perfil, luego seleccione configuración > Claves SSH/GPG . Haga clic en Agregar clave y pegue la clave que acaba de copiar.

añadir clave ssh a gitea

¡Ahora puede interactuar con su propio repositorio Git en su propio servidor Git en su propia Raspberry Pi!

Use su instancia de Gitea para crear proyectos de software impresionantes

Git es una herramienta increíble para colaborar en proyectos increíbles, pero incluso sin un equipo, es fantástico para organizar su propio flujo de trabajo y crear software o configuraciones fabulosas. Úselo para ayudar a realizar un seguimiento de sus archivos a medida que aprende un nuevo lenguaje de programación o personaliza su sistema de escritorio para que sea lo mejor posible.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *