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.

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/)
    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.