--- 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](https://www.bugsink.com/) | | **GitHub** | [bugsink/bugsink](https://github.com/bugsink/bugsink) | | **License** | MIT | | **Langage** | Python (Django) | | **Étoiles GitHub** | 1,9k ⭐ | | **Dernière MAJ** | 2026-06-07 | | **Catégorie** | [[cat-monitoring\|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é) ```yaml # 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 ```bash pip install bugsink bugsink migrate bugsink runserver ``` ### Installation manuelle ```bash 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**) : ```python import sentry_sdk sentry_sdk.init(dsn="https://@bugsink.example.com/") ``` 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 - [Site officiel](https://www.bugsink.com/) - [Documentation](https://www.bugsink.com/docs/) - [GitHub bugsink/bugsink](https://github.com/bugsink/bugsink) - [Blog de Simon Willison](https://simonwillison.net/tags/bugsink/) - [Comparaison Sentry/Bugsink](https://www.bugsink.com/sentry-alternative/) ## 🔗 Pages Liées - [[cat-monitoring]] — Catégorie Monitoring - [[app-sentry]] — Référence du marché (alternative plus complète, plus lourde) - [[app-glitchtip]] — Clone Sentry Python (entre Sentry et Bugsink) - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques - [[recettes-docker-compose]] — Templates Docker