Deploy Runtime + SocketD
Use the purchased bundle on a customer-managed host and verify both services before touching desktops.
1. Prepare DNS and TLS
- Create DNS records for the Runtime and SocketD hostnames.
- Wait until both names resolve to the Runtime host.
- Configure a trusted TLS certificate. Do not use a self-signed certificate for production desktops.
- 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.