Files
2026-06-09 18:40:21 +02:00

5.5 KiB
Raw Permalink Blame History


title: Gogs created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, forge, git] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/gogs/gogs]

💻 Gogs

Forge Git ultra-légère écrite en Go — l'ancêtre de Gitea, encore plus minimaliste, conçue pour tourner sur un Raspberry Pi ou un NAS avec quelques Mo de RAM.

📋 Informations Générales

Attribut Valeur
Nom Gogs
Slug gogs
Description Forge Git ultra-légère (Go) — minimaliste, auto-hébergeable sur Raspberry Pi
Site officiel https://gogs.io
Repository https://github.com/gogs/gogs
Stars 47 585
Licence MIT
Langage principal Go
Catégorie Development
Tags [catalogue, development, forge, git]

📝 Description

Gogs (« Go Git Service ») est une forge Git ultra-légère écrite en Go, créée en 2014 par Unknwon. C'est historiquement le projet parent de Gitea : en 2016, des contributeurs mécontents de la gouvernance ont forké Gogs pour créer Gitea, qui a depuis largement dépassé Gogs en popularité et en fonctionnalités.

Gogs conserve néanmoins sa philosophie : un binaire unique, SQLite par défaut, 100 % MIT, RAM de l'ordre de 50100 Mo pour une instance personnelle. Les fonctionnalités restent volontairement plus limitées que Gitea/GitLab : pas de CI/CD natif (sauf via webhooks externes), pas de packages registry, pas de projects kanban, mais tout l'essentiel : dépôts Git, issues, pull requests, wiki, releases, webhooks, gestion d'organisation. Idéal pour un usage personnel : un Raspberry Pi, un vieux laptop, un NAS Synology — là où Gitea/GitLab seraient trop gourmands.

Modèle de licence : 100 % MIT, pas de version commerciale. Le développement a ralenti (releases moins fréquentes que Gitea) mais reste actif. Pour un self-host moderne, beaucoup préfèrent aujourd'hui Gitea (compat ascendante quasi totale, plus actif) ou Forgejo (fork communautaire de Gitea).

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: "3.8"
services:
  gogs:
    image: gogs/gogs:0.13
    container_name: gogs
    restart: unless-stopped
    ports:
      - "3000:3000"   # web UI
      - "2222:22"     # SSH Git
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - ./data:/data

  # Optionnel : PostgreSQL au lieu de SQLite pour la production
  db:
    image: postgres:13
    restart: unless-stopped
    environment:
      POSTGRES_USER: gogs
      POSTGRES_PASSWORD: ***changeme***
      POSTGRES_DB: gogs
    volumes:
      - ./postgres:/var/lib/postgresql/data

Installation manuelle

# Binaire Linux (consomme ~30 Mo de RAM au repos)
wget https://github.com/gogs/gogs/releases/download/v0.13.0/gogs_0.13.0_linux_amd64.tar.gz
tar -xzf gogs_0.13.0_linux_amd64.tar.gz
cd gogs && ./gogs web

# Configuration par défaut : SQLite + port 3000
# UI web : http://localhost:3000/install (assistant de premier lancement)

⚙️ Configuration

  • /data/gogs/conf/app.ini : fichier de configuration principal (équivalent INI du YAML Gitea).
  • Sections clés : [server] (DOMAIN, ROOT_URL, SSH_DOMAIN, SSH_PORT), [database] (DB_TYPE = sqlite3 ou postgres), [security] (REVERSE_PROXY_AUTHENTICATION_USER_HEADER), [service] DISABLE_REGISTRATION.
  • Premier lancement : visiter /install pour l'assistant web (création admin, choix DB, configuration SMTP).
  • SSH : Gogs embarque un serveur SSH interne sur le port 22 interne (mappé 2222 par défaut sur l'hôte), ou utiliser OpenSSH de l'hôte (START_SSH_SERVER = false + AuthorizedKeysCommand).
  • Backups : gogs backup (commande intégrée) exporte la base + les repos dans un tar.gz unique.

🔗 Alternatives

  • Gitea — Fork communautaire de Gogs, plus actif, plus de fonctionnalités (CI, packages, projects), même philosophie légère.
  • Forgejo — Fork de Gitea, gouvernance par fondation, 100 % communautaire.
  • GitLab CE — Forge complète mais lourde (≥4 Go RAM, plus complexe à administrer).
  • OneDev — Forge DevOps tout-en-un, plus orientée équipe/CI.

🔒 Sécurité

  • Expositions : Gogs écoute sur 3000 (web) et 22 interne (SSH Git) — ne jamais exposer 3000 sans reverse-proxy HTTPS.
  • Mises à jour : Gogs publie moins fréquemment que Gitea, mais reste sous maintenance — surveiller les CVE et planifier les montées de version.
  • 2FA : support natif TOTP depuis 0.13, à imposer pour les comptes admin.
  • Secrets : [security] SECRET_KEY doit être long et unique (sert à signer les sessions et les cookies).
  • Authorized keys : si vous utilisez l'option AuthorizedKeysCommand pour déléguer à OpenSSH, vérifier les permissions (0700 sur le home dir, 0600 sur les clés).

📚 Ressources

🔗 Pages Liées