sadhasivam/azura

By sadhasivam

โ€ขUpdated 3 months ago

Developer control plane for local Azure emulation, events, and storage workflows

Image
Message queues
Developer tools
Databases & storage
0

222

sadhasivam/azura repository overview

โ ๐Ÿš€ Azura โ€“ Docker Hub Repository Overview (Ready to Paste)


โ ๐Ÿงญ Azura โ€“ Developer Control Plane for Local Cloud

Azura is a local-first control plane for building, testing, and debugging cloud workflows.

It provides a unified UI to work with:

  • ๐Ÿ“ฆ Azure Storage (Azurite)
  • ๐Ÿ“ก Event Hubs & Pub/Sub
  • ๐Ÿ” Event replay and debugging
  • ๐Ÿ” Data inspection and exploration

Think: Postman + LocalStack + Azure Portal (simplified for developers)


โ โšก Quick Start

โ Run Azura
docker run -d -p 3000:3000 --name azura sadhasivam/azura:latest

Open:

http://localhost:3000

โ ๐Ÿงช With Persistent Data

docker run -d \
  -p 3000:3000 \
  -v azura-data:/app/data \
  --name azura \
  sadhasivam/azura:latest

โ ๐Ÿณ docker-compose Example

services:
  azura:
    image: sadhasivam/azura:0.1.0-rc.1
    container_name: azura
    ports:
      - "3000:3000"
    environment:
      # Sentry Configuration (optional - set to false to disable)
      - NEXT_PUBLIC_AZURA_SENTRY_ENABLED=false
      - NEXT_PUBLIC_AZURA_SENTRY_DSN=https://[email protected]/4511208104853504
      - NEXT_PUBLIC_AZURA_SENTRY_ENVIRONMENT=production
      - VERCEL=1
      # Application Configuration
      - NODE_ENV=production
      - NEXT_PUBLIC_APP_URL=http://localhost:3000
    volumes:
      # Persist PGlite database
      - azura-data:/app/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/api/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 5s
    networks:
      - azura-network

  # Optional: Azurite Storage Emulator
  azurite:
    image: mcr.microsoft.com/azure-storage/azurite:latest
    container_name: azurite
    ports:
      - "10000:10000"  # Blob service
      - "10001:10001"  # Queue service
      - "10002:10002"  # Table service
    volumes:
      - azurite-data:/data
    command: azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --loose
    restart: unless-stopped
    networks:
      - azura-network

  # Optional: Event Hubs Emulator
  eventhubs:
    image: mcr.microsoft.com/azure-messaging/eventhubs-emulator:latest
    container_name: eventhubs-emulator
    ports:
      - "5672:5672"   # AMQP
    environment:
      - ACCEPT_EULA=Y
      - BLOB_SERVER=azurite
      - METADATA_SERVER=azurite
    volumes:
      - eventhubs-data:/data
      - ./.kirukkal/event-config.json:/Eventhubs_Emulator/ConfigFiles/Config.json
    restart: unless-stopped
    depends_on:
      - azurite
    networks:
      - azura-network

  # Optional: Google Pub/Sub Emulator
  pubsub:
    image: gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators
    container_name: pubsub-emulator
    ports:
      - "8085:8085"   # Pub/Sub
    command: gcloud beta emulators pubsub start --host-port=0.0.0.0:8085
    restart: unless-stopped
    networks:
      - azura-network

volumes:
  azura-data:
  azurite-data:
  eventhubs-data:

networks:
  azura-network:
    driver: bridge


-- event-config.json

{
  "UserConfig": {
    "NamespaceConfig": [
      {
        "Type": "EventHub",
        "Name": "emulatorNs1",
        "Entities": [
          {
            "Name": "eh1",
            "PartitionCount": 2,
            "ConsumerGroups": []
          },
          {
            "Name": "eh2",
            "PartitionCount": 2,
            "ConsumerGroups": []
          }
        ]
      }
    ],
    "LoggingConfig": {
      "Type": "File"
    }
  }
}



โ ๐Ÿง  Core Capabilities

โ ๐Ÿ“ฆ Storage Explorer
  • Browse storage accounts, containers, and blobs
  • Inspect file contents
โ ๐Ÿ“ก Event Streaming
  • Send events to Event Hub / Pub-Sub
  • Monitor real-time message flow
โ ๐Ÿ” Replay Engine
  • Replay events for debugging
  • Simulate real-world scenarios
โ ๐Ÿ” Query & Debug
  • Inspect and analyze stored or streamed data

โ ๐Ÿงญ How Azura is Organized

Azura follows a simple workflow model:

Home โ†’ Explore โ†’ Build โ†’ Observe
  • Home โ†’ system overview and actions
  • Explore โ†’ browse storage and messaging
  • Build โ†’ send events, create flows
  • Observe โ†’ monitor streams and debug

โ ๐Ÿท๏ธ Image Tags

TagDescription
latestLatest stable release
x.y.zSpecific version
x.y.z-rc.nRelease candidate

โ ๐Ÿ” Release Workflow

Images are automatically built from Git tags:

git tag -a v0.1.0 -m "Release"
git push origin v0.1.0

โ โค๏ธ Health Check

Azura exposes:

GET /api/health

โ โš™๏ธ Environment Variables

VariableDefaultDescription
PORT3000Application port
HOSTNAME0.0.0.0Bind address

โ โš ๏ธ Notes

  • Designed for local development and testing
  • Data is stored in /app/data (mount a volume for persistence)
  • Works best with Azurite and local emulators

โ ๐Ÿš€ Why Azura?

Cloud tooling today is:

  • Complex
  • Fragmented
  • Hard to debug locally

Azura simplifies this into a single developer experience.


โ ๐Ÿ”ฎ Roadmap

  • Flow builder for event pipelines
  • Multi-cloud support
  • Advanced observability
  • Replay debugger

โ ๐Ÿ† Why This Works

This structure:

  • Starts with value
  • Shows how to run immediately
  • Explains capabilities clearly
  • Feels like a product, not a repo

Tag summary

Content type

Image

Digest

sha256:2b9ea6edeโ€ฆ

Size

90 MB

Last updated

3 months ago

docker pull sadhasivam/azura:0.1.0-rc.2