5.5 KiB
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é)
# 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
/installpour 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_KEYdoit être long et unique (sert à signer les sessions et les cookies). - Authorized keys : si vous utilisez l'option
AuthorizedKeysCommandpour déléguer à OpenSSH, vérifier les permissions (0700sur le home dir,0600sur les clés).
📚 Ressources
🔗 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