A small CLI for running isolated GenesisDB containers behind one HTTPS proxy

patriceckhart4 pts0 comments

GitHub - genesisdb-io/genesisdb-orchestrator: A small cross-platform CLI for running isolated GenesisDB Docker containers behind one local HTTPS proxy. · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Uh oh!

There was an error while loading. Please reload this page.

genesisdb-io

genesisdb-orchestrator

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>2 Commits<br>2 Commits

.github/workflows

.github/workflows

cmd/genesisdb

cmd/genesisdb

internal

internal

.gitignore

.gitignore

.goreleaser.yaml

.goreleaser.yaml

LICENSE

LICENSE

Makefile

Makefile

README.md

README.md

go.mod

go.mod

go.sum

go.sum

View all files

Repository files navigation

GenesisDB orchestrator

A small cross-platform CLI for running isolated GenesisDB Docker containers behind one local HTTPS proxy.

Each instance is available at both:

https://.genesisdb.local on port 443

http://.genesisdb.local on port 80, redirected to HTTPS

The GenesisDB container itself listens on its standard port 8080 inside a private Docker network. Instance data is stored in a named Docker volume.

Requirements

Docker Desktop or Docker Engine

Administrator access for the hosts file and local certificate trust store

On Linux, update-ca-certificates or trust

Installation

Download the archive for your operating system and architecture from the latest GitHub release, extract it, and place the genesisdb binary on your PATH. Windows archives contain genesisdb.exe.

Release archives are available for macOS, Linux, and Windows on AMD64 and ARM64. Verify downloads with the accompanying checksums.txt file.

Project structure

cmd/genesisdb/ Application entry point and build version<br>internal/cli/ Command parsing, terminal output, and wizard<br>internal/orchestrator/ Docker lifecycle, proxy, certificates, and OS integration

The entry point only handles process exit behavior. CLI concerns and orchestration logic remain independently testable in internal packages.

Build

make build

Build release binaries for macOS, Linux, and Windows locally:

make release VERSION=1.0.0

Local builds default to version 0.0.0. Published builds receive their version from the Git tag through GoReleaser.

Usage

Initialize the proxy, create the wildcard certificate, trust its local CA, add genesisdb.local to the hosts file, and start all existing GenesisDB instances:

genesisdb init # macOS/Linux, sudo is requested when needed<br># Run an Administrator terminal on Windows, then:<br>genesisdb init

Do not run the whole command with sudo on macOS or Linux. The CLI stores state for the current user and invokes sudo only for certificate and hosts-file changes.

Create an instance with the interactive wizard. The auth token remains visible while typing. The license key is hidden and optional, so press Enter to use the free license:

genesisdb create

You can also provide values directly, or provide some values and let the wizard prompt for the missing required values:

--auth-token secret --license-key license<br>genesisdb create --auth-token secret # free license<br>genesisdb create --auth-token secret --license-key "" # free license<br>genesisdb create # interactive secrets">genesisdb create name> --auth-token secret --license-key license<br>genesisdb create name> --auth-token secret # free license<br>genesisdb create name> --auth-token secret --license-key "" # free license<br>genesisdb create name> # interactive secrets

Stop or permanently delete one instance:

genesisdb delete ">genesisdb stop name><br>genesisdb delete name>

Shut down every managed GenesisDB instance and the proxy, then start all of them again:

genesisdb shutdown<br>genesisdb init

delete removes the container, its named data volume, proxy route, and hosts-file entry. shutdown preserves containers and data. Creating, stopping, and deleting instances refuse to run while the proxy is not initialized and running.

Docker resources

The CLI creates:

Network: genesisdb-local

Proxy container: genesisdb-local-proxy using...

genesisdb license create proxy local docker

Related Articles