EUDIPLO CLI¶
The EUDIPLO CLI has two distributions of the same command-line tool:
- Standalone CLI: native executable, no Node.js required.
- npm package:
@eudiplo/cli, requires Node.js 22+.
The command name is eudiplo in both cases.
For focused guidance, see:
Installation¶
Standalone CLI (Linux/macOS)¶
The installer downloads a release archive and verifies it against
SHA256SUMS.txt from the same GitHub release before extracting.
Supported standalone release artifacts:
- Linux x64:
eudiplo-vVERSION-linux-x64.tar.gz - Linux arm64:
eudiplo-vVERSION-linux-arm64.tar.gz - macOS arm64:
eudiplo-vVERSION-macos-arm64.tar.gz - Windows x64:
eudiplo-vVERSION-windows-x64.zip
install.sh is for Linux/macOS shells only. On Windows, use Node.js/npm or the
Windows x64 release archive.
Release assets and checksums:
npm package (@eudiplo/cli, Node.js 22+)¶
One-off execution:
Global install:
@eudiplo/cli, npx, and eudiplo¶
@eudiplo/cliis the npm package name.npx @eudiplo/cli ...runs the package without a global install.eudiplo ...runs the installed command (standalone or npm-installed).
Run a Local Demo Deployment¶
or, with npm one-off execution:
The demo command copies EUDIPLO's bundled Docker Compose deployment template, creates local demo assets, and starts a deliberately minimal stack using SQLite, local file storage, database-backed key management, and the web client:
.eudiplo.demo.envconfig/kms.json(global KMS configuration)config/demo(editable generated demo tenant configuration)
The standalone CLI removes the Node.js requirement only. Docker and Docker
Compose are still required for demo.
Demo mode warning: generated demo credentials are for local onboarding only and must not be used in production.
Register an Existing Deployment¶
For Kubernetes, Helm, standalone containers, or any externally managed instance, register the public API URL:
Instance metadata is stored in the user's EUDIPLO CLI config directory, not in
the source tree. Do not put secrets in this config; commands that need client
credentials read EUDIPLO_CLIENT_ID and EUDIPLO_CLIENT_SECRET from the
environment.
Deployment-Neutral Commands¶
These commands work with both compose and external instances and do not
require Docker:
eudiplo doctor --instance production
eudiplo status --instance production
eudiplo config validate
eudiplo --version
eudiplo version
--version and -v print the installed CLI version without network access.
version also checks the npm registry and reports whether an update is
available.
doctor checks the configured public URL, API reachability, /health, optional
client connectivity, and whether authentication environment variables are
available.
config validate parses the local CLI config, validates instance targets and
HTTP(S) URLs, verifies the default instance points to a configured instance, and
prints the configured instances. It does not require Docker or contact the
deployment.
Compose Driver Commands¶
These commands are available only for compose instances:
eudiplo init
eudiplo init ./eudiplo-minimal --preset minimal
eudiplo init ./eudiplo-standard --preset standard --start
eudiplo init --database postgres --storage local --kms vault
eudiplo init --preset standard --public-url https://eudiplo.example.com
eudiplo init --preset standard --demo-tenant
eudiplo up
eudiplo down
eudiplo logs
eudiplo demo --reset --force
When run in an interactive terminal, init opens a wizard for the project
directory, deployment preset, database, storage, key management, public URL,
authentication client, web client, and whether to start immediately. The
generated environment file is created with owner-only permissions. Leaving the
authentication secret empty generates a random secret.
The optional positional directory is the project root for generated Compose,
environment, override, and demo configuration files. It is created when needed.
When no directory is supplied, interactive init and demo commands prompt
with ./ as the default; non-interactive and --yes runs use ./
automatically. --directory <path> is an equivalent flag form. The CLI stores
its absolute path with the instance, so later up, down, logs, and doctor
commands work from any directory.
Each project has one config/ root mounted at /app/config. Global files such
as kms.json live directly in that root; tenant resources live under
config/<tenant-id>/. The initializer does not add a demo tenant unless
--demo-tenant is passed or selected in the wizard. Bundled demo private keys
explicitly use the DB provider, even when Vault is the default for new keys.
All wizard choices are also available as flags for repeatable setup:
| Preset | Database | Storage | Key management |
|---|---|---|---|
minimal |
SQLite | Local filesystem | Database-backed |
standard |
PostgreSQL | S3 via local MinIO | Database-backed |
full |
PostgreSQL | S3 via local MinIO | Vault |
Explicit --database, --storage, and --kms flags override the corresponding
preset choices. Use --yes or --no-interactive to suppress the wizard. Use
--auth-client-id and --auth-client-secret in automation; avoid exposing the
secret in shared shell history.
The older init --demo form remains available for compatibility and generates
demo assets without starting containers. New onboarding instructions should use
demo for evaluation and init for configurable deployments.
Local Tenant Configuration Commands¶
The tenant commands scaffold and manage local config-import folders:
eudiplo config tenant list
eudiplo config tenant create acme --name "Acme GmbH"
eudiplo config tenant create sample --template demo
eudiplo config tenant remove acme --force
create generates info.json and the supported resource subdirectories.
--template demo copies the bundled demo resources instead. Aliases ls,
new, rm, and delete are available.
By default, the selected Compose instance determines the config root. Use
--instance <name> to select another instance or --config-directory <path>
to work with a config root directly. remove deletes only local files; it does
not delete an already imported tenant from a running backend.
demo --reset --force recreates only CLI-managed demo assets and managed demo
volumes.
If a compose-only command is used against an external instance, the CLI returns a
clear error such as logs is not available for externally managed deployments.