Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

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?

Con 55 millones de usuarios, GitHub es el repositorio más grande de software libre y de código abierto en la Tierra, pero su propietario actual, Microsoft, no encaja naturalmente 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.

instagram viewer

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ás trabajar en tus 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 ejecutándose en su Raspberry Pi, instalar Docker y Docker Compose ahora.

Los archivos que almacene en su servidor Gitea potencialmente ocuparán mucho espacio, por lo que le sugerimos usando almacenamiento externo con su Raspberry Pi, y usándolo como la ubicación para su instalación de 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:

nanodocker-compose.yml

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

versión: "3"

redes:
gitea:
externo: falso

servicios:
servidor:
imagen: gitea/gitea: últimas
nombre_contenedor: gitea
ambiente:
- UID_USUARIO=1000
- USUARIO_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__base de datos__HOST=db: 3306
- GITEA__database__NOMBRE=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
reiniciar: siempre
redes:
- gitea
volúmenes:
- ./gitea:/datos
- /etc/timezone:/etc/timezone: gb
- /etc/localtime:/etc/localtime: gb
puertos:
- "3000:3000"
- "222:22"
depende de:
- base de datos

base de datos:
imagen: mysql: 8
reiniciar: siempre
ambiente:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
redes:
- gitea
volúmenes:
- ./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 Control + O, entonces Ctrl + X.

Ingresar:

ventana acoplable-componer hasta -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.

Cuando regrese al símbolo del sistema:

docker-componer ps

…debería mostrar "gitea" y "gitea_db_1" como "arriba". Ahora puede visitar la página de configuración inicial para su sitio de Gitea en su.pi.local.ip.dirección: 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 apto instalar apache2

Ahora, inicie y habilite Apache con los siguientes comandos:

sudo systemctl comenzar apache2
sudo systemctl permitir apache2

Habilite los módulos proxy de Apache con:

proxy sudo a2enmod
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 A registro. Selecciona el Anfitrión campo a "@" y el campo de valor a 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, La asignación de puertos, o Gestión Portuaria.

Cree una nueva entrada para solicitudes HTTP. Establezca tanto el puerto local como el público en 80y la dirección IP local a 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 a la dirección IP de su Pi.

Finalmente, necesita un puerto abierto para solicitudes SSH a su servidor Git. Establezca tanto el puerto local como el público en 222y la dirección IP local a 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-repositorio ppa: certbot/certbot
sudo apto actualizar
sudo apt-conseguir instalar python3-certbot-apache

Cambie de directorio y cree un nuevo archivo con nano:

cd /etc/apache2/sites-available/
nanogitea.conf

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

<Servidor virtual *: 80>ServerName su-dominio-nombre.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost activado</VirtualHost>

Guardar y salir de nano con Control + O, entonces Control + Xy habilite su nuevo archivo conf con:

sudoa2ensitegitea.conf

Reinicie Apache:

reinicio del servicio sudo apache2

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:

reinicio del servicio sudo apache2

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 Configuración general, selecciona el Título del sitio a uno adecuado, Dominio del servidor debe ser su nombre de dominio y Puerto del servidor SSH debe establecerse en 222. La URL base debe ser su nombre de dominio, incluido "HTTPS://".

Cuando termines, presiona el gran azul Instalar Gitea botón. 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 app.ini archivo. Si inicialmente creó su gitea directorio 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 DESHABILITAR_REGISTRO a la verdad

Guardar y salir de nano con Control + O, entonces Control + X, luego reinicie sus contenedores:

docker-compose downdocker-compose arriba -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 + firme hacia la derecha de la página y asígnele un nombre sensato.

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 tu 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:

gato ~/.ssh/id_rsa.pub

En su interfaz web de Gitea, haga clic en su foto de perfil, luego elija ajustes> Claves SSH/GPG. Haga clic en Agregar clavey pegue la clave que acaba de copiar.

¡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 increíbles

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.