EUDIPLO CLI Reference
The EUDIPLO CLI is available in two distributions:
- Standalone CLI — Native executable, no Node.js required
- npm package —
@eudiplo/cli, requires Node.js 22+
Both distributions use the command name eudiplo.
Installation
Standalone CLI (Linux/macOS)
curl -fsSL https://eudiplo.dev/install.sh | bash
eudiplo --version
The installer downloads a release archive and verifies it against SHA256SUMS.txt from the same GitHub release.
Supported 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
One-off execution:
npx @eudiplo/cli --version
Global install:
npm install -g @eudiplo/cli
eudiplo --version
Uninstall
Standalone CLI
rm "${EUDIPLO_INSTALL_DIR:-$HOME/.local/bin}/eudiplo"
npm Package
Global:
npm uninstall -g @eudiplo/cli
Project dependency:
pnpm remove @eudiplo/cli
Remove CLI metadata
The CLI stores instance metadata in ~/.eudiplo/config.json by default. Remove this directory only if you want to delete local CLI instance registrations:
rm -rf ~/.eudiplo
Commands
Demo Deployment
Start a local demo deployment with SQLite, local file storage, database-backed key management, and web client:
eudiplo demo ./eudiplo-demo
With npm:
npx @eudiplo/cli demo ./eudiplo-demo
What it does:
- Copies bundled Docker Compose deployment template
- Creates local demo assets (
.eudiplo.demo.env,config/kms.json,config/demo) - Starts a minimal stack using Docker Compose
Generated demo credentials are for local onboarding only and must not be used in production.
Container Runtime:
Docker is used by default. If Docker is not found, the CLI tries Podman. Force a specific runtime:
export EUDIPLO_CONTAINER_RUNTIME=docker
# or
export EUDIPLO_CONTAINER_RUNTIME=podman
Instance Management
Register and manage existing deployments (Kubernetes, Helm, standalone containers):
# Register an instance
eudiplo instance add production --url https://eudiplo.example.com
# List all instances
eudiplo instance ls
# Show instance details
eudiplo instance show production
# Set default instance
eudiplo instance use production
# Remove an instance
eudiplo instance remove old-production
Instance metadata is stored in the user's EUDIPLO CLI config directory (~/.eudiplo/config.json), not in the source tree. Never put secrets in this config; commands that need client credentials read EUDIPLO_CLIENT_ID and EUDIPLO_CLIENT_SECRET from environment variables.
Deployment-Neutral Commands
These commands work with both compose and external instances without requiring Docker:
# Check instance health and connectivity
eudiplo doctor --instance production
# Check deployment status
eudiplo status --instance production
# Validate local configuration
eudiplo config validate
# Set up JSON schema validation for editors
eudiplo config editor setup
# Version information
eudiplo --version # CLI version only
eudiplo version # CLI version + update check
What they do:
doctor— Checks public URL, API reachability,/health, optional client connectivity, and authentication env varsconfig validate— Parses local CLI config, validates instance targets and HTTP(S) URLsconfig path— Prints the resolved CLI config file pathconfig show— Inspects validated config contents (use--jsonfor scripts)config editor setup— Installs JSON Schemas and merges associations into.vscode/settings.jsonfor completion and validation
Shell Completion
Generate command, option, and enumerated-value completion:
# Bash
source <(eudiplo completion bash)
# Zsh
source <(eudiplo completion zsh)
# Fish
eudiplo completion fish | source
# PowerShell
eudiplo completion powershell | Out-String | Invoke-Expression
Save the generated script in your shell's completion directory to load it automatically in future sessions.
Compose Driver Commands
These commands are only available for compose instances:
# Initialize new deployment
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
# Manage containers
eudiplo up # Start services
eudiplo down # Stop services
eudiplo logs # View logs
# Reset demo
eudiplo demo --reset --force
Interactive wizard:
When run in an interactive terminal, init opens a wizard for:
- Project directory
- Deployment preset
- Database (SQLite/PostgreSQL)
- Storage (local/S3)
- Key management (DB/Vault)
- Public URL
- Authentication client
- Web client
- Auto-start option
Deployment presets:
| 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 |
Override preset choices with --database, --storage, and --kms flags.
Non-interactive mode:
Use --yes or --no-interactive to suppress the wizard. For automation:
eudiplo init --preset standard \
--public-url https://eudiplo.example.com \
--auth-client-id myapp \
--auth-client-secret mysecret \
--yes
Avoid exposing secrets in shared shell history when using --auth-client-secret in automation.
Tenant Configuration Commands
Scaffold and manage local config-import folders:
# List tenants
eudiplo config tenant list # or: ls
# Create new tenant
eudiplo config tenant create acme --name "Acme GmbH" # or: new
# Create from demo template
eudiplo config tenant create sample --template demo
# Remove tenant
eudiplo config tenant remove acme --force # or: rm, delete
What create does:
- Generates
info.json - Creates supported resource subdirectories
- With
--template demo, copies bundled demo resources
Config root selection:
- Default: Uses selected Compose instance's config root
--instance <name>— Select another instance--config-directory <path>— Work with a config root directly
remove deletes only local files; it does not delete an already imported tenant from a running backend.
Full Command Reference
For a compact list of every nested command:
eudiplo commands
For the complete reference in Markdown format:
eudiplo commands --format markdown
This generates the same command documentation embedded above.
Related Topics
- CLI Deployment Guide — Setup and usage guide
- Docker Compose Deployment — Deploy with Docker Compose
- Kubernetes Deployment — Deploy on K8s