Retour aux outils
Dev ToolsIntermédiaireOpen sourceAuto-hébergeable

Opengist

**Opengist** est un pastebin moderne écrit en Go, avec gestion multi-utilisateur, snippets Git-like,

MAJ 2026-06-14
Opengist
Site officiel Code source

Opengist s'inspire de GitHub Gist et de GitLab Snippets pour proposer une alternative auto-hébergée, avec une gestion fine des utilisateurs et des permissions. Chaque snippet est en fait un mini-dépôt Git, ce qui permet de versionner l'historique, de cloner localement, et de forker comme sur un vrai

Description

Opengist s'inspire de GitHub Gist et de GitLab Snippets pour proposer une alternative auto-hébergée, avec une gestion fine des utilisateurs et des permissions. Chaque snippet est en fait un mini-dépôt Git, ce qui permet de versionner l'historique, de cloner localement, et de forker comme sur un vrai forge.

L'interface web est en Go (template HTML), ce qui la rend rapide et légère. L'application supporte les multi-fichiers dans un même snippet (un dossier de plusieurs fichiers), les syntaxes colorées pour 100+ langages via highlight.js, l'organisation par dossiers et tags, et un système de likes/fork. L'authentification peut être locale (email/password) ou branchée sur OAuth2 (GitHub, GitLab, Google, OpenID Connect).

L'écosystème est riche : API REST, webhooks, exports Git, intégration Continue (VS Code, JetBrains) via l'extension officielle. C'est un excellent choix pour des équipes de développement qui veulent partager du code en interne, commenter des snippets, et garder un historique des révisions sans dépendre de GitHub Gist.

Installation

Docker Compose (recommandé)

services:
  opengist:
    image: ghcr.io/thomiceli/opengist:latest
    container_name: opengist
    restart: unless-stopped
    networks:
      - web
      - internal
    environment:
      - OG_LISTEN_IP=0.0.0.0
      - OG_LISTEN_PORT=6157
      - OG_SECRET_KEY=***      - OG_DOMAIN=snippet.example.com
      - OG_PROTO=https
      - DB_TYPE=postgres
      - DB_CONNECTION=postgresql://opengist:***@db:5432/opengist?sslmode=disable
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.opengist.rule=Host(`snippet.example.com`)"
      - "traefik.http.routers.opengist.tls.certresolver=letsencrypt"
      - "traefik.http.services.opengist.loadbalancer.server.port=6157"
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    networks:
      - internal
    environment:
      - POSTGRES_USER=opengist
      - POSTGRES_PASSWORD=***      - POSTGRES_DB=opengist
    volumes:
      - opengist-db:/var/lib/postgresql/data

networks:
  web:
    external: true
  internal:

volumes:
  opengist-db:

Installation manuelle

  1. git clone https://github.com/thomiceli/opengist.git
  2. Prérequis : Go 1.22+, PostgreSQL 13+ (ou SQLite par défaut).
  3. Compiler : go build -o opengist .
  4. Configurer config.yml et lancer ./opengist.

Configuration

  • OG_SECRET_KEY : chaîne aléatoire pour les sessions.
  • OG_DOMAIN : le FQDN public.
  • Configurer OAuth2 (GitHub/GitLab/Google) si besoin d'auth externe.
  • Activer les webhooks pour notifier les channels Slack/Discord/Teams.
  • Brancher un reverse proxy (Traefik/Caddy) avec TLS en frontal.

Alternatives

Open Source

  • [[app-pastefy]] — Java, multi-user, organisation, plus jeune.
  • [[app-privatebin]] — PHP, E2E, pastebin simple, sans versioning.
  • [[app-wastebin]] — Go, minimaliste, sans multi-user.
  • [[app-paaster]] — TypeScript, E2E, moderne.
  • [[app-chiyogami]] — Go + E2E, interface moderne.

Propriétaires (ce que cette app remplace)

  • gist.github.com — snippets GitHub, privé si compte GH, public sinon.
  • gitlab.com/snippets — snippets GitLab, intégré au forge.
  • pastebin.com — fermé en 2024 puis repris, pas de versioning.
  • hastebin.com — minimaliste, pas de versioning.

Sécurité

  • OG_SECRET_KEY : chaîne aléatoire longue, à protéger.
  • OAuth2 : configurer au moins un provider, ne pas laisser l'inscription ouverte.
  • HTTPS strict : service exposé, ne jamais servir en HTTP.
  • Backups Postgres + Git repos : sauvegarder à la fois la DB et le dossier repos/.
  • CSP headers : Opengist applique un CSP strict, à conserver.

Ressources

  • Site officiel : https://opengist.io
  • Code source : https://github.com/thomiceli/opengist
  • Documentation : https://opengist.io/docs
  • Démo : https://opengist.io
  • API : https://opengist.io/docs/api
  • Communauté : https://github.com/thomiceli/opengist/discussions