Dix vues sur les mêmes lignes
Collaboratives pour toute l’équipe, ou personnelles pour soi seul : chacun choisit sa façon de lire, personne ne copie les données.
Organiser
Tables et champs Des champs pour tout, des relations, des formules comme dans un tableur. Dix vues Grille, kanban, calendrier, chronologie, galerie, liste, carte, formulaire, questionnaire, quiz. Formulaires Un lien à partager : chaque réponse devient une ligne. Fichiers et images Devis, photos, contrats, rangés avec leur ligne.Collaborer
Temps réel et commentaires Voir les autres travailler, commenter une ligne, mentionner un collègue. Droits et équipes Qui voit quoi et qui modifie quoi, jusqu’à la colonne. Historique Chaque modification gardée, et annulable. Vues partagées Une vue par un lien, sur votre site ou dans votre agenda.Automatiser et analyser
Automatisations Quand une ligne change : prévenir, créer, écrire, demander à l’IA. Tableaux de bord Quinze visualisations, des filtres communs, un lien à partager. IA et Copilot Une base en une phrase, des champs qui se remplissent seuls. Modèles Dix bases prêtes à l’emploi, à adapter.Intégrer
API REST Les mêmes données que l’interface, décrites en OpenAPI 3.1. Serveur MCP Des outils pour vos agents IA, sous vos droits. Webhooks Chaque écriture, signée, ordonnée, réessayée. SQL direct De vraies tables PostgreSQL, nommées en clair. Synchronisation Des tables tenues à jour depuis ailleurs.Héberger
Docker Compose Une image, une base PostgreSQL, un seul port. Variables Tout se règle dans le fichier .env. Domaine et HTTPS Derrière votre proxy, ou avec le Caddy fourni. Connexion et SSO Google, Microsoft, tout fournisseur OpenID Connect. Sauvegardes et mises à jour pg_dump, et des mises à jour sans perte.La simplicité d’un tableur partagé — grilles, vues, formulaires, droits — et des données qui vivent dans des tables typées et nommées en clair. Votre équipe travaille dans l’interface ; vos scripts, vos outils de BI, vos agents IA et psql lisent les mêmes lignes.
docker compose up -d
Pas de modèle générique, pas de JSON fourre-tout, pas de field_1837 : une base est un schéma, une table est une table, un champ est une colonne typée, nommée en clair.
text, numeric, date, timestamptz, boolean — et de vraies clés étrangères pour les relations. CHECK, adresses web et e-mails vérifiés, relations en FOREIGN KEY. JOURS([Fin]; [Début]) devient une colonne générée, que psql lit comme les autres. psql lit aussi. ALTER TABLE b_t4z56fq_ventes.opportunites ADD COLUMN montant numeric(38,10); COMMENT ON COLUMN …opportunites.montant IS 'Montant HT du contrat';
| nom | text |
| statut | text |
| montant | numeric(38,10) |
| echeance | date |
| clients_id | uuid → clients |
Quand une ligne change, à heure fixe ou d’un clic : un éditeur en graphe enchaîne les étapes, et chaque exécution se relit sur le flux.
Des questions posées à la souris ou en SQL, quinze visualisations, des filtres communs — chacun les lit avec ses propres droits.
Les droits s’accordent à des groupes, sur un projet, une base ou une table, et descendent sur tout ce qui est dessous. Une colonne sensible peut être masquée à un groupe, ou rendue non modifiable pour lui.
Session SQL directe a modifié « Migration ERP »
02:46 · connexion locale · psqlMontant : 125 000 → 130 000
Formulaire « Demande de devis » a créé « Refonte de l’intranet »
réponse publique · publié par CamilleLe serveur MCP donne quinze outils aux agents ; l’API REST, les mêmes données à vos programmes. Un seul point de contrôle des droits, les mêmes journaux.
list_records opportunites · statut = Négociation propose_add_field opportunites · Probabilité · number Ajouter le champ « Probabilité » (Nombre) à Opportunités
Proposée par l’agent · jeton « Ventes »
Chaque fonction écrit dans les mêmes tables, sous les mêmes droits, dans le même historique.
Collaboratives pour toute l’équipe, ou personnelles pour soi seul : chacun choisit sa façon de lire, personne ne copie les données.
Un lien public, ou réservé aux membres connectés. Répondre ne donne aucun droit sur la table.
/f/uIPJZ4Ensr_K8V0In0bb… Une base, plusieurs déclinaisons. Comparez la structure, migrez de l’une à l’autre, synchronisez des lignes.
Les écritures des autres arrivent en temps réel, on voit qui regarde quelle ligne, et on en discute là où elle se trouve : commentaires, mentions, notifications. Ctrl+Z annule la dernière écriture, et refuse plutôt que d’écraser le travail d’un autre.
Un champ rempli par un modèle à partir des autres colonnes, et un Copilot qui propose filtres, requêtes et colonnes, appliqués d’un clic. OpenAI, Anthropic, Mistral, ou un modèle servi sur votre propre machine.
Résume {{Notes}} en une phrase De vraies clés étrangères, des formules en français ou en anglais calculées par PostgreSQL, et des recherches, cumuls et décomptes à travers les relations.
ARRONDI([Montant HT] * (1 + [Taux de TVA]); 2) Un éditeur visuel pour le texte mis en forme, assaini à l’écriture ; et dans tout texte long, {{Ville}} se lit avec la valeur de la ligne.
Livraison le {{Date}} à {{Ville}} Une vue en lecture seule par un lien, intégrable à un autre site ; un calendrier devient un flux pour votre agenda.
Une table tenue à jour depuis un CSV en ligne, un agenda, ou la vue partagée d’un autre basedb.
Dix modèles prêts à l’emploi, une base décrite en une phrase à l’IA, et la vôtre enregistrée comme modèle.
Sur le disque de l’hôte ou dans un stockage compatible S3 : AWS, Scaleway, OVH, Cloudflare R2, Garage, MinIO…
Glissez un fichier : l’import devine les types, crée la table ou complète une table existante, et dit ligne par ligne ce qui est refusé.
Chacun crée son compte et ses projets, et invite par un lien en Lecture, Édition ou Gestion ; connexion par mot de passe, Google, Microsoft ou tout fournisseur OpenID Connect.
Chaque écriture peut prévenir un autre système : charges signées, livrées dans l’ordre, réessayées.
Votre langue, votre thème, l’ordre des dates, vos notifications, vos sessions et vos jetons, au même endroit.
L’interface prend la langue du navigateur, parmi vingt ; chacun peut la changer dans ses paramètres.
basedb est un logiciel libre (AGPL-3.0) : une seule image, une base PostgreSQL, et c’est tout — ni service tiers imposé, ni télémétrie. Sauvegardez-le avec pg_dump, lisez-le avec n’importe quel client PostgreSQL.
db PostgreSQL 16, vos données basedb L’interface, l’API REST et le serveur MCP, sur un seul port proxy Caddy, HTTPS automatique (option) git clone https://github.com/eodia/basedb.git
cd basedb && cp .env.example .env POSTGRES_PASSWORD=un-mot-de-passe-solide
# openssl rand -base64 32
BASEDB_ENCRYPTION_KEY=… docker compose up -d
# puis http://localhost:3000 : créez votre compte Une autre question ? La documentation y répond sûrement.
Par l’endroit où vivent les données. Là où d’autres rangent vos lignes dans un modèle générique (colonnes numérotées, documents JSON), basedb crée une vraie table PostgreSQL par table, une vraie colonne typée par champ, avec des noms lisibles. Vos données restent exploitables sans basedb.
Oui. Les contraintes (types, obligatoire, listes de choix, clés étrangères) sont tenues par PostgreSQL lui-même, et un déclencheur historise même les écritures faites en SQL direct, avec la session qui les a faites. La console SQL de l’interface et psql lisent les mêmes tables ; dans l’interface, chacun écrit du SQL avec ses propres droits, enregistre ses requêtes et, s’il gère la base, en fait de vraies vues PostgreSQL.
Rien tant que vous n’avez pas configuré de fournisseur. Ensuite, pour les brouillons de structure et le copilote, seules la structure et votre phrase partent par défaut ; la lecture de données par le copilote est une case à cocher, par conversation. Un modèle de base demandé à l’IA n’envoie que votre phrase. Un champ IA envoie les colonnes que sa consigne cite, après un consentement explicite.
Oui. Les écritures des autres s’affichent sans recharger, avec leur visage sur la table ou la ligne qu’ils regardent. On commente une ligne, on mentionne quelqu’un avec @, la cloche prévient. Et Ctrl+Z n’annule que vos propres écritures : il refuse plutôt que d’écraser ce qu’un autre a changé depuis.
Vingt : français, anglais, allemand, espagnol, italien, portugais du Brésil, néerlandais, polonais, tchèque, suédois, danois, norvégien, finnois, roumain, hongrois, turc, ukrainien, japonais, chinois simplifié et coréen. L’interface prend la langue du navigateur, et chacun la change dans ses paramètres ; ce site et la documentation existent dans les mêmes langues.
Par le serveur MCP, avec un jeton d’intégration limité à une base, en lecture seule par défaut. Un agent lit, crée et modifie des lignes selon ses droits — et en supprime, une à la fois, si son jeton a été créé pour cela ; il ne change pas la structure : il la propose, et une personne approuve.
PostgreSQL 16 ou plus récent, avec les extensions pg_trgm et unaccent (disponibles dans l’image officielle). Le docker-compose fourni démarre un PostgreSQL 16 ; vous pouvez aussi pointer DATABASE_URL vers votre propre serveur.
basedb est en développement actif : le noyau, l’API, le serveur MCP et l’interface fonctionnent et sont couverts par plus de mille tests, mais certaines fonctions restent à venir (voir la feuille de route). Essayez-le, et sauvegardez votre base comme toute base PostgreSQL.
AGPL-3.0-or-later. Vous pouvez l’utiliser, le modifier et l’héberger librement ; si vous proposez une version modifiée comme service, vous en partagez les sources.
Installez basedb en quelques minutes, invitez votre équipe, et gardez la main sur chaque ligne.