ReferenceCLISystem
System Install
System Install CLI command reference
goodmem system install
Install the goodmem server
Synopsis
Install GoodMem server with either a local PostgreSQL database or connect to a remote database.
By default, installs with a local PostgreSQL database running in Docker. Use --remote-db flags to connect to an existing PostgreSQL instance.
goodmem system install [flags]Examples
# Install with local database (default, auto-generates profile name)
goodmem system install
# Install with a specific profile name
goodmem system install --profile-name my-dev
# Install with remote database using DSN
goodmem system install --remote-db --db-url "postgresql://user:pass@host:5432/goodmem"
# Install with remote database using individual flags
goodmem system install --remote-db --db-url "host:port/goodmem" --db-user myuser --db-password mypass
# Install to custom directory
goodmem system install --dir /opt/goodmem
# Install with TLS configuration
goodmem system install --tls-cert /path/to/cert.pem --tls-key /path/to/key.pem
# Skip Docker installation (if already installed)
goodmem system install --skip-docker-install
# Install using rootless Docker (no sudo for runtime ops; non-root user only)
goodmem system install --runtime=rootless-docker
# Install on Google Container-Optimized OS (COS) — remote DB required
goodmem system install --remote-db --db-url "postgresql://user:pass@host:5432/goodmem" --db-user myuser --db-password mypassOptions
--checkmark-logger Use simple checkmark logger (recommended for CI/CD environments)
--db-password string Database password (if not in URL)
--db-url string Database URL (format: postgresql://user:pass@host:port/db or host:port/db)
--db-user string Database username (if not in URL)
--debug Enable debug logging
--dir string Installation directory for GoodMem (default "/home/amin/.goodmem")
--goodmem-image string Docker image for the GoodMem server (default: ghcr.io/pair-systems-inc/goodmem/server:latest). Point at a mirrored registry for network-restricted environments (e.g. ghcr.nju.edu.cn/pair-systems-inc/goodmem/server:latest).
--grpc-port int Preferred gRPC port (installer scans from this port if unavailable) (default 9090)
--handsfree Non-interactive mode - use only flags, no prompts
-h, --help help for install
--no-sudo Never use sudo for privileged install steps. The installer already runs without sudo wherever it can and skips sudo automatically when it is already root (e.g. in a container); this flag forces escalation off entirely, so no step will invoke sudo. It applies to every privileged step — the system-Docker daemon start and docker-group add, the WSL Docker CLI/apt/keyring setup, the cosign binary install, and the rootless-docker one-time prerequisites. If a step genuinely needs root and cannot escalate, it surfaces the failure with guidance instead of invoking sudo.
--pgvector-image string Docker image for the pgvector container in local-db mode (default: pgvector/pgvector:pg17 on docker.io). Point at a mirrored registry for network-restricted environments (e.g. mirror.gcr.io/pgvector/pgvector:pg17).
--platform string Target platform (auto-detected, override only for cross-platform scenarios) (default "linux-amd64")
--profile-name string CLI profile name for this install (auto-generated if empty)
--remote-db Use remote PostgreSQL database instead of local container
--rest-port int Preferred REST port (installer scans from this port if unavailable) (default 8080)
--runtime string Container runtime for the GoodMem services. Valid values: 'docker' (default) installs system Docker via get.docker.com and requires sudo to install; 'rootless-docker' installs Docker that runs entirely as the current user, with no sudo for runtime operations. rootless-docker targets non-root Linux and WSL2 users (it errors if run as root or under sudo), automatically installs one-time prerequisites through the system package manager (apt, dnf, yum, pacman, or zypper), and prints guidance with a documentation link when a prerequisite cannot be resolved automatically. rootless-docker is not supported on macOS. (default "docker")
--skip-docker-install Skip automatic Docker installation (assumes Docker is already installed)
--skip-verify Skip Docker image signature verification (for testing/development)
--tls-cert string Path to TLS certificate file
--tls-disabled Disable TLS for server connections
--tls-key string Path to TLS private key fileOptions inherited from parent commands
--api-key string API key for authentication (can also be set via GOODMEM_API_KEY environment variable)
--server string GoodMem server address (gRPC API)SEE ALSO
- goodmem system - System-level operations and administration