150 lines
6.3 KiB
Markdown
150 lines
6.3 KiB
Markdown
---
|
|
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://<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
|
|
|
|
- [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
|