---
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 50–100 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é)

```yaml
# 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

```bash
# 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

- [Site officiel](https://gogs.io)
- [Documentation](https://gogs.io/docs)
- [Repository GitHub](https://github.com/gogs/gogs)
- [Selfh.st — Gogs](https://selfh.st/apps/?tag=Development)
- [Gogs vs Gitea — Comparatif](https://docs.gitea.io/en-us/comparison/)

## 🔗 Pages Liées

- [[cat-development]] — Catégorie Development
- [[app-gitea]] — Fork communautaire moderne de Gogs
- [[app-onedev]] — Forge DevOps tout-en-un
- [[app-code-server]] — Web IDE à coupler avec la forge
- [[app-traefik]] — Reverse-proxy HTTPS
- [[securisation-home-lab]] — Bonnes pratiques de sécurité
- [[recettes-docker-compose]] — Templates Docker
