159 lines
6.7 KiB
Markdown
159 lines
6.7 KiB
Markdown
---
|
|
title: DynamoDB Dashboard
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, database, aws, dynamodb, nosql, typescript, cloud]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Database, https://github.com/kritish-dhaubanjar/dynamodb-dashboard]
|
|
---
|
|
|
|
# 🗄️ DynamoDB Dashboard
|
|
|
|
> **Une web UI pour DynamoDB** : explorez, requêtez et gérez vos tables AWS DynamoDB depuis une interface locale. La console AWS est complète mais lourde — ce dashboard mise sur la simplicité.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | (GitHub) |
|
|
| **GitHub** | [kritish-dhaubanjar/dynamodb-dashboard](https://github.com/kritish-dhaubanjar/dynamodb-dashboard) |
|
|
| **License** | MIT |
|
|
| **Langage** | TypeScript (Node.js + React) |
|
|
| **Étoiles GitHub** | 54 ⭐ |
|
|
| **Catégorie** | [[cat-database\|Database]] |
|
|
| **Public** | Intermédiaires à avancés |
|
|
|
|
## 📝 Description
|
|
|
|
**DynamoDB Dashboard** est une **interface web open source** pour **Amazon DynamoDB**, la base NoSQL managée d'AWS. C'est important à souligner : ce n'est **pas une base de données self-hosted** — DynamoDB reste un service AWS. Ce que l'app propose, c'est une **UI plus légère et plus rapide** que la console AWS pour travailler sur vos tables.
|
|
|
|
- ✅ **Connexion à vos comptes AWS** : credentials IAM ou profil
|
|
- ✅ **Liste des tables** par région AWS
|
|
- ✅ **Browse / Scan / Query** : navigation, scan complet, requêtes par partition key
|
|
- ✅ **Édition d'items** : create, update, delete en place
|
|
- ✅ **Filtres et tri** côté UI
|
|
- ✅ **Visualisation de schémas** : clés primaires, GSI, LSI
|
|
- ✅ **Export CSV / JSON** des résultats
|
|
- ✅ **Support DynamoDB Local** : utilisable contre une instance locale de DynamoDB pour dev
|
|
- ✅ **Multi-régions** : basculement entre régions AWS
|
|
- ✅ **TypeScript / React** : stack moderne
|
|
|
|
**Public cible** : **les développeurs qui travaillent sur DynamoDB au quotidien** et qui trouvent la console AWS trop lente ou trop chargée. C'est aussi un excellent compagnon en **local dev** : on lance DynamoDB Local, on pointe le dashboard dessus, et on retrouve une UI familière sans cramer de crédits AWS.
|
|
|
|
**Note importante** : DynamoDB est un service **AWS managé** — vous ne "self-hostez" pas DynamoDB à proprement parler. Vous self-hostez **l'interface** pour y accéder. C'est pourquoi ce projet est listé dans la catégorie Database de selfh.st, mais gardez à l'esprit qu'il n'inclut pas la base elle-même.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
dynamodb-dashboard:
|
|
image: ghcr.io/kritish-dhaubanjar/dynamodb-dashboard:latest
|
|
container_name: dynamodb-dashboard
|
|
restart: unless-stopped
|
|
environment:
|
|
AWS_REGION: eu-west-3
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
|
PORT: 8001
|
|
volumes:
|
|
- ./env:/app/.env
|
|
ports:
|
|
- "8001:8001"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.dyndb.rule=Host(`dynamodb.example.com`)"
|
|
- "traefik.http.routers.dyndb.entrypoints=websecure"
|
|
- "traefik.http.routers.dyndb.tls.certresolver=letsencrypt"
|
|
|
|
# Optionnel : DynamoDB Local pour le dev
|
|
dynamodb-local:
|
|
image: amazon/dynamodb-local:latest
|
|
container_name: dynamodb-local
|
|
restart: unless-stopped
|
|
command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-inMemory"]
|
|
ports:
|
|
- "8000:8000"
|
|
|
|
volumes:
|
|
dynamodb-data:
|
|
```
|
|
|
|
### Bare-metal (Node.js)
|
|
|
|
```bash
|
|
git clone https://github.com/kritish-dhaubanjar/dynamodb-dashboard.git
|
|
cd dynamodb-dashboard
|
|
npm install
|
|
cp .env.example .env # éditer avec vos credentials AWS
|
|
npm run build
|
|
npm start
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Créer un utilisateur IAM dédié** (recommandé) avec `AmazonDynamoDBReadOnlyAccess` au minimum, ou `AmazonDynamoDBFullAccess` pour l'édition
|
|
2. **Définir les credentials AWS** : variables d'environnement `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`, ou profil `~/.aws/credentials`
|
|
3. **Choisir la région** : `AWS_REGION=eu-west-3` (Paris) ou autre
|
|
4. **Accéder à l'UI** : `http://IP:8001`
|
|
5. **Sélectionner une table** dans la liste, tester un Scan ou un Query
|
|
6. **Créer un item de test** : bouton "Create Item" pour valider les droits d'écriture
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- **AWS Console** (la référence officielle, mais lourde)
|
|
- **DynamoDB Local** (l'image Docker `amazon/dynamodb-local`, pas d'UI)
|
|
- **NoSQL Workbench** (Amazon, app desktop, riche mais plus complexe)
|
|
- **dynobase** (payant, app desktop très populaire)
|
|
- **DBeaver** (avec le plugin DynamoDB, mais limité)
|
|
|
|
### Comparaison DynamoDB Dashboard vs autres
|
|
|
|
| Critère | DynamoDB Dashboard | AWS Console | NoSQL Workbench | Dynobase |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| **Self-hosted** | ✅ | ❌ | ❌ (desktop) | ❌ (desktop) |
|
|
| **UI web légère** | ✅ | ❌ (lourde) | — | — |
|
|
| **Édition in-place** | ✅ | ✅ | ✅ | ✅ |
|
|
| **Visualisation schéma** | ✅ | ✅ | ✅ | ✅ |
|
|
| **Offline / Local** | ✅ | ❌ | ✅ | ❌ |
|
|
| **Prix** | Gratuit | Inclus AWS | Gratuit | Freemium |
|
|
| **Maturité** | Jeune | Stable | Stable | Stable |
|
|
|
|
**Verdict** : pour un dashboard **web, simple, self-hosted**, c'est un bon choix. Si vous voulez la **richesse maximale**, NoSQL Workbench. Pour **l'admin complet**, la console AWS reste la référence.
|
|
|
|
### Propriétaires (ce que DynamoDB Dashboard complète)
|
|
|
|
- **Dynobase** (desktop, $15-30)
|
|
- **TablePlus** (desktop, $60)
|
|
- **AWS CLI** (scripting)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Credentials IAM** : ne jamais committer un fichier `.env` avec des clés AWS — utilisez un secret manager
|
|
- **Principe du moindre privilège** : créez un user IAM avec **uniquement** les actions DynamoDB nécessaires (jamais `*:*`)
|
|
- **HTTPS obligatoire** via [[app-traefik]] : les données DynamoDB peuvent être sensibles (PII, secrets applicatifs)
|
|
- **Restriction d'accès** : ce dashboard a accès à vos tables AWS, gardez-le derrière un VPN / SSO (cf. [[securisation-home-lab]])
|
|
- **MFA sur le compte AWS racine** : indispensable
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub kritish-dhaubanjar/dynamodb-dashboard](https://github.com/kritish-dhaubanjar/dynamodb-dashboard)
|
|
- [Documentation AWS DynamoDB](https://docs.aws.amazon.com/dynamodb/)
|
|
- [AWS IAM Best Practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-database]] — Catégorie Database
|
|
- [[app-traefik]] — Reverse-proxy HTTPS
|
|
- [[recettes-docker-compose]] — Templates Docker Compose
|
|
- [[securisation-home-lab]] — Sécuriser l'accès aux interfaces d'admin
|
|
- [[app-portainer]] — Gestion des containers Docker
|
|
- [[app-dockge]] — Alternative UI à Portainer
|