Geodineum

Geodineum

Geodineum

The installer and orchestrator for a ValKey-backed multi-service ecosystem: a Linux host runs one or more services, and each service declares its own wiring (install, config, logging, CLI, backup, and data routing) in a single manifest.

Built by Niels Erik Toren · shell installer + geodineum CLI + manifest contract


What it is

Geodineum installs and wires an ecosystem of services around a shared ValKey backend. A service author writes their binary and one geodeploy.yaml; the orchestrator reads the manifest and handles everything else: deploy, ValKey ACL grants, systemd, logging, CLI dispatch, and backup hints. Complexity is opt-in: a manifest that omits a section gets the convention default.

This repository is the canonical installer, the geodineum operator CLI, and the manifest contract. The components that plug into it (gNode, gNode-Client, gCore, gTemplate, gCube, Geodineum-COMMS, Geodineum-BAK) each live in their own repository and ship their own manifest.

Public build surface

What you build against is the geodeploy.yaml manifest: one file declaring a service's identity, deploy, install/uninstall, logging, config, data (streams/keys/channels, composed into ValKey ACL grants), backup, and CLI verbs. Its schema is the source of truth: schemas/geodeploy-manifest.schema.yaml (JSON Schema), and geodineum validate checks any manifest against it. The reference service that exercises every section is services/hello-world/.

The other surface is the geodineum CLI: install/uninstall, per-service lifecycle, site and config management, schema validation, and constellation membership. Each installed component contributes its own manifest-declared verbs, discovered automatically. Adding one is a cli: entry plus a handler script, no recompile. Run geodineum --help for the resolved command set.

Internal: install.sh, uninstall.sh, and the shared helper libraries under lib/ are implementation and may change.

Capabilities

Contract

The manifest contract is schemas/geodeploy-manifest.schema.yaml. Cross-component contracts, the permission model, and this ecosystem's README standard live in CONTRACTS/; each component repository ships its own CONTRACT.md. Multi-node deployment is walked through in docs/MULTI_NODE_DEPLOYMENT.md.

Quick start

Clone to /opt/geodineum/Geodineum/ and run the installer:

sudo ./install.sh

Then exercise the manifest-driven surface: install the bundled reference service, call a component verb, and inspect the registry:

sudo geodineum service install services/hello-world/geodeploy.yaml
geodineum gmath multiply 6 7     # → 42.0000000000000000000  (real g_math via a manifest cli verb)
geodineum service list
geodineum validate --all         # every geodeploy.yaml checked against the schema

Authoring your own service is one geodeploy.yaml plus a few idempotent shell steps. Copy services/hello-world/ and validate it with geodineum validate.

Limits worth knowing

Collaborate

Contributions are welcome. Check ROADMAP.md to see what is already on our plate and pick up work from there. We do not curate good-first-issue labels in the age of AI: read the roadmap, pick something real, and build it.

Author & support

Built by Niels Erik Toren.

If you want to support the work:

Currency Address
Bitcoin (BTC) bc1qwf78fjgapt2gcts4mwf3gnfkclvqgtlg4gpu4d
Ethereum (ETH) 0xf38b517Dd2005d93E0BDc1e9807665074c5eC731 / nierto.eth
Monero (XMR) 8BPaSoq1pEJH4LgbGNQ92kFJA3oi2frE4igHvdP9Lz2giwhFo2VnNvGT8XABYasjtoVY2Qb3LVHv6CP3qwcJ8UnyRtjWRZ5

Disclaimer

This software is provided "as is", without warranty of any kind, express or implied. Use of this software is entirely at your own risk. In no event shall the author or contributors be held liable for any damages arising from the use or inability to use this software.

License

Licensed under either of

at your option.