Before you begin
- An x64/amd64 Linux host running systemd
- Root or sudo access for package installation and service administration
- A current Community Edition DEB or RPM artifact from /download
- An organization name, administrator email, and long random password
- For access beyond the host: a client-reachable HTTP(S) origin plus the required firewall, DNS, and TLS configuration
- Before rollout: a compatible Orchestris Admin build or Admin origin supplied through the release handoff or Orchestris support
Choose and verify the published package
Open /download and select the Community Edition artifact for the host. Its download row shows the current version, filename, architecture, checksum, detached signature, and any stated operating-system requirement.
| Package | Use it for | Tested distribution |
|---|---|---|
| DEB (.deb), x64/amd64 | A Debian-family system whose requirements match the artifact shown on /download. | Ubuntu 24.04. |
| RPM (.rpm), x64/x86_64 | An RPM-based system whose package manager can satisfy the published package dependencies. | openSUSE Leap 15.6. Compatibility with Fedora and RHEL has not been confirmed. |
- Package
- DEB (.deb), x64/amd64
- Use it for
- A Debian-family system whose requirements match the artifact shown on /download.
- Tested distribution
- Ubuntu 24.04.
- Package
- RPM (.rpm), x64/x86_64
- Use it for
- An RPM-based system whose package manager can satisfy the published package dependencies.
- Tested distribution
- openSUSE Leap 15.6. Compatibility with Fedora and RHEL has not been confirmed.
The verification block is a template. Replace <DOWNLOADED_FILENAME> with the exact DEB or RPM filename from /download. Keep the package, its matching .asc signature, and the downloaded public key in the same folder before running it.
export ORCHESTRIS_PACKAGE="./<DOWNLOADED_FILENAME>"
# Compare this value with the SHA-256 displayed on /download.
sha256sum "$ORCHESTRIS_PACKAGE"
gpg --import ./orchestris-linux-release-key.asc
gpg --verify "${ORCHESTRIS_PACKAGE}.asc" "$ORCHESTRIS_PACKAGE"Install the DEB or RPM package
Install the local file through the distribution package manager so dependencies are resolved. Replace <VERSION> with the version in the downloaded filename before copying the matching template. A new service remains stopped until guided setup succeeds.
sudo apt update
export ORCHESTRIS_DEB="./orchestris_<VERSION>-1_amd64.deb"
test -f "$ORCHESTRIS_DEB"
sudo apt install "$ORCHESTRIS_DEB"sudo zypper refresh
export ORCHESTRIS_RPM="./orchestris-<VERSION>-1.x86_64.rpm"
test -f "$ORCHESTRIS_RPM"
sudo zypper --no-gpg-checks install "$ORCHESTRIS_RPM"Create the first organization administrator
sudo orchestris-setup- 1
Choose network access
Keep the default 127.0.0.1 for access from this computer only, choose 0.0.0.0 for local-network access, or enter a specific IP address. The default port is 8080.
- 2
Set the public API origin
Enter the HTTP(S) origin that Chat and browsers will actually use. Keep http://localhost:8080 only for local-only access; use the client-visible LAN or trusted reverse-proxy origin for other devices.
- 3
Create the organization and administrator
Enter the organization name, administrator email, and password twice. The password is read without echo. Setup initializes SQLite as the orchestris service user so the database remains service-owned.
- 4
Let setup enable the service
After configuration and initialization validate successfully, guided setup enables and starts orchestris.service.
Verify the service and open hosted Chat
sudo systemctl start orchestris.service
sudo systemctl stop orchestris.service
sudo systemctl restart orchestris.service
systemctl status --no-pager orchestris.servicecurl --fail --silent --show-error http://127.0.0.1:8080/health
curl --fail --silent --show-error http://127.0.0.1:8080/app/ >/dev/nullThe local checks use the default port and should exit without an error. After they pass, append /app/ to the public origin chosen during setup, open it from the intended client network, and sign in with the administrator account. The health check proves only that the server responds; it does not test a provider or model.
sudo journalctl -u orchestris.service -n 100 --no-pager
sudo journalctl -u orchestris.service --followBack up configuration and state together
| Back up | Path |
|---|---|
| Generated configuration and secrets | /etc/orchestris/orchestris.env |
| Operator overrides | /etc/orchestris/orchestris.env.local |
| SQLite database | /var/lib/orchestris/orchestris.db, with -wal and -shm files when present |
| Complete writable state | /var/lib/orchestris |
| Automatic upgrade snapshots | /var/lib/orchestris/backups/upgrade-<yyyyMMdd-HHmmss> |
- Back up
- Generated configuration and secrets
- Path
- /etc/orchestris/orchestris.env
- Back up
- Operator overrides
- Path
- /etc/orchestris/orchestris.env.local
- Back up
- SQLite database
- Path
- /var/lib/orchestris/orchestris.db, with -wal and -shm files when present
- Back up
- Complete writable state
- Path
- /var/lib/orchestris
- Back up
- Automatic upgrade snapshots
- Path
- /var/lib/orchestris/backups/upgrade-<yyyyMMdd-HHmmss>
Installed component reference
These package-owned files can be restored by reinstalling the same release. They are listed for troubleshooting and service administration, not as a substitute for the configuration-and-state backup above.
| Component | Path |
|---|---|
| API binary | /usr/bin/orchestris-api |
| Local initializer | /usr/bin/orchestris-local-init |
| Guided setup | /usr/bin/orchestris-setup |
| Hosted Chat assets | /usr/share/orchestris/hosted-web |
| File-detection runtime | /usr/lib/orchestris/libonnxruntime.so |
| Service logs | journald unit orchestris.service |
- Component
- API binary
- Path
- /usr/bin/orchestris-api
- Component
- Local initializer
- Path
- /usr/bin/orchestris-local-init
- Component
- Guided setup
- Path
- /usr/bin/orchestris-setup
- Component
- Hosted Chat assets
- Path
- /usr/share/orchestris/hosted-web
- Component
- File-detection runtime
- Path
- /usr/lib/orchestris/libonnxruntime.so
- Component
- Service logs
- Path
- journald unit orchestris.service
Advanced: change network settings
The systemd unit loads /etc/orchestris/orchestris.env first and then the optional /etc/orchestris/orchestris.env.local override. Keep generated secrets in the base file and place your network changes in the override file.
sudoedit /etc/orchestris/orchestris.env.localORCHESTRIS_SERVER__HOST=0.0.0.0
ORCHESTRIS_SERVER__PORT=8080
ORCHESTRIS_SERVER__PUBLIC_BASE_URL=https://ai.example.comShow the full service-equivalent configuration check
sudo env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin sh -c '
set -a
. /etc/orchestris/orchestris.env
[ ! -r /etc/orchestris/orchestris.env.local ] || . /etc/orchestris/orchestris.env.local
set +a
exec runuser -u orchestris -- /usr/bin/orchestris-api --config-check
'
sudo systemctl restart orchestris.serviceAdvanced: back up and upgrade
- 1
Create an independent recovery backup
Stop orchestris.service and archive both /etc/orchestris and the complete /var/lib/orchestris directory into protected backup storage. Include database WAL/SHM files and every secret, attachment, key, and state file; then restart the service.
- 2
Test the backup
Validate the archive and checksum, then periodically restore it to an isolated host. A successful /health response is only the first gate; also sign in, inspect representative records and attachments, and exercise a restored provider credential or pre-backup API key.
- 3
Read release notes
Confirm upgrade prerequisites, migrations, and rollback constraints before installing the newer DEB or RPM from /download.
- 4
Install the next package
Use the same distribution package manager used for the initial installation. If orchestris.service was active, the package upgrade stops it, validates the new installation, and attempts to start it again.
- 5
Verify application behavior
Check service status and logs, call /health, open /app/, sign in, and confirm provider and model access before reopening wider network access.
Advanced: remove package files without losing state
sudo apt remove orchestrissudo zypper remove orchestrisPackage removal stops and disables orchestris.service and removes package-owned program files. It intentionally preserves /etc/orchestris and /var/lib/orchestris. A later reinstall can reuse that configuration and state; the existing organization administrator also means local initialization remains complete.