Quick guide to set up and manage PPDM CLI configuration with multi-host support and security.
# Add production PPDM server
ppdm-cli config add production \
--ppdm-server ppdm.mycorp.com \
--port 8443 \
--username admin \
--password YourPassword123! \
--insecure-skip-verify false \
--timeout 30
# List configured hosts
ppdm-cli config list
# Set environment variables
export PPDM_HOST=ppdm.mycorp.com
export PPDM_USERNAME=admin
export PPDM_PASSWORD=YourPassword123!
export PPDM_PORT=8443
# Start using CLI immediately
ppdm-cli assets list
The CLI automatically detects plaintext passwords and prompts for encryption:
ppdm-cli config list
# 🔒 Security Required: Detected plaintext passwords
# Enter master password: ********
# Confirm master password: ********
# ✅ Security setup completed!
# Subsequent commands require master password
ppdm-cli assets list
# Enter master password: ********
Master Password Requirements:
# Production
ppdm-cli config add production \
--ppdm-server ppdm-prod.mycorp.com \
--username admin \
--password ProdPassword123! \
--timeout 30
# Staging
ppdm-cli config add staging \
--ppdm-server ppdm-staging.mycorp.com \
--username admin \
--password StagingPassword123! \
--insecure-skip-verify true \
--timeout 30
# Development
ppdm-cli config add development \
--ppdm-server ppdm-dev.mycorp.com \
--username devadmin \
--password DevPassword123! \
--timeout 45
# List all hosts
ppdm-cli config list
# production (DEFAULT) - ppdm-prod.mycorp.com:8443 (admin)
# staging - ppdm-staging.mycorp.com:8443 (admin)
# development - ppdm-dev.mycorp.com:8443 (devadmin)
# Switch default host
ppdm-cli config default staging
# Verify change
ppdm-cli config list
# staging (DEFAULT) - ppdm-staging.mycorp.com:8443 (admin)
# Change port and timeout
ppdm-cli config change production --port 9443 --timeout 60
# Update username and password
ppdm-cli config change staging \
--username newadmin \
--password NewPassword123!
# Toggle insecure setting
ppdm-cli config change development --insecure-skip-verify true
ppdm-cli config show production
# Host: production
# Server: ppdm-prod.mycorp.com:9443
# Username: admin
# Insecure: false
# Timeout: 60s
# Created: 2026-03-19 20:36:22
# Updated: 2026-03-19 21:45:03
# Remove a host
ppdm-cli config remove development
# Verify removal
ppdm-cli config list
# production (DEFAULT) - ppdm-prod.mycorp.com:8443 (admin)
# staging - ppdm-staging.mycorp.com:8443 (admin)
docker run -e PPDM_HOST=ppdm.mycorp.com \
-e PPDM_USERNAME=admin \
-e PPDM_PASSWORD=YourPassword123! \
-e PPDM_PORT=8443 \
quay.io/delldps/ppdm-cli:latest assets list
apiVersion: v1
kind: ConfigMap
data:
PPDM_HOST: "ppdm.mycorp.com"
PPDM_USERNAME: "admin"
PPDM_PASSWORD: "YourPassword123!"
PPDM_PORT: "8443"
---
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- name: ppdm-cli
image: quay.io/delldps/ppdm-cli:latest
envFrom:
- configMapRef:
name: ppdm-config
~/.ppdm/config.jsonPPDM_CONFIG_FILE environment variable.backup files createdIf you have an old configuration file, it will be automatically migrated:
# Old format (host field)
{
"hosts": {
"production": {
"host": "ppdm-old.com",
"password": "plaintext"
}
}
}
# format (ppdm-server field, encrypted password)
{
"version": "2.0",
"hosts": {
"production": {
"ppdm-server": "ppdm-old.com",
"password": "encrypted-password"
}
},
"encryption": {
"method": "aes256-gcm",
"master_password": true
}
}
| Variable | Description | Example |
|---|---|---|
PPDM_SERVER |
PPDM server address | ppdm.mycorp.com |
PPDM_USERNAME |
Username | admin |
PPDM_PASSWORD |
Password | mypassword |
PPDM_PORT |
Port | 8443 |
PPDM_INSECURE_SKIP_VERIFY |
Skip TLS verification | true |
PPDM_CONFIG_FILE |
Custom config file path | /app/config.json |
# Reset configuration if migration fails
rm ~/.ppdm/config.json
ppdm-cli config add production --ppdm-server ppdm.com --username admin --password newpass
# Reset security (loses encrypted passwords)
rm ~/.ppdm/config.json
# Re-add hosts with new master password
# Fix config file permissions
chmod 600 ~/.ppdm/config.json
chown $USER:$USER ~/.ppdm/config.json