A modernized registry for HashiCorp Nomad job files and Nomad Packs, with a built-in CLI for discovering, rendering, and running packs.
- Modern UI: Responsive design using Tailwind CSS
- Interactive Search: Live search-as-you-type powered by HTMX
- Fast Navigation: SPA-like experience with server-side rendering
- Job/Pack Registry: Easily discover and share Nomad specifications
- Authentication: User accounts and OAuth support (GitHub, GitLab)
- Organizations: Team collaboration features
- Webhooks: Automatic version updates on git tag push
- Pack Discovery: Search and browse packs from registries
- Template Rendering: Render pack templates with variables
- Direct Submission: Run packs and jobs on Nomad clusters
- Multi-Registry: Manage multiple registries
- Caching: Local pack caching for offline use
- Backend: Go 1.23+, Fiber v2
- Database: PostgreSQL (GORM)
- Frontend: HTMX, Hyperscript, Tailwind CSS
- CLI: Cobra
# macOS (Apple Silicon)
curl -L https://github.com/open-wander/ramble/releases/latest/download/ramble_Darwin_arm64.tar.gz | tar xz
sudo mv ramble /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/open-wander/ramble/releases/latest/download/ramble_Darwin_x86_64.tar.gz | tar xz
sudo mv ramble /usr/local/bin/
# Linux (x86_64)
curl -L https://github.com/open-wander/ramble/releases/latest/download/ramble_Linux_x86_64.tar.gz | tar xz
sudo mv ramble /usr/local/bin/
# Linux (ARM64)
curl -L https://github.com/open-wander/ramble/releases/latest/download/ramble_Linux_arm64.tar.gz | tar xz
sudo mv ramble /usr/local/bin/
# Windows (x86_64) - download and extract the zip
# https://github.com/open-wander/ramble/releases/latest/download/ramble_Windows_x86_64.zipmacOS: If you see "cannot be opened because it is from an unidentified developer", run:
xattr -d com.apple.quarantine /usr/local/bin/rambleWindows: If SmartScreen shows "Windows protected your PC", click "More info" then "Run anyway".
docker pull ghcr.io/open-wander/ramble:latest# List packs from the default registry
ramble pack list
# Get pack information
ramble pack info myuser/mysql
# Run a pack (renders and submits to Nomad)
ramble pack run myuser/mysql --var db_name=mydb
# Dry run (render only)
ramble pack run myuser/mysql --var db_name=mydb --dry-run
# Run a local job file
ramble job run myjob.nomad.hclramble
├── server # Start the web server
├── pack
│ ├── list # List packs from registry
│ ├── info <pack> # Get pack details
│ ├── run <pack> # Download, render, and submit to Nomad
│ └── render <pack> # Render templates without submitting
├── job
│ ├── list # List jobs from registry
│ ├── info <job> # Get job details
│ ├── run <file> # Submit a raw .nomad.hcl file
│ └── validate <file> # Validate a job file
├── registry
│ ├── list # List configured registries
│ ├── add <name> # Add a new registry
│ ├── remove <name> # Remove a registry
│ └── default <name> # Set default registry
├── cache
│ ├── list # Show cached packs
│ ├── clear # Clear cache
│ └── path # Show cache directory
└── version # Show version information
- Go 1.23+
- PostgreSQL
-
Clone the repository:
git clone https://github.com/open-wander/ramble.git cd ramble -
Set up the database:
export DATABASE_URL="host=localhost user=postgres password=postgres dbname=rmbl port=5432 sslmode=disable"
-
Run the server:
make run # or ramble serverThe server starts on
http://localhost:3000.
docker run -p 3000:3000 \
-e DATABASE_URL="your-connection-string" \
-e SESSION_SECRET="your-secret" \
ghcr.io/open-wander/ramble:latestFull documentation is available at:
For production setup and self-hosting instructions, see the Self-Hosting Guide.