How to run Dream Server reliably across different Linux machines (with or without a GPU), recover from a bad reinstall, and work with extensions.
- Entry:
install.sh→install-core.sh— see INSTALLER-ARCHITECTURE.md. - CPU-only systems: With a capability profile, set
CAP_LLM_BACKEND=cpuso the installer keeps CPU inference (see02-detection.sh). - Re-running the installer: If a previous run left directories owned by container users, the installer checks that
config/*anddata/*are writable before copying files, usesrsyncwithout preserving foreign ownership, and tells you tochownif something is still blocked (06-directories.sh).
Services are declared under extensions/services/<name>/manifest.yaml for dashboard health and feature metadata. Schema: extensions/schema/service-manifest.v1.json. To add or change a service, follow EXTENSIONS.md.
- Docker and Compose v2 work; your user can run containers (e.g. member of the
dockergroup). ./install.sh --dry-runfinishes without errors.- Before or after install, run
./scripts/linux-install-preflight.sh(or./dream-preflight.sh --install-env) for a structured environment report with stable check IDs and optional--jsonoutput. - After a real install, run
./dream-preflight.sh(service health) andscripts/dream-doctor.shif you use them.
More context: LINUX-TROUBLESHOOTING-GUIDE.md (ID-indexed fixes), FIELD-INSTALL-REPORT-LINUX.md (bug report template), SUPPORT-MATRIX.md, TROUBLESHOOTING.md.
Extension PRs that touch catalog vs core: EXTENSION-PR-BRANCHING.md.