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