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

107 lines
5.8 KiB
Markdown

---
title: Dribdat
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, tracking, hackathon, evenements, flask, python, civic-tech]
confidence: high
contested: false
sources: [https://selfh.st/apps/dribdat, https://github.com/dribdat/dribdat]
---
# Dribdat
> Une plateforme ludique et auto-hébergée pour organiser et animer des hackathons, sprints civiques et événements d'innovation ouverte, avec suivi temps réel des projets.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://dribdat.cc/ |
| **GitHub** | https://github.com/dribdat/dribdat |
| **License** | MIT |
| **Langage principal** | Python (Flask) |
| **Étoiles GitHub** | ⭐85 |
| **Dernière MAJ** | 2026-04-19 (v0.9.4) |
| **Catégorie** | [[cat-tracking]] |
## Description
Dribdat est né dans l'écosystème **civic tech** suisse pour répondre à un besoin précis : **fluidifier l'organisation de hackathons** (OpendataCH, MakeOpenData, SmartCity…) en fournissant un « challenge board » centralisé, visuel et engageant. Là où un tableau Trello ou un Google Doc se révèle vite chaotique avec 50+ participants, Dribdat structure l'événement en challenges documentés, équipes auto-organisées et progression visible en temps réel.
Le **cycle de vie complet d'un événement** est supporté : annonce, publication des challenges (description, ressources, mentors, prix), inscription des participants, formation d'équipes, soumission des projets, suivi de progression par étapes (idea → design → prototype → demo), jusqu'à la galerie des résultats. Chaque projet est associé à un **challenge parent** et à des **posts** qui documentent l'avancement (texte, images, liens). L'**agrégation automatique** depuis Git, Forgejo, Etherpad ou autres dépôts permet de peupler le projet sans ressaisie.
L'écosystème d'**intégrations** est riche pour un projet de cette taille : Slack, Mattermost, Discord, webhooks. La v0.9.4 a introduit un modèle « **Resource** » permettant d'attribuer explicitement les outils, datasets et modèles d'IA utilisés par chaque projet — une réponse pragmatique à l'ère de l'IA générative et de la nécessité de transparence. Le frontend par défaut est Bootstrap 5, mais un frontend alternatif moderne en Vue.js (**Backboard**) est disponible séparément. L'instance supporte aussi bien un hackathon ponctuel qu'un suivi long terme d'**équipes hexagonales** (« hexagonal teams », structure d'organisation horizontale).
## Installation
### Via Docker Compose (SQLite, démarrage rapide)
```yaml
services:
dribdat:
container_name: dribdat
image: dribdat/dribdat:latest
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- dribdat-data:/usr/src/app/data
environment:
- DRIBDAT_ENV=production
- DRIBDAT_SECRET=change...on
- DRIBDAT_SQLALCHEMY_DATABASE_URI=sqlite:////usr/src/app/data/dribdat.db
volumes:
dribdat-data:
```
Lancer `docker compose up -d` puis visiter `http://localhost:5000`. **Le premier utilisateur inscrit devient automatiquement administrateur** — créer son compte dès l'ouverture.
### Via Ansible / Heroku / PaaS
Le projet fournit des playbooks Ansible et un `Procfile` Heroku, ce qui permet un déploiement sur **Dokku**, **Fly.io**, **Scalingo** et autres PaaS compatibles.
### Installation manuelle
1. Python 3.10+ et Poetry
2. `git clone https://github.com/dribdat/dribdat`
3. `poetry install`
4. Configurer `.env` (SECRET, DATABASE_URL)
5. `poetry run python manage.py db upgrade`
6. `poetry run gunicorn dribdat.app:app`
## Configuration
- **Compte admin** : le premier inscrit a tous les droits, créer son compte dès l'instance fraîche.
- Configurer l'**événement courant** dans l'admin : dates, challenges, équipe organisatrice, branding.
- Personnaliser le **thème** via l'admin (couleurs, logo, page d'accueil).
- Brancher les **intégrations** : webhook Git/Forgejo pour sync auto, webhooks Slack/Discord pour notifications.
- Activer l'**envoi d'emails** (SMTP) pour les invitations et réinitialisations de mot de passe.
- **Sauvegarder** le volume `dribdat-data` (la base SQLite y est contenue).
## Alternatives
### Open source
- **Taiga** —项目管理 agile, pas spécifique hackathon mais très utilisé pour des sprints
- **Kanboard** — kanban générique auto-hébergé
- **Leantime** —项目管理 pour équipes créatives, peu d'événementiel
- **Open Event Server** (FOSSASIA) — plateforme événementielle généraliste (conférences, non hackathons)
### Propriétaires
- **Devpost** — la plateforme dominante de hackathons en ligne, freemium avec restrictions
- **Eventbrite** — billetterie événementielle, pas un challenge board
- **Hackathon.io** — plateforme communautaire, peu d'auto-hébergement
## Sécurité
- **Premier compte = admin** : créer votre compte en premier, **désactiver l'inscription publique** ensuite si l'événement est sur invitation.
- **HTTPS obligatoire** en production (Traefik/Caddy) — les mots de passe transitent en clair sinon.
- Le **SECRET** Flask doit être une valeur aléatoire forte (32+ caractères).
- Si vous utilisez l'**agrégation Git** avec des dépôts privés, configurer des **tokens d'accès** dédiés et limiter les scopes.
- Les **uploads** (images de projets) sont stockés dans le volume `data` : inclure dans les sauvegardes.
- **Sauvegardes SQLite** régulières (cron + copie hors-site) — toute la progression y est.
## Ressources
- Site officiel : https://dribdat.cc/
- Whitepaper : https://dribdat.cc/whitepaper
- Démo en ligne : https://demo.dribdat.cc/
- Dépôt GitHub : https://github.com/dribdat/dribdat
- Frontend alternatif (Backboard) : https://github.com/dribdat/backboard
- Liste awesome-hackathon : https://github.com/dribdat/awesome-hackathon
## Pages Liées
- [[cat-tracking]]
- [[recettes-docker-compose]]