Skip to Content
XiotBox Documentation

Deploy Runtime + SocketD

Use the purchased bundle on a customer-managed host and verify both services before touching desktops.

Odoo 19 · XiotBox 19.0.2
Download the Runtime bundle that matches your licence and Odoo release from Customer Downloads. The Odoo Apps ZIP does not contain executables.

1. Prepare DNS and TLS

  1. Create DNS records for the Runtime and SocketD hostnames.
  2. Wait until both names resolve to the Runtime host.
  3. Configure a trusted TLS certificate. Do not use a self-signed certificate for production desktops.
  4. Allow inbound TCP 443 and outbound HTTPS to the Odoo URL.

2. Verify the download

Compare the file's SHA-256 checksum with the value shown in Customer Downloads. Stop if it differs. Extract the bundle into a dedicated directory readable only by the service administrator.

3. Create the environment file

OG_RUNTIME_PUBLIC_URL=https://runtime.example.com
OG_ODOO_INTERNAL_URL=https://odoo.example.com
OG_ODOO_DATABASE=
OG_RUNTIME_TOKEN=
SOCKETD_API_BASE_URL=https://odoo.example.com
SOCKETD_PUBLIC_URL=wss://socketd.example.com/ws
SOCKETD_TOKEN=
SOCKETD_DB_NAME=

Use the exact variable names supplied with your downloaded release. A release-specific sample environment file is authoritative when it differs from this conceptual example.

4. Start the Docker bundle

Customer Downloads supplies a versioned archive with docker-compose.yml and .env.example. On the Runtime host, use the following sequence:

mkdir -p /opt/xiotbox
cd /opt/xiotbox
unzip ~/Downloads/xiotbox-runtime-.zip
cd xiotbox-runtime-
cp .env.example .env
nano .env                 # enter the URLs, database and tokens
docker compose config     # must finish without an error
docker compose pull
docker compose up -d
docker compose ps

Every service shown by docker compose ps must be running or healthy. If your bundle uses a private registry, follow the login command displayed in Customer Downloads before docker compose pull. Never run Runtime permanently from an SSH terminal.

5. Test before continuing

curl -fsS https://runtime.example.com/healthz
docker compose logs --tail=100 runtime
  • The health command must return a healthy response.
  • The logs must contain no token, database, certificate or repeated reconnect error.
  • Test the SocketD hostname from the same network as a desktop computer.
  • Restart with docker compose restart runtime, wait 15 seconds and repeat the health check.
  • Return to Odoo and confirm Runtime API requests no longer report connection errors.
Checkpoint: Runtime survives a service restart, its health endpoint passes, and SocketD is reachable through TLS/WSS.