Configuration
config-itop.php
The setup wizard writes the main configuration to conf/production/config-itop.php (persisted on the itop-conf volume). It is a PHP array of parameters you can edit directly — restart is not required, but the file must be writable by the web-server user during setup and read-only-safe afterwards.
// conf/production/config-itop.php (excerpt)
$MySettings = array(
// Database connection
'db_host' => 'db',
'db_user' => 'itop',
'db_pwd' => 'from-a-secret',
'db_name' => 'itop',
'db_subname' => '', // optional table prefix
// The public URL iTop generates links with — set this behind a reverse proxy
'app_root_url' => 'https://itop.example.com/',
// Path to graphviz 'dot' for impact diagrams
'graphviz_path' => '/usr/bin/dot',
// Security / sessions
'secure_connection_required' => true, // force HTTPS
'session_name' => 'iTop',
);
| Parameter | Purpose |
|---|---|
db_host / db_user / db_pwd / db_name |
Database connection (host is the Compose service name, db) |
app_root_url |
The externally visible base URL — must match your reverse-proxy hostname or links/emails break |
graphviz_path |
Location of graphviz dot, used to render impact/dependency graphs |
secure_connection_required |
Rejects non-HTTPS access (set once TLS is in front) |
log_level / query_log_enabled |
Logging verbosity and SQL query logging (see Monitoring) |
Important
When iTop runs behind a reverse proxy, set app_root_url to the public HTTPS URL, and make sure the proxy forwards X-Forwarded-Proto. Otherwise iTop generates http:// links, mixed-content warnings, and broken redirects. See Security.
The Cron Scheduler
iTop performs background work — sending queued notifications, escalating tickets against SLAs, running scheduled data synchronizations — through webservices/cron.php, which must run regularly (typically every minute). Without it, notifications never send and SLA timers don't fire.
The Deployment Compose file runs it as a dedicated cron service. Equivalently, on a host cron:
* * * * * php /var/www/html/webservices/cron.php --auth_user=admin --auth_pwd=SECRET >/dev/null 2>&1
Inspect scheduled background tasks in the UI under Admin tools → Background tasks, or check the log:
docker logs itop-cron --tail 30
docker exec itop-app tail -f /var/www/html/log/cron.log
Tip
Run cron.php with a dedicated service account that has only the profiles it needs, not the primary admin. Store its password in a secret, and verify in Background tasks that jobs show recent "Last run" times — a stalled cron is a common cause of "notifications aren't sending".
Modules and Extensions
iTop's functionality is delivered as datamodel modules. The core ITIL modules are chosen during setup; additional extensions (asset management add-ons, connectors, the Mail-to-Ticket automation, etc.) come from the iTop Hub store.
To add an extension:
- Place the extension folder under
extensions/in the web root (bake it into your image or mount it). - Re-run setup (upgrade mode) so iTop compiles the new module into
env-production/, or apply it via the Toolkit. - Verify it appears under Admin tools → iTop configuration.
# In your image: add an extension so it's part of the build
COPY extensions/my-extension /var/www/html/extensions/my-extension
Note
iTop compiles the active modules into the env-production/ directory. Adding, removing, or updating a module requires a recompile (re-run setup or use the Toolkit) — simply dropping files in does nothing until the model is rebuilt. Keep env-production/ on a volume so the compiled model persists.
The Toolkit (Designer)
The Toolkit (toolkit/ in the web root, or the online iTop Designer) customizes the data model without editing XML by hand — add classes, fields, relationships, and lifecycle states. It regenerates the datamodel XML, which you then apply by recompiling.
Workflow:
- Open the Toolkit and make changes (new attribute, new class, workflow state).
- Export the resulting
datamodeldelta as a module. - Apply it by re-running setup so
env-production/is rebuilt.
Warning
Always back up before a data-model change (see Backup and Recovery). Structural changes alter the database schema; test them in a staging copy first, because a bad model change can be disruptive to reverse on a production ticketing system.
Localization and Portal
- Language is chosen at setup and per-user in profile preferences; additional language packs are extensions.
- The Service Portal (
/pages/exec.php?exec_module=itop-portal...) is the simplified end-user interface, distinct from the full back-office console — configure which users land on the portal via their profiles.