Installation

Install Full On-Prem with the email config pack and an NVIDIA GPU (online or air-gap).

Installation

Choose the path that matches what you received from Open Ticket AI.

PathWhat you getWhat you install
Free Cloud TrialA URL and login detailsNothing — open the link and sign in
Full On-Prem (pilot or license)An email with otai.yml + install commandDocker Compose on your NVIDIA GPU host

This page covers Full On-Prem only. One software package serves all ticket systems; your emailed config already sets OTOBO, Zammad, or KIX.

What you need (Full On-Prem)

  • Docker Engine 24+, Docker Compose v2, and the NVIDIA Container Toolkit
  • An NVIDIA GPU with ≥ 24 GB VRAM (nvidia-smi must work on the host)
  • The config pack from your Open Ticket AI email (otai.yml)
  • Network access to your ticket system API (or an air-gapped copy of the release)
  • Enough host RAM for Runtime + local LLM (typically ≥ 32 GB on GPU hosts)

Config pack (from your email)

For a pilot or full license we send:

  1. otai.yml — license key, pinned version, and ticket system (site config)
  2. The install one-liner below

Do not invent API tokens or connector passwords — the installer generates them (see LD-043). The license JWT also encodes allowed software versions (min_version / max_version). Use the version in otai.yml — do not guess.

Example otai.yml (values filled by us):

license_key: eyJ...
version: 0.2.0
ticket_system: otobo # otobo | zammad | kix

Online install

On the GPU host with internet, copy otai.yml into the working directory, then:

curl -fsSL https://download.openticketai.com/download.sh | bash -s -- --bundle online
cd otai-*   # extracted release directory
cp ../otai.yml ./otai.yml   # if the file lived next to the download
./install.sh

install.sh:

  1. Checks host RAM, free disk, and NVIDIA GPU (GPU is required for Full On-Prem).
  2. Renders Compose .env from otai.yml + generated secrets, loads image tars, copies ticket-system packages.
  3. Starts Compose.
  4. Installs an otai command on your PATH.
  5. Asks whether to enable daily backupsYes is the default.

Non-interactive install

export OTAI_INSTALL_ASSUME_YES=1
export OTAI_ENABLE_BACKUPS=1          # default; set 0 to skip
export OTAI_BACKUP_SCHEDULE=daily     # daily | weekly
./install.sh

Air-gap install

  1. On a connected machine, download the air-gap bundle (version from otai.yml):

    export OTAI_VERSION=0.2.0   # same as version: in otai.yml
    export OTAI_LICENSE_KEY='eyJ...'
    curl -fsSL https://download.openticketai.com/download.sh | bash -s -- --bundle airgap
  2. Copy the extracted otai-<version>/ directory and otai.yml to the air-gapped GPU server.

  3. On the air-gapped server:

    cd /path/to/otai-<version>
    cp /path/to/otai.yml ./otai.yml
    # optional: OTAI_OLLAMA_MODELS_DIR=/path/to/ollama/models
    ./install.sh

Air-gap installs do not call the download API again. Containers validate the license locally on startup.

After install

  1. Open Studio in the browser (URL printed by the installer / Compose).

  2. Install the ticket-system add-on packages from install-packages/ into OTOBO / Zammad / KIX as required for your system (connector password was already generated and written for Studio/Runtime).

  3. Confirm health (use otai, not ./otai):

    otai verify
    otai version

If otai is not found, add ~/.local/bin to your PATH (the installer prints the exact line when it installs the user wrapper).

Host requirements (checked at install)

ResourceRequired / recommended
GPURequired: NVIDIA GPU ≥ 24 GB VRAM (nvidia-smi)
RAM≥ 32 GB recommended
Free disk≥ 20 GB (online); air-gap bundles need much more

Without a suitable NVIDIA GPU, Full On-Prem is not supported. Warnings for RAM or disk do not block install unless you decline to continue.

Persistent data

VolumePath in containerContents
otai-studio-data/app/data/otai-studio.dbStudio config (AI tasks, settings)
otai-runtime-data/app/data/otai-runtime.dbWorkflow run history / dashboard KPIs

Site values live in otai.yml. Secrets live in .otai/secrets.env. Compose .env is generated from both — do not hand-edit it. Ticket content stays in your ticket system database.

Next steps