9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
2.0 KiB
2.0 KiB
Linux portability
How to run ODS reliably across different Linux machines (with or without a GPU), recover from a bad reinstall, and work with extensions.
Installer
- 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). - Fedora/RHEL SELinux: Compose bind mounts use shared
:zlabels so enforcing SELinux can relabel ODS repo/data paths for containers. If you add custom bind mounts on SELinux systems, include:zas well.
Extensions and integrations
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.
Checklist on a new Linux machine
- 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./ods-preflight.sh --install-env) for a structured environment report with stable check IDs and optional--jsonoutput. - After a real install, run
./ods-preflight.sh(service health) andscripts/ods-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.