50% de descuento todos los planes, tiempo limitado. Desde $2.48/mo
gogs

gogs

Gogs es un sencillo servicio Git autohospedado. Más liviano que Gitea y GitLab, escrito en Go, funciona cómodamente en un VPS de 512 MB o incluso en una Raspberry Pi. El servidor Git original basado en Go, predecesor de Gitea, todavía se mantiene activamente para los usuarios que prefieren una superficie más pequeña.

Versión

0.14.2

Sistema operativo

Ubuntu Server 24.04 LTS

Mín. RAM

1 GB

Tipos de IP

IPV4,IPV6

Acceso

  • Abre tu navegador y visita: https://<SERVER_IP>
  • Es normal que aparezca un aviso SSL en el navegador (certificado autofirmado)
  • Registrar una nueva cuenta
  • La primera cuenta registrada se convierte en Administrador.

Deshabilitar el registro automático (opcional)

De forma predeterminada, el autorregistro de usuario está habilitado.

1. Edite el archivo de configuración: /etc/gogs/conf/app.ini

2. Bajo el [auth] sección, cambiar: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Reinicie Gogs:

systemctl restart gogs

Archivos y directorios importantes

  • Directorio de instalación: /opt/gogs
  • Archivo de configuración: /etc/gogs/conf/app.ini
  • Datos de la aplicación: /var/lib/gogs
  • Repositorios: /var/lib/gogs/repositories
  • Registros: /var/log/gogs
  • Servicio del sistema: /etc/systemd/system/gogs.service
  • Configuración de Nginx: /etc/nginx/sites-available/gogs.conf
  • Certificados TLS: /etc/nginx/ssl/

Uso de Git

HTTPS (certificado autofirmado):

GIT_SSL_NO_VERIFY=true git clone https://<SERVER_IP>/<USERNAME>/<REPOSITORY>.git

SSH (servidor integrado):

git clone ssh://git@<SERVER_IP>:2222/<USERNAME>/<REPOSITORY>.git

Gestión de servicios

Gafas:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Notas

  • El archivo de configuración principal se encuentra en /etc/gogs/conf/app.ini. Después de modificar el archivo de configuración, reinicie el servicio usando systemctl restart gogs.
  • El límite de carga de Nginx se define en /etc/nginx/sites-available/gogs.conf usando client_max_body_size. Auméntelo para repositorios grandes y reinicie Nginx.
  • Para implementaciones grandes, puede descomentar LimitMEMLOCK=infinity y LimitNOFILE=65535 in /etc/systemd/system/gogs.service, luego corre systemctl daemon-reload y reinicie Gogs.
  • Las credenciales de la base de datos se definen en /etc/gogs/conf/app.ini.
  • Para uso en producción, se recomienda reemplazar el certificado autofirmado por un certificado Let's Encrypt válido.
  • Si utiliza un certificado autofirmado, la clonación HTTPS requiere GIT_SSL_NO_VERIFY=true.

Habilitar SSL con un dominio

1. Apunta tu dominio a la IP del servidor.

2. Actualizar la configuración de Gogs (/etc/gogs/conf/app.ini):

EXTERNAL_URL = https://yourdomain.com/
DOMAIN = yourdomain.com
SSH_DOMAIN = yourdomain.com

3. Reinicie el servicio Gogs para aplicar los cambios:

systemctl restart gogs

3. Edite la configuración de Nginx y reemplace ambas. server_name <IP>; con tu dominio (<your-domain>) tanto para los bloques HTTP (puerto 80) como HTTPS (puerto 443):

vim /etc/nginx/sites-available/gogs.conf

4. Instale Certbot:

apt install -y certbot python3-certbot-nginx

5. Ejecute el siguiente comando para generar un certificado Let's Encrypt válido:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

6. Reemplace las rutas SSL en la configuración de Nginx:

vim /etc/nginx/sites-available/gogs.conf
# Before:
    # ssl_certificate /etc/nginx/ssl/gogs.crt;
    # ssl_certificate_key /etc/nginx/ssl/gogs.key;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

7. Reinicie Nginx para aplicar los cambios:

systemctl restart nginx

8. Abra su navegador y visite: https://yourdomain.com

Más en Herramientas DevOps

Apps relacionadas.

Implemente Gogs ahora. Desde $2,48/mes.