107 lines
5.8 KiB
Markdown
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]]
|