Initial vault setup
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user