Skip to content

Standalone Deployment (Desktop GUI)

The simplest deployment mode: your Kittox application runs as a standard Windows executable with an embedded HTTP server (Indy). No external web server is required.

When to use

  • Development and debugging
  • Single-user or small team deployments
  • Quick demos and prototyping
  • Intranet applications with limited users

The .dpr file

pascal
program MyApp;
uses
  Kitto.Vcl.Start,
  Controllers, Rules, UseKitto;
begin
  TKStart.Start;
end.

TKStart.Start auto-detects whether the process is running as a desktop GUI or as a Windows Service (see Windows Service Deployment).

Desktop GUI features

TKMainForm (Kitto.Vcl.MainForm.pas) provides:

  • Start/Stop buttons to control the HTTP server
  • Log viewer with real-time server logs
  • Session monitor showing active sessions
  • Config selector to switch between multiple Config.yaml files
  • Home URL display with clickable link to open the browser

Server configuration (Config.yaml)

yaml
Server:
  # TCP port to listen on (default: 8080)
  Port: 8080
  # Bind to a specific interface (default: '' = all interfaces)
  # Use '127.0.0.1' to restrict to localhost only
  BindAddress: ''
  # Number of worker threads in the Indy thread pool (default: 20)
  ThreadPoolSize: 20

Engine:
  Session:
    # Session timeout in minutes (default: 10)
    TimeOut: 30
    # Session cleanup thread interval in seconds
    CleanupInterval: 5

Deployment steps

  1. Compile your application as a .exe (Release, Win64)
  2. Copy the executable and the Home/ directory to the target machine
  3. Edit Config.yaml with the production database connection and settings
  4. Run the executable
  5. Open a browser and navigate to http://localhost:8080/myapp/ (adjust port and path as configured)

Using behind a reverse proxy

For production deployments exposed to the internet, it is recommended to run as a Windows Service behind a reverse proxy (nginx, Apache, or IIS ARR). This provides:

  • HTTPS termination
  • Multiple apps on the same port under different paths
  • Independent restarts without affecting other apps
  • Security filtering

See Proxy Configuration for nginx, Apache, and IIS setup.

See also

Released under Apache License, Version 2.0.