Configuration Reference

All CLI flags, environment variables, and config file options

Connection

FlagEnvYAMLDefaultDescription
--host HOST host - Remote host required
--user HOST_USER user current user SSH username
--ssh-port SSH_PORT sshPort 22 SSH port
--ssh-key SSH_KEY_PATH sshKey - Path to SSH private key

Image

FlagEnvYAMLDefaultDescription
--image DOCKER_IMAGE_NAME image app Docker image name
--dockerfile DOCKERFILE dockerfile Dockerfile Dockerfile path
--tag DOCKER_IMAGE_TAG tag latest Image tag
--platform HOST_PLATFORM platform linux/amd64 Target platform
--build-arg DOCKER_BUILD_ARGS buildArgs - Build argument (repeatable)

Container

FlagEnvYAMLDefaultDescription
--container-name DOCKER_CONTAINER_NAME containerName app Container name
--container-port DOCKER_CONTAINER_PORT containerPort 3000 Port inside container
--host-port HOST_PORT hostPort 3000 Port on host
--restart RESTART_POLICY restartPolicy unless-stopped Restart policy
--network DOCKER_NETWORK network - Docker network name
--hostname CONTAINER_HOSTNAME hostname - Container hostname
--env-file DOCKER_CONTAINER_ENV_FILE envFile - Environment file path
--env - env - Environment variable (repeatable)
--volume DOCKER_VOLUMES volumes - Volume mount (repeatable)
--add-host - extraHosts - Add host entry (repeatable)

Resources

FlagEnvYAMLDefaultDescription
--cpus DOCKER_CPUS cpus - CPU limit (e.g., 0.5, 2)
--memory DOCKER_MEMORY memory - Memory limit (e.g., 512m, 2g)

Health Check

FlagEnvYAMLDefaultDescription
--health-cmd HEALTH_CMD healthCmd - Health check command
--health-interval HEALTH_INTERVAL healthInterval - Check interval (e.g., 30s)
--health-timeout HEALTH_TIMEOUT healthTimeout - Check timeout (e.g., 10s)
--health-retries HEALTH_RETRIES healthRetries - Failure threshold
--health-start-period HEALTH_START_PERIOD healthStartPeriod - Startup grace period

Security

FlagEnvYAMLDefaultDescription
--container-user CONTAINER_USER containerUser - User to run as (e.g., 1000:1000)
--privileged PRIVILEGED privileged false Privileged mode
--read-only READ_ONLY readOnly false Read-only root filesystem
--init INIT init false Use init process
--cap-add - capAdd - Add capability (repeatable)
--cap-drop - capDrop - Drop capability (repeatable)
--tmpfs - tmpfs - tmpfs mount (repeatable)

Logging

FlagEnvYAMLDefaultDescription
--log-driver LOG_DRIVER logDriver - Logging driver (json-file, syslog, etc.)
--log-opt - logOpts - Log option (repeatable)

Advanced

FlagEnvYAMLDefaultDescription
--entrypoint - entrypoint - Override entrypoint
--command - command - Override CMD
--workdir WORKDIR workdir - Working directory
--label - labels - Label (repeatable)
--remote-command REMOTE_COMMANDS remoteCommands - Post-deploy command (repeatable)
--config - - pipe.yaml Config file path
--rollback - - false Rollback to previous version

Output

FlagEnvYAMLDefaultDescription
--dry-run DRY_RUN - false Preview without making changes
--verbose, -v VERBOSE - false Detailed output
--json JSON_OUTPUT - false Output stats as JSON

Full YAML Example

# pipe.yaml
host: prod.example.com
user: deploy
sshKey: ~/.ssh/deploy_key

image: my-app
tag: ${VERSION:-latest}
platform: linux/amd64

containerName: my-app
containerPort: "3000"
hostPort: "80"
restartPolicy: unless-stopped

healthCmd: "curl -f http://localhost:3000/health || exit 1"
healthInterval: "30s"
healthTimeout: "10s"
healthRetries: 3

cpus: "1"
memory: "512m"

env:
  NODE_ENV: production
  LOG_LEVEL: warn

volumes:
  - /data:/app/data
  - /logs:/app/logs

labels:
  app: my-app
  environment: production

logDriver: json-file
logOpts:
  max-size: "10m"
  max-file: "3"

init: true

remoteCommands:
  - "docker system prune -f --filter 'until=24h'"