Au-delà du tableur classique, NocoDB propose des vues Kanban, Calendar, Gallery, Form qui transforment votre base en outil collaboratif puissant. Voici les patterns courants.
Voir notre guide NocoDB complet.
Vue Kanban (suivi tâches)
- Sur table « Tâches » → Add View → Kanban
- Stack By : champ Single Select « Status » (To Do / In Progress / Done)
- Cover Image : champ image attachée
- Couleur des cartes : champ couleur ou priority
- Drag & drop entre colonnes change le status en base
Vue Calendar (planning)
- Add View → Calendar
- Date Field :
due_date - End Date Field :
end_date(optionnel pour ranges) - Drag pour reprogrammer un événement
Vue Gallery (catalogue produits)
- Add View → Gallery
- Cover : champ image (photo produit)
- Display : titre, prix, catégorie
- Filter : produits en stock uniquement
Vue Form (collecte de données)
- Add View → Form
- Réordonner / cacher des champs
- Champs requis
- Custom intro text et logo
- Share → Public link → embed iframe ou lien direct
- Optionnel : webhook après soumission (via n8n)
Filtres et tris dans une vue
Chaque vue peut avoir ses propres filtres, tri, champs visibles. Vue « Mes tâches en cours » = filter assignee=moi && status=in_progress, tri par priority desc.
Permissions par vue
NocoDB permet de partager une vue sans donner accès à toute la base. Idéal pour partager un kanban projet à un client externe sans exposer le reste.
Sur le même thème
Etape 1 : Pourquoi NocoDB pour les PME ouest-africaines
NocoDB transforme une base SQL classique (MySQL, Postgres, SQLite) en interface type Airtable, en self-hosted. C’est une alternative serieuse aux solutions SaaS payantes en USD, particulierement pertinente quand le forfait Airtable a 20 USD par utilisateur et par mois pese sur le budget d’une PME a Bamako ou Abidjan. La version stable de NocoDB en 2026 est la 0.260, distribuee comme image Docker officielle nocodb/nocodb sur Docker Hub.
L’objectif de ce tutoriel : monter NocoDB sur un VPS, creer une table de gestion de prospects, et exposer trois vues differentes — un formulaire public pour collecter, une vue Kanban pour le suivi commercial, et une grille filtree pour le reporting. Trois interfaces, une seule base de donnees.
Etape 2 : Provisionner un VPS adapte
NocoDB tourne confortablement sur un VPS 2 vCPU et 2 Go de RAM tant qu’on reste sous 100k lignes par table. Pour un usage equipe de 5 a 20 personnes avec quelques milliers de lignes, un VPS Hetzner CX22 (4,51 EUR par mois soit environ 2960 FCFA) est largement suffisant. Pour une latence reduite vers l’Afrique de l’Ouest, le datacenter Hetzner de Helsinki donne des temps de reponse de 110 a 140 ms vers Dakar — meilleur que la plupart des hebergeurs francais en realite.
Provisionnez Ubuntu 24.04 LTS, ouvrez les ports 22 (SSH), 80 et 443 dans le firewall. Connectez-vous en SSH et passez en root pour la suite.
Etape 3 : Installer Docker et docker compose
NocoDB se deploie en quelques lignes via Docker Compose. On evite ainsi les conflits de versions Node et on profite des mises a jour faciles via docker compose pull.
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
docker --version
Vous devez voir Docker version 27.x ou superieure. Sur Ubuntu 24.04, le plugin docker compose est installe automatiquement par le script officiel — verifiez avec docker compose version. Si vous obtenez une erreur de plugin manquant, installez le paquet docker-compose-plugin via apt.
Etape 4 : Ecrire le docker-compose.yml de production
Creez un dossier /srv/nocodb et placez-y le fichier suivant. Postgres comme datastore, NocoDB en mode production avec NC_DB pointant sur le conteneur Postgres, et un volume persistant pour les uploads.
services:
nocodb:
image: nocodb/nocodb:0.260
environment:
NC_DB: "pg://db:5432?u=nocodb&p=CHANGE_ME&d=nocodb"
NC_PUBLIC_URL: "https://nocodb.exemple.sn"
volumes:
- ./data:/usr/app/data
ports:
- "8080:8080"
depends_on: [db]
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: nocodb
POSTGRES_PASSWORD: CHANGE_ME
POSTGRES_DB: nocodb
volumes:
- ./pg:/var/lib/postgresql/data
Remplacez CHANGE_ME par un mot de passe fort genere via openssl rand -base64 24. Lancez avec docker compose up -d. Apres 20 a 30 secondes (initialisation Postgres), NocoDB ecoute sur le port 8080.
Etape 5 : Mettre un reverse proxy Caddy devant
NocoDB seul ne gere pas TLS. Caddy automatise Let’s Encrypt et offre un fichier de configuration de 4 lignes. Installez Caddy via le paquet officiel.
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' > /etc/apt/sources.list.d/caddy.list
apt update && apt install -y caddy
Configurez /etc/caddy/Caddyfile avec votre domaine. Caddy va automatiquement obtenir un certificat valide et le renouveler tout seul tous les 90 jours.
nocodb.exemple.sn {
reverse_proxy localhost:8080
}
systemctl reload caddy puis testez https://nocodb.exemple.sn — vous devez voir l’ecran de creation du premier admin NocoDB. Choisissez un email et un mot de passe long.
Etape 6 : Creer la table Prospects avec les bons champs
Dans l’interface NocoDB, creez un nouveau projet, puis une table Prospects. Ajoutez les colonnes : nom (text), telephone (PhoneNumber), email (Email), source (Single Select avec valeurs Facebook/Instagram/WhatsApp/Bouche-a-oreille), montant_estime (Number), statut (Single Select avec Nouveau/Contacte/Devis/Gagne/Perdu), prochaine_action (Date), notes (LongText).
Le type PhoneNumber valide automatiquement le format international. Activez l’option « Show Country Code » pour avoir des numeros au format +221, +225, +237 — indispensable si vous integrez plus tard un envoi de SMS via Twilio ou Africa’s Talking.
Etape 7 : Creer une vue Formulaire publique
Dans la barre laterale gauche de la table, cliquez sur le + a cote de Views et choisissez Form. Selectionnez les champs a afficher (nom, telephone, email, source, notes) et masquez statut et prochaine_action — ces champs sont remplis cote interne.
Cliquez sur Share View dans la barre du haut, generez le lien public et activez « Allow user to submit response ». Vous obtenez une URL du type nocodb.exemple.sn/dashboard/#/nc/form/abc123 que vous pouvez partager sur WhatsApp Business, integrer dans une story Instagram, ou inclure dans la signature email de l’equipe commerciale.
Etape 8 : Configurer la vue Kanban par statut
Toujours dans Views, ajoutez Kanban. NocoDB demande quel champ Single Select sert de colonne — choisissez statut. Les 5 statuts deviennent 5 colonnes drag-and-drop : Nouveau, Contacte, Devis, Gagne, Perdu.
Personnalisez la carte en affichant nom + telephone + montant_estime + prochaine_action. Le commercial qui ouvre la vue le matin voit en un coup d’oeil les prospects a relancer aujourd’hui (filtrer par prochaine_action = today). Le drag-and-drop d’une carte de Contacte vers Devis met automatiquement a jour le champ statut en base.
Etape 9 : Vue grille filtree pour le reporting hebdo
Pour le reporting du vendredi, creez une vue Grid nommee « Pipeline semaine ». Ajoutez un filtre statut != Perdu et statut != Gagne, puis groupez par source pour visualiser d’ou viennent vos prospects en cours. Ajoutez un Footer Sum sur montant_estime — vous obtenez le pipeline total chiffre instantanement.
Verrouillez cette vue avec Lock View pour empecher un commercial de modifier accidentellement les filtres et de recevoir un mauvais reporting. Partagez-la en lecture seule avec le directeur commercial via Share View en mode « Read Only » — pas besoin qu’il ait un compte NocoDB.
Etape 10 : Automatiser les rappels via webhook
NocoDB declenche des webhooks sur les evenements de table (insert, update, delete). Creez un webhook qui pousse vers un endpoint n8n ou Make a chaque fois qu’une fiche passe au statut « Devis » — l’automation envoie alors un message WhatsApp au prospect avec le devis attache.
POST https://n8n.exemple.sn/webhook/nocodb-devis
Header: x-nocodb-signature: ...
Body: { "type":"records.after.update", "data": { "row": {...} } }
Le webhook NocoDB inclut une signature HMAC pour verifier l’authenticite cote n8n. Ne jamais accepter un webhook sans verifier la signature — sinon n’importe qui sur internet peut spammer votre automation. Voyez aussi notre tutoriel Zitadel sur Coolify pour ajouter un SSO devant NocoDB et notre guide alertes Grafana Discord pour superviser le serveur.
Etape 11 : Gerer les permissions par utilisateur
NocoDB distingue plusieurs roles : Owner, Creator, Editor, Commenter, Viewer. Pour une equipe commerciale de 8 personnes, le pattern recommande est : 1 Owner (le directeur), 2 Creators (responsables d’equipe qui peuvent modifier la structure), 5 Editors (commerciaux qui ajoutent et modifient les fiches). Personne en Viewer hors le directeur general qui consulte le dashboard mais ne touche jamais les fiches.
// Dans Team & Settings, Invite Member
email: commercial1@exemple.sn
role: Editor
NocoDB envoie un email d’invitation. Si l’email n’arrive pas, configurez un SMTP dans les variables d’environnement NC_SMTP_HOST, NC_SMTP_PORT, NC_SMTP_USERNAME, NC_SMTP_PASSWORD. Avec Brevo (ex-Sendinblue) ou Postmark, les 100 premiers emails par jour sont gratuits — largement assez pour des invitations occasionnelles.
Etape 12 : Sauvegarder la base Postgres quotidiennement
Vos donnees commerciales sont critiques. Mettez en place un cron qui dump Postgres chaque nuit a 2h, chiffre le dump avec age, et l’envoie sur un bucket S3 ou Backblaze B2. Trois lignes dans /etc/cron.d/nocodb-backup font le travail.
0 2 * * * root docker exec nocodb-db-1 pg_dump -U nocodb nocodb \
| age -r age1xxx... > /backup/nocodb-$(date +\%F).sql.age \
&& rclone copy /backup b2:nocodb-backup/
Avec une retention de 30 jours et 5 Mo de dump quotidien, vous occupez 150 Mo sur B2 — cout mensuel inferieur a 0,01 USD. Testez la restauration une fois par trimestre sur un VPS de staging — un backup non teste n’est pas un backup, c’est un fichier qui occupe de l’espace disque.
Etape 13 : Importer un fichier Excel existant
La PME qui adopte NocoDB a souvent deja une feuille Excel pleine de prospects. NocoDB importe directement les .xlsx via le menu Import dans la creation de table. Verifiez que la premiere ligne du fichier contient les noms de colonnes et que les types de donnees sont coherents (pas de mix texte+nombre dans la meme colonne).
Si l’import echoue avec une erreur de parsing, ouvrez le fichier dans LibreOffice Calc et nettoyez : supprimez les cellules fusionnees, retirez les lignes vides, supprimez les caracteres invisibles via Ctrl+H et regex. NocoDB est strict sur le format mais une fois importe, la table est exploitable immediatement.
Etape 14 : Surveiller la performance NocoDB
Au-dela de 50000 lignes, certaines requetes peuvent ralentir. NocoDB expose des metriques Prometheus si vous activez NC_ENABLE_METRICS=true. Scrappez sur le port 8080/metrics et tracez nocodb_api_response_time dans un dashboard Grafana — alertez si p95 depasse 2 secondes.
# prometheus.yml
- job_name: nocodb
static_configs:
- targets: ['nocodb.exemple.sn:8080']
metrics_path: /metrics
Ajoutez aussi des indexes Postgres sur les colonnes filtrees frequemment (statut, source, prochaine_action). NocoDB n’ajoute pas ces indexes automatiquement — connectez-vous a Postgres via psql et faites-le a la main pour les tables a fort volume.
Etape 15 : Mettre a jour NocoDB sans casser les donnees
Tous les 2 a 3 mois, une nouvelle version mineure de NocoDB sort avec des corrections et fonctionnalites. La mise a jour se fait en deux commandes mais necessite une precaution : faire un backup juste avant. Modifiez la version dans docker-compose.yml puis executez la sequence complete.
docker compose exec db pg_dump -U nocodb nocodb > /backup/pre-upgrade.sql
docker compose pull
docker compose up -d
NocoDB applique automatiquement les migrations de schema interne au demarrage. Surveillez les logs avec docker compose logs -f nocodb pendant 60 secondes — vous devez voir « Server is running » sans erreur. Si la migration plante, restaurez le backup et ouvrez un issue sur GitHub avec le log complet.
Etape 16 : Exposer une API pour des integrations sur mesure
NocoDB expose automatiquement une API REST et GraphQL sur chaque table. Generez un token API dans Account Settings, puis appelez l’endpoint depuis un script Node ou Python pour synchroniser avec un autre outil (Mailchimp, Brevo, votre site WordPress). L’authentification se fait via le header xc-token.
curl -H "xc-token: $NC_TOKEN" \
https://nocodb.exemple.sn/api/v2/tables/abc/records?limit=50
Limitez le scope du token aux tables strictement necessaires — un token volumineux qui fuit donne acces a toute la base. Renouvelez les tokens tous les 6 mois et stockez-les dans un gestionnaire de secrets, jamais dans le code source. Ces bonnes pratiques s’appliquent a toute integration API critique pour une PME qui veut grandir sans accumuler de dette de securite.
Etape 17 : Former l’equipe en 90 minutes
L’adoption d’un outil reussit ou echoue sur la formation initiale. Reservez 90 minutes en presentiel ou visio pour montrer aux 5 a 10 utilisateurs : comment ouvrir une vue, filtrer, ajouter une fiche, deplacer une carte Kanban, et exporter en Excel. Pas plus. Les fonctionnalites avancees viendront naturellement avec l’usage. Au Senegal et en Cote d’Ivoire ou les equipes commerciales sont generalement habituees a Excel mais reticentes aux nouveaux outils, cette session courte et concrete fait toute la difference entre un outil adopte et un outil abandonne au bout de 3 semaines.
Documentez chaque session par un court memo partage avec toute l’equipe afin de garantir la continuite quand un nouveau collaborateur arrive trois mois plus tard sans avoir assiste a la formation initiale.