---
title: Nimtable
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, front-end, database, iceberg, observability, datalake]
confidence: high
contested: false
sources: [https://selfh.st/apps/, https://github.com/nimtable/nimtable]
---

# Nimtable 🧊

> Plateforme web légère d'observabilité et de gestion de catalogues Apache Iceberg (lakehouses).

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/nimtable/nimtable |
| **GitHub** | https://github.com/nimtable/nimtable |
| **License** | Apache-2.0 |
| **Langage principal** | TypeScript (Next.js) + Java (backend Spark) |
| **Étoiles GitHub** | 28 |
| **Dernière MAJ** | 2026-01-12 |
| **Catégorie** | [[cat-front-end]] |

## Description
Nimtable est une plateforme web libre qui se place entre les utilisateurs et les catalogues Apache Iceberg pour offrir une console de gestion et une API REST Iceberg normalisée. Elle permet d'explorer les schémas, partitions, snapshots et manifestes d'un data lake, d'exécuter des requêtes SQL directement dans le navigateur, et de piloter les opérations de maintenance (compactage, optimisation) en s'appuyant sur des moteurs externes (Apache Spark, RisingWave, Flink).

L'application prend en charge plusieurs catalogues : REST Catalog, AWS Glue, S3 Tables, Hive Metastore, Apache Polaris, Unity Catalog, Lakekeeper, etc. Côté moteurs de requête en lecture, elle peut interroger Snowflake, Databricks, DuckDB, StarRocks, ClickHouse et autres. Cette polyvalence en fait une couche d'observabilité interopérable qui évite de réinventer un dashboard par stack.

L'interface, écrite en TypeScript avec Next.js et Tailwind CSS, propose un explorateur de tables, un éditeur SQL, des visualisations de la distribution des fichiers et des snapshots, ainsi qu'un assistant de connexion. Le backend, en Java, orchestre les opérations via Apache Spark. L'authentification s'appuie sur Prisma + SQLite pour la gestion des utilisateurs.

## Installation
### Via Docker (recommandé)
```yaml
services:
  nimtable:
    image: ghcr.io/nimtable/nimtable:latest
    container_name: nimtable
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=file:./data/nimtable.db
      - SPARK_MASTER=local[*]
    volumes:
      - ./data:/app/data
      - ./catalogs:/app/catalogs
```
Le projet fournit également un `docker compose` officiel dans le sous-dossier `docker/` du dépôt, qui démarre une stack complète de démonstration avec un catalogue Iceberg local.

### Installation manuelle
1. Cloner : `git clone https://github.com/nimtable/nimtable.git`
2. Prérequis : Node.js 18+, Java 11+, pnpm
3. Installer : `pnpm install`
4. Configurer la base Prisma : `pnpm prisma migrate deploy`
5. Lancer en dev : `pnpm dev` (front) + `cd backend && mvn spring-boot:run`

## Configuration
- Connexion aux catalogues Iceberg : via l'UI, renseigner endpoint, identifiants et warehouse
- Stockage objet (S3, GCS, Azure) : clés d'accès ou IAM role
- Compte admin par défaut : `admin` / `admin` — **à changer impérativement** à la première connexion
- Le mot de passe est ensuite stocké en base et les variables d'environnement ne servent plus qu'au seed initial

## Alternatives
### Open source
- **Apache Polaris** — catalogue Iceberg natif avec API REST
- **Lakekeeper** — autre catalogue Iceberg open source
- **Dremio** — plateforme lakehouse (semi-open, édition community)
- **Trino/StarRocks** — moteurs de requêtes SQL sur Iceberg

### Propriétaires
- **Snowflake** — entrepôt cloud propriétaire lisant Iceberg
- **Databricks** — lakehouse propriétaire basé sur Delta/Unity Catalog
- **AWS S3 Tables** — service managé propriétaire

## Sécurité
- Changer immédiatement le mot de passe admin par défaut (`admin`/`admin`)
- Activer HTTPS via reverse proxy (Caddy, Traefik, Nginx) pour chiffrer l'accès à la console
- Restreindre l'accès réseau (VPC, VPN) : l'UI peut exposer des métadonnées sensibles
- Les clés d'accès au stockage objet doivent être à privilèges minimaux (lecture seule si possible)
- Sauvegarder la base SQLite des utilisateurs (`./data/nimtable.db`)
- Maintenir Spark et les connecteurs à jour pour bénéficier des correctifs de sécurité

## Ressources
- Dépôt GitHub : https://github.com/nimtable/nimtable
- Documentation : https://github.com/nimtable/nimtable/tree/main/docs
- Démo / Wizard : `docker/` du dépôt
- Communauté : GitHub Issues & Discussions
- Apache Iceberg : https://iceberg.apache.org

## Pages Liées
- [[cat-front-end]]
- [[recettes-docker-compose]]
