Ramble Server
  • Go 73.7%
  • HTML 25.3%
  • Makefile 0.4%
  • CSS 0.2%
  • Dockerfile 0.2%
  • Other 0.2%
Find a file
Lance Haig 5a40f0df94
Merge pull request #34 from open-wander/chore/norman-security-bugfix
fix(security):
  organization, fetch, SSRF, and OAuth bugfix pass
2026-05-31 14:40:56 +02:00
.github/workflows ci(release): authenticate Tailscale via OAuth instead of an auth key 2026-05-30 18:39:23 +02:00
.vscode Go Debugger config 2021-05-04 10:01:06 +02:00
api-docs fix: regenerate swagger docs for 401 status code change 2026-02-05 21:01:28 +01:00
cmd style: gofmt-clean the tree under Go 1.26 (5.5) 2026-05-31 13:21:39 +02:00
docs fix: use URL paths instead of .md file references in docs links 2026-03-07 20:55:08 +01:00
examples Complete application rewrite with security hardening 2026-01-05 17:04:40 +01:00
internal fix(resource): return ErrResourceNotFound from ToggleStar (complete 5.2) 2026-05-31 13:31:01 +02:00
prds chore(norman): note 5.2 correction in progress log 2026-05-31 13:29:56 +02:00
public chore: update robots.txt, expand sitemap, add security policy 2026-03-03 21:34:05 +01:00
views docs: add Homebrew install instructions 2026-03-07 12:59:34 +01:00
.air.toml Add CLI mode, update checker, and documentation 2026-01-08 22:23:55 +01:00
.dockerignore Base API commit 2021-01-08 14:40:39 +01:00
.gitignore chore: add .planning/ to gitignore 2026-02-04 21:19:52 +01:00
.goreleaser.yml Add homebrew tap 2026-03-07 12:09:16 +01:00
config.example.yml Complete application rewrite with security hardening 2026-01-05 17:04:40 +01:00
docker-compose.curr.yml Fix Token Encryption 2026-01-25 15:29:56 +01:00
Dockerfile fix(release): make version bump tag-driven so it works with protected main 2026-05-30 18:20:28 +02:00
go.mod fix: upgrade golang.org/x/crypto to v0.52.0 to resolve govulncheck failures 2026-05-30 17:52:49 +02:00
go.sum fix: upgrade golang.org/x/crypto to v0.52.0 to resolve govulncheck failures 2026-05-30 17:52:49 +02:00
LICENSE Change License to be compatible with Nomad 2021-11-01 14:17:50 +01:00
Makefile fix(release): make version bump tag-driven so it works with protected main 2026-05-30 18:20:28 +02:00
ramble.nomad.hcl Rename to Ramble and update for open-wander organization 2026-01-05 17:19:18 +01:00
README.md docs: add Homebrew install instructions 2026-03-07 12:59:34 +01:00
SECURITY.md chore: update robots.txt, expand sitemap, add security policy 2026-03-03 21:34:05 +01:00
SELF-HOSTING.md Add Sync for Requests 2026-01-12 18:19:10 +01:00
tailwind.config.js Complete application rewrite with security hardening 2026-01-05 17:04:40 +01:00

Ramble - Nomad Job & Pack Registry

CI Release Go Version License Docker

A modernized registry for HashiCorp Nomad job files and Nomad Packs, with a built-in CLI for discovering, rendering, and running packs.

Features

Registry Server

  • 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

CLI Tool

  • 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

Tech Stack

  • Backend: Go 1.23+, Fiber v2
  • Database: PostgreSQL (GORM)
  • Frontend: HTMX, Hyperscript, Tailwind CSS
  • CLI: Cobra

Installation

Homebrew (macOS & Linux)

brew tap open-wander/tap
brew install ramble

Download Binary

# 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.zip

Security Notes

macOS: If you see "cannot be opened because it is from an unidentified developer", run:

xattr -d com.apple.quarantine /usr/local/bin/ramble

Windows: If SmartScreen shows "Windows protected your PC", click "More info" then "Run anyway".

Using Docker

docker pull ghcr.io/open-wander/ramble:latest

CLI Quick Start

# 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.hcl

CLI Commands

ramble
├── 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

Server Quick Start

Prerequisites

  • Go 1.23+
  • PostgreSQL

Local Development

  1. Clone the repository:

    git clone https://github.com/open-wander/ramble.git
    cd ramble
    
  2. Set up the database:

    export DATABASE_URL="host=localhost user=postgres password=postgres dbname=rmbl port=5432 sslmode=disable"
    
  3. Run the server:

    make run
    # or
    ramble server
    

    The server starts on http://localhost:3000.

Using Docker

docker run -p 3000:3000 \
  -e DATABASE_URL="your-connection-string" \
  -e SESSION_SECRET="your-secret" \
  ghcr.io/open-wander/ramble:latest

Documentation

Full documentation is available at:

Deployment

For production setup and self-hosting instructions, see the Self-Hosting Guide.

License

MPL-2.0