Files
2026-06-09 18:40:21 +02:00

6.3 KiB


title: Bugsink created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, monitoring, error-tracking, sentry-alternative, python, django] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/bugsink/bugsink]

💻 Bugsink

L'alternative Sentry self-hosted, légère et respectueuse : capturez vos erreurs applicatives sans la lourdeur de Sentry, compatible avec le SDK Sentry existant, et conçu pour les petits volumes comme pour la production.

📋 Informations Générales

Champ Valeur
Site web bugsink.com
GitHub bugsink/bugsink
License MIT
Langage Python (Django)
Étoiles GitHub 1,9k
Dernière MAJ 2026-06-07
Catégorie cat-monitoring, Error Tracking (alternative Sentry)

📝 Description

Bugsink est un error tracker self-hosted écrit en Python/Django, conçu par Simon Willison (créateur de Django co-founder, Datasette) comme une alternative plus simple, plus légère, et 100% open source à Sentry. Le pari : offrir un sous-ensemble des fonctionnalités Sentry (capture d'exceptions, alertes, groupement) sans la complexité d'un stack à 15 services (PostgreSQL, Redis, Kafka, ClickHouse, Snuba…).

Concrètement, Bugsink utilise SQLite par défaut (un seul fichier !), est compatible avec le SDK Sentry (envelope endpoint, source maps), et reste performant jusqu'à plusieurs millions d'événements grâce à un schéma de données soigneusement optimisé. L'interface est volontairement épurée et lisible : on voit immédiatement les nouveaux événements, les issues groupées, les tendances.

Pour les équipes qui ont trouvé Sentry self-hosted trop lourd (l'image Docker officielle fait 1+ Go, 8 Go de RAM recommandés) ou GlitchTip pas assez complet, Bugsink représente un excellent compromis : simple à déployer, complet sur l'essentiel, et vraiment open source (MIT, pas de FSL).

Public cible : développeurs solos, petites équipes, indie hackers, projets personnels qui veulent un error tracker qui juste marche, sans Datadog.

Fonctionnalités principales

  • Compatibilité SDK Sentry : les apps existantes migrent en 1 ligne (changement de DSN)
  • Groupement intelligent : fingerprints, similarité, déduplication
  • Source maps : débuggage code minifié JS
  • Release tracking : corrélation avec déploiements
  • Alertes email : nouveaux problèmes, pics d'erreurs
  • Interface Django admin custom, sobre et rapide
  • SQLite par défaut : zéro-setup, idéal pour démarrer
  • PostgreSQL/MySQL : supporté pour les gros volumes
  • API REST : ingestion, listing, management
  • Multi-projets : séparés par tag project
  • Retention configurable : 30j, 90j, 1an
  • Pas de vendor lock-in : export des données en JSON/CSV

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: '3.8'
services:
  bugsink:
    image: bugsink/bugsink:latest
    container_name: bugsink
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      DEBUG: "false"
      SECRET_KEY: "changez-moi-en-production-50-chars-random"
      ALLOWED_HOSTS: "bugsink.example.com"
      DATABASE_URL: "sqlite:////data/bugsink.db"
      SINGLE_USER: "admin@example.com"
    volumes:
      - bugsink_data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bugsink.rule=Host(`bugsink.example.com`)"
      - "traefik.http.routers.bugsink.entrypoints=websecure"
      - "traefik.http.routers.bugsink.tls.certresolver=letsencrypt"

volumes:
  bugsink_data:

Via pip

pip install bugsink
bugsink migrate
bugsink runserver

Installation manuelle

git clone https://github.com/bugsink/bugsink.git
cd bugsink
pip install -e .
python manage.py migrate
python manage.py runserver

⚙️ Configuration

  1. Créer le compte admin : python manage.py createsuperuser ou via SINGLE_USER
  2. Créer un projet : admin > Projects > New (récupère le DSN)
  3. Intégrer le SDK dans votre app (le DSN Bugsink est compatible Sentry) :
    import sentry_sdk
    sentry_sdk.init(dsn="https://<key>@bugsink.example.com/<project>")
    
  4. Configurer les alertes : Settings > Alerts > email destinataires
  5. Source maps : uploader via sentry-cli releases (même CLI que Sentry)
  6. Retention : BUGSINK_RETENTION_DAYS=90 dans l'env

🔗 Alternatives

  • Sentry — Standard du marché, mais self-hosted lourd (FSL, 8 Go RAM min)
  • GlitchTip — Clone Sentry en Python/Django, plus complet que Bugsink
  • Errbit — Error tracker Ruby historique, plus maintenu
  • Highlight.io — Error tracking + session replay, commercial
  • Posthog — Module error tracking intégré (avec analytics produit)
  • SigNoz — APM complet (traces + errors + metrics), plus large que Bugsink

🔒 Sécurité

  • 🔐 SECRET_KEY robuste : openssl rand -hex 50 minimum
  • 🛡️ HTTPS obligatoire via app-traefik : les DSN et payloads d'erreur transitent en clair sinon
  • 🔒 DSN en secret : ne pas exposer publiquement (même s'il est en lecture seule, c'est un canal d'écriture)
  • 🛡️ Scrubbing PII : configurer before_send côté SDK pour filtrer emails, mots de passe
  • 🛡️ Rétention : définir une durée de rétention raisonnable (90j suffit en général, RGPD)
  • 🛡️ Auth admin : activer 2FA pour le compte admin

📚 Ressources

🔗 Pages Liées