ladigitale/digiboard
3
1
Fork
You've already forked digiboard
3
Une application en ligne pour créer des tableaux collaboratifs
  • JavaScript 68.5%
  • HTML 16%
  • CSS 9.2%
  • Vue 5.8%
  • Dockerfile 0.4%
  • Other 0.1%
Find a file
2026年07月14日 07:51:33 +02:00
components Rename pages and components 2026年07月08日 12:36:25 +02:00
pages Update tableau.js 2026年07月13日 20:09:45 +02:00
public Code refactor, improved security, accessibility and error management, bug fixes 2026年07月06日 11:36:00 +02:00
renderer Update style.css 2026年07月13日 19:29:42 +02:00
server Update app.js (server) 2026年07月14日 07:51:33 +02:00
static Change from Nuxt.js to Vite SSR Plugin 2023年06月05日 20:32:10 +02:00
.dockerignore Add docker support 2026年07月13日 20:10:25 +02:00
.gitignore Update fonts 2024年12月12日 18:45:08 +01:00
.prettierrc.mjs Code refactor, improved security, accessibility and error management, bug fixes 2026年07月06日 11:36:00 +02:00
docker-compose.override.yml Add docker support 2026年07月13日 20:10:25 +02:00
docker-compose.yml Add docker support 2026年07月13日 20:10:25 +02:00
docker-production.sh Add docker support 2026年07月13日 20:10:25 +02:00
Dockerfile Add docker support 2026年07月13日 20:10:25 +02:00
ecosystem.config.cjs Code refactor, improved security, accessibility and error management, bug fixes 2026年07月06日 11:36:00 +02:00
eslint.config.js Code refactor, improved security, accessibility and error management, bug fixes 2026年07月06日 11:36:00 +02:00
LICENSE Change license from GPL to AGPL 2023年04月29日 18:06:49 +02:00
package.json Bump version to 0.9.0 2026年07月13日 20:10:36 +02:00
README.md Update README.md 2026年07月14日 07:45:29 +02:00
vite.config.js Code refactor, improved security, accessibility and error management, bug fixes 2026年07月06日 11:36:00 +02:00

Digiboard

Digiboard est une application en ligne pour créer des tableaux blancs collaboratifs.

Elle est publiée sous licence GNU AGPLv3. Sauf la fonte Material Icons (Apache License Version 2.0) et la fonte Mona Sans Expanded (Sil Open Font Licence 1.1).

Prérequis

Node.js 22+, Redis 7+

Préparation et installation des dépendances

npm install

Lancement du serveur de développement sur localhost:3000

npm run dev

Variables d'environnement (fichier .env à créer à la racine du dossier)

DOMAIN (protocole + domaine. ex : https://digiboard.app / seulement utilisée en production)
PORT (port du serveur local / 3000 par défaut)
REVERSE_PROXY (utilisation d'un reverse proxy qui permet de servir les fichiers à la place d'Express (Nginx par exemple) / 0 ou 1 / 0 par défaut)
NODE_CLUSTER (utilisation de node.js en cluster / 0 ou 1 / 0 par défaut)
EARLY_HINTS (utilisation par le serveur des early hints et du code de statut 103 / 0 ou 1 / 0 par défaut)
DB_HOST (IP du serveur de base de données Redis)
DB_PWD (mot de passe de la base de données Redis)
DB_PORT (port de la base de données Redis / 6379 par défaut)
SESSION_KEY (clé de session Express Session)
SESSION_DURATION (durée de la session de connexion des utilisateurs en millisecondes)
COOKIE_SECURE (cookie de session en Secure + SameSite=None en production / 0 ou 1 / 1 par défaut / mettre à 0 uniquement pour tester en HTTP local avec Docker)
VITE_UPLOAD_LIMIT (taille maximale de téléversement des fichiers en Mo / 5 Mo par défaut)
VITE_PIXABAY_API (clé API pour recherche sur Pixabay)
AUTHORIZED_DOMAINS (domaines autorisés pour api serveur. ex : ladigitale.dev,example.com / par défaut *)
VITE_SITES_EMBED (domaines autorisés pour embed dans les liens. ex : ladigitale.dev,example.com / par défaut *)
VITE_STORAGE (type de stockage pour les fichiers - fs ou s3 / fs - filestorage par défaut)
VITE_S3_PUBLIC_LINK (lien public vers les contenus du conteneur d'objets S3)
S3_SERVER_TYPE (aws ou minio / aws par défaut)
S3_ENDPOINT (endpoint S3)
S3_ACCESS_KEY (clé d'accès S3)
S3_SECRET_KEY (clé secrète d'accès S3)
S3_REGION (région du conteneur S3)
S3_BUCKET (nom du conteneur s3)
S3_MAX_SOCKETS (nombre maximum de sockets pour httpsAgent du client S3)
ENCRYPTION_KEY (clé pour decrypter les données Digidrive / uniquement nécessaire si Digidrive est utilisé)
VITE_LEGAL_TERMS_LINK (lien vers les mentions légales)
UMAMI_SCRIPT_URL (lien vers le script fourni par Umami pour l'analyse de trafic)
UMAMI_WEBSITE_ID (id de site sur le serveur Umami)

Compilation et minification des fichiers pour la production

npm run build

Avec PM2

pm2 start ecosystem.config.cjs --env production

Avec Docker

Le dépôt fournit un Dockerfile (build multi-étapes : compilation Vite/Vike puis image de production) ainsi que deux fichiers docker-compose : docker-compose.yml (Traefik + app + Redis) et docker-compose.override.yml, chargé automatiquement en complément pour adapter la configuration à un test en local.

Dans les deux cas, un fichier .env doit être créé à la racine du dossier avec au minimum les variables DB_PWD et SESSION_KEY pour un test en local et DOMAIN, DB_PWD, SESSION_KEY et ACME_EMAIL (adresse e-mail utilisée pour la génération des certificats Let's Encrypt) pour un déploiement en production.

Test local

docker compose up --build

L'override désactive Traefik, expose directement l'application sur http://localhost:3000 et force COOKIE_SECURE=0 pour permettre de tester la connexion à un compte en HTTP local.

Production

En production, Traefik gère les certificats HTTPS (Let's Encrypt) et dirige les requêtes vers l'application.

Lancer le déploiement avec le profil Traefik activé :

./docker-production.sh

Les fichiers utilisateurs (static/fichiers) et les données Redis persistent entre les redéploiements.

Les variables VITE_* utilisées côté client sont injectées au moment de la construction de l'image : toute modification de ces variables dans .env nécessite de reconstruire l'image pour être prise en compte.

Démo

https://digiboard.app

Comment contribuer ?

Pour signaler des bugs, proposer des améliorations ou de nouvelles fonctionnalités, vous pouvez ouvrir un ticket sur ce dépôt, publier un message sur ce mur ou m'envoyer un e-mail.

Les demandes d'ajouts (Pull Requests) ne sont pas acceptées pour le moment. En effet, une contribution au code nécessite souvent plusieurs heures pour être révisée et commentée et ce n'est pas toujours compatible avec les priorités et le temps que je peux consacrer au projet.

Il est possible de soutenir financièrement le projet via Liberapay, Open Collective ou Stripe.

Vous trouverez d'autres idées de contribution sur cette page.

Merci pour votre soutien ! N'hésitez pas à me contacter si vous avez des questions.

Remerciements et crédits

Traduction en italien par Paolo Mauri

Traduction en allemand par kate, Dirk, Alexander Weller et ThetaDev

Traduction en espagnol par fersdt et gallegonovato