Skip to content

Deployment

This page provides an overview of all deployment modes available for Kittox applications. For development setup, see Web Server Configuration.

Application directory

When deploying a Kittox application, you need to provide its Application Home directory with the executable file and the Metadata and Resources subdirectories.

During development, the Application Home and System Home directories are separated. In deployment, it is recommended that you merge them together, keeping the Application Home files in case of duplicates. Use an installer tool like InnoSetup to automate this.

The client-side libraries served under /res (HTMX, Alpine.js, the icons, kittox.css, kxgrid.js, …) live in the System Home Resources, so the merge must include them — otherwise the pages load without their assets. In particular, if your application exposes the REST API with Swagger UI (/api/v4/docs), make sure these two files are present in the deployed Resources:

    Resources/
      js/swagger-ui-bundle.js    # Swagger UI (from the framework System Home)
      css/swagger-ui.css

If you deploy only the Application Home (without merging the System Home), copy the required framework assets into the app's own Resources — the static route serves Home/Resources first, then falls back to the System Home (which may be absent in production).

MyApp/
  Home/
    Metadata/
      Config.yaml         # Database, auth, server port, theme
      Models/              # Data model YAML files
      Views/               # UI definition YAML files
      Layouts/             # Panel layout YAML files
    Resources/             # Static files: CSS, JS, icons, images
      icons/               # SVG icons (filled/, outlined/, round/, sharp/, two-tone/)
      js/                  # HTMX, Alpine, kxgrid.js, swagger-ui-bundle.js (if REST docs)
      css/                 # kittox.css, swagger-ui.css (if REST docs)
    ReportTemplates/       # Excel/PDF report templates (optional)
  MyApp.exe                # Standalone / Service / Console executable
  # or MyAppISAPI.dll      # ISAPI DLL for IIS
  # or mod_myapp.dll       # Apache module

Choosing a deployment mode

ModeExecutableHTTP ServerBest forGuide
Standalone (GUI).exeIndy (embedded)Development, small deploymentsStandalone
Windows Service.exe (same binary)Indy (embedded)Production on WindowsWindows Service
Service + Proxy.exe + nginx/Apache/IISIndy + reverse proxyProduction with HTTPS, multiple appsWindows Service, Proxy
Console.exe (separate .dpr)Indy (embedded)Docker, headless serversConsole
IIS (ISAPI DLL).dllIIS via WebBrokerEnterprise Windows hostingISAPI (IIS)
Apache module.dll / .soApache via WebBrokerLinux / cross-platformApache
Desktop Embedded.exeIndy + WebView2Desktop app look & feelDesktop Embedded

All modes use the same YAML metadata, the same controllers, and the same TKWebEngine core. The choice only affects how the HTTP server is hosted and managed.

Service + Proxy vs native modules

For production deployments, you can choose between:

  • Service + Proxy: the application runs as a Windows Service with its own Indy HTTP server; a reverse proxy (nginx, Apache, or IIS ARR) forwards requests. Each app can be restarted independently without affecting the web server or other apps.
  • Native modules (ISAPI/Apache): the application runs as a DLL loaded directly by the web server. Simpler setup (no proxy) but requires a full web server restart to update the DLL or reload YAML metadata.

See Windows Service Deployment for the proxy approach and Proxy Configuration for nginx/Apache/IIS setup details.

Common configuration

Regardless of deployment mode, every Kittox application uses Config.yaml for:

Session configuration applies to all modes:

yaml
Engine:
  Session:
    TimeOut: 30          # Session timeout in minutes
    CleanupInterval: 5   # Cleanup thread interval in seconds

Application tools

If your application uses one of the following tools, install the required software on the server:

ToolRequirement
ADOTool (Excel export)ADO/OLEDB provider
FlexCel (Excel export)FlexCel commercial license (TMS)
ReportBuilderReportBuilder commercial license (Digital Metaphors)
PDFMergeDebenu Quick PDF Library
FOPToolApache FOP 1.1

See also

Released under Apache License, Version 2.0.