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

Gogs

Gogs es un servicio Git autoalojado sin complicaciones. Más ligero que Gitea y GitLab, escrito en Go, funciona sin problemas en un VPS de 512 MB o incluso en una Raspberry Pi. El servidor Git original basado en Go, predecesor de Gitea, con mantenimiento activo para quienes prefieren una huella mínima.

Versión

0.14.2

Sistema operativo

Servidor Ubuntu 24.04 LTS

RAM mín.

1 GB

Tipos de IP

IPV4,IPV6

Acceso

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

Desactivar el autorregistro (opcional)

Por defecto, el autorregistro de usuarios está habilitado.

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

2. En la sección [auth] , cambia: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Reinicia 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 systemd: /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 del servicio

Gogs:

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. Tras modificar el archivo de configuración, reinicia el servicio con systemctl restart gogs.
  • El límite de subida de Nginx se define en /etc/nginx/sites-available/gogs.conf usando client_max_body_size. Auméntalo para repositorios grandes y reinicia Nginx.
  • Para despliegues de gran volumen, puedes descomentar LimitMEMLOCK=infinity y LimitNOFILE=65535 in /etc/systemd/system/gogs.service, luego ejecuta systemctl daemon-reload y reinicia Gogs.
  • Las credenciales de la base de datos se definen en /etc/gogs/conf/app.ini.
  • Para uso en producción, se recomienda sustituir el certificado autofirmado por un certificado válido de Let's Encrypt.
  • Si usas un certificado autofirmado, la clonación por HTTPS requiere GIT_SSL_NO_VERIFY=true.

Habilitar SSL con un dominio

1. Apunta tu dominio a la IP del servidor.

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

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

3. Reinicia el servicio Gogs para aplicar los cambios:

systemctl restart gogs

3. Edita la configuración de Nginx y reemplaza ambos server_name <IP>; con tu dominio («<your-domain>) para los bloques HTTP (puerto 80) y HTTPS (puerto 443):

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

4. Instala Certbot:

apt install -y certbot python3-certbot-nginx

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

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

6. Reemplaza 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. Reinicia Nginx para aplicar los cambios:

systemctl restart nginx

8. Abre tu navegador y visita: https://yourdomain.com

Más herramientas DevOps

Aplicaciones relacionadas.

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