☁️ Marmar AWS

Internal AWS service management tool

Overview

Marmar AWS is a web-based dashboard for managing AWS services without needing direct CLI access or AWS Console login. It provides a unified interface for common operations across multiple AWS accounts via credential profiles.

Services

ServiceDescription
🔥 LambdaInvoke Lambda functions with custom payloads, view execution results
📦 BatchSubmit AWS Batch jobs with parameters
📨 SQSSend messages to SQS queues
🪣 S3Browse, upload, download, delete objects. Generate presigned URLs
🌐 CloudFrontCreate cache invalidations for CloudFront distributions
🚀 ECSForce new deployments, generate ECS Exec commands
📖 CommandsSaved command/script reference

Features

  • Multi-profile — Store multiple AWS credential profiles, switch between accounts/regions
  • CLI generation — Every action can generate the equivalent AWS CLI command with a copy button
  • Persistent state — Form fields are saved to localStorage, survives page refresh
  • Role-based access — Admin users can manage profiles, view audit logs, manage users
  • Audit logging — All dispatched actions are logged for traceability
  • Code editors — JSON/Shell inputs use CodeMirror with syntax highlighting

Tech Stack

  • Frontend — SvelteKit 2, Svelte 5 (runes), CodeMirror 6
  • Backend — SvelteKit server routes, Bun runtime
  • Database — SQLite (via DB_PATH)
  • Auth — JWT-based (jose), role-based access control
  • AWS — AWS SDK v3 (Lambda, Batch, SQS, S3, CloudFront, ECS)

Setup

cp .env.example .env    # configure JWT_SECRET, DB_PATH
bun install
bun run dev             # development at localhost:5173
bun run build && bun run start  # production

Environment Variables

VariableDescription
JWT_SECRETSecret key for signing JWTs (min 32 chars)
JWT_EXPIRYToken expiration duration (e.g. 1h, 7d)
PORTServer port (default 3000)
DB_PATHPath to SQLite database file
PRESIGN_LIFETIMEDefault S3 presigned URL expiry in seconds