Sign inSign up

hoangdv/dynamodb-local-admin

By hoangdv

•Updated 6 months ago

Modern GUI for DynamoDB Local with dark mode, TTL & index management, built-in DynamoDB Local

Image
Developer tools
Databases & storage
0

357

hoangdv/dynamodb-local-admin repository overview

⁠DynamoDB Admin - Modern GUI for Local Development

A powerful, all-in-one Docker image that includes both DynamoDB Local and a modern web-based admin interface. Perfect for local development, testing, and debugging DynamoDB applications.

⁠What's Inside This Image?

This single Docker image contains:

  • DynamoDB Local - AWS's official local DynamoDB implementation
  • Admin Web UI - Modern, feature-rich management interface
  • Caddy Reverse Proxy - Smart routing between services

Just run one command and get a complete DynamoDB development environment at http://localhost:8000

⁠Quick Start

# Run with persistent storage
docker run -p 8000:8000 -v dynamodb-data:/app/data/dynamodb hoangdv/dynamodb-local-admin

# Or without persistence (data lost on container stop)
docker run -p 8000:8000 hoangdv/dynamodb-local-admin

Then open http://localhost:8000⁠ in your browser.

⁠Key Features

⁠Modern UI/UX
  • šŸŒ“ Dark Mode - System-aware theme with manual toggle
  • šŸ“± Responsive Design - Works on all screen sizes
  • ⚔ Fast & Lightweight - Built with Tailwind CSS v4
  • šŸŽØ Beautiful Interface - Inter font + Lucide icons
⁠Powerful Features
  • šŸ“Š Browse Tables - View all tables with real-time stats
  • šŸ” Query & Scan - Advanced filtering with performance metrics
  • šŸ“ˆ Scan Statistics - See items scanned, efficiency %, and RCU consumption
  • šŸ”‘ Index Management - Create and delete Global Secondary Indexes
  • ā° TTL Configuration - Enable/disable Time-To-Live settings
  • šŸ“ JSON Editor - Syntax-highlighted item editing
  • šŸ—‘ļø CRUD Operations - Full create, read, update, delete support
  • šŸ”’ Safe Operations - Confirmation dialogs for destructive actions
⁠Developer Experience
  • TypeScript - Full type safety throughout
  • AWS SDK v3 - Latest AWS SDK architecture
  • Single Port - Everything accessible via port 8000
  • Persistent Storage - Data survives container restarts
  • No Configuration - Works out of the box

⁠Port Configuration

The image exposes port 8000 externally, which serves both:

  • Browser requests → Admin UI (internal port 8001)
  • AWS SDK requests → DynamoDB Local (internal port 8002)

Caddy automatically routes traffic based on request headers.

⁠Volume Mapping

Mount a volume to /app/data/dynamodb for persistent storage:

docker run -p 8000:8000 -v dynamodb-data:/app/data/dynamodb hoangdv/dynamodb-local-admin

Without a volume, all data is lost when the container stops.

⁠Environment Variables

You can customize the DynamoDB endpoint and credentials:

docker run -p 8000:8000 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=local \
  -e AWS_SECRET_ACCESS_KEY=local \
  -v dynamodb-data:/app/data/dynamodb \
  hoangdv/dynamodb-local-admin

⁠Connecting Your Application

Point your AWS SDK to http://localhost:8000:

Node.js (AWS SDK v3)

import { DynamoDBClient } from '@aws-sdk/client-dynamodb';

const client = new DynamoDBClient({
  region: 'us-east-1',
  endpoint: 'http://localhost:8000',
  credentials: {
    accessKeyId: 'local',
    secretAccessKey: 'local'
  }
});

Python (boto3)

import boto3

dynamodb = boto3.resource('dynamodb',
    endpoint_url='http://localhost:8000',
    region_name='us-east-1',
    aws_access_key_id='local',
    aws_secret_access_key='local'
)

⁠Use Cases

āœ… Local development without AWS costs
āœ… Integration testing with real DynamoDB behavior
āœ… Debugging query performance and efficiency
āœ… Learning DynamoDB without AWS account
āœ… CI/CD pipelines with DynamoDB
āœ… Offline development environments

⁠Docker Compose Example

version: '3.8'
services:
  dynamodb:
    image: hoangdv/dynamodb-local-admin
    ports:
      - "8000:8000"
    volumes:
      - dynamodb-data:/app/data/dynamodb
    environment:
      - AWS_REGION=us-east-1
      - AWS_ACCESS_KEY_ID=local
      - AWS_SECRET_ACCESS_KEY=local

volumes:
  dynamodb-data:

⁠What's Different from Original?

This is an enhanced fork of aaronshaf/dynamodb-admin⁠ with major improvements:

⁠UI Overhaul
  • Complete migration from Bootstrap to Tailwind CSS v4
  • Dark mode support with system preference detection
  • Modern typography (Inter + JetBrains Mono)
  • Lucide icons throughout
⁠New Features
  • TTL management interface
  • Global Secondary Index creation/deletion
  • Real-time scan statistics (efficiency, RCU consumption)
  • Enhanced table creation with TTL configuration
  • Collapsible filter panels
  • Action dropdown menus
  • Sticky table headers
⁠Technical Upgrades
  • Full TypeScript support
  • AWS SDK v3 migration
  • Modern build pipeline (Rollup + TypeScript)
  • Multi-stage Docker build
  • Better error handling and messages

⁠Image Details

  • Base Images: node:24-slim (build), eclipse-temurin:21-jre-jammy (runtime)
  • Build Time: ~25 seconds (first build), ~5 seconds (cached)
  • Image Size: Optimized with multi-stage build
  • DynamoDB Version: Latest from AWS
  • Node.js Version: 24.x

⁠License

MIT License - Free for personal and commercial use


Made with ā¤ļø for DynamoDB Local developers

If you find this useful, please ⭐ star the repository on GitHub!

Tag summary

Content type

Image

Digest

sha256:aa3f9680a…

Size

215.2 MB

Last updated

6 months ago

docker pull hoangdv/dynamodb-local-admin