Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+123
View File
@@ -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 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é)
```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