Most of the server global parameters are set in the XML configuration file. On Linux platforms the path to the file is /opt/traccar/conf/
; on Windows the path can be changed during the installation process, but by default it should be in C:\Program Files\Traccar\conf
. Configuration file can be edited using any text editor. Please make sure it's a valid XML file and special characters are escaped.
Some of the parameters are configured via attributes on Device, Server and other objects through the web app. Check the badge next to an attribute key for information on where the parameter can be used.
For boolean (true/false) values, if the value is not specified the server treats it as false.
List of available configuration parameters:
Network interface for a the protocol. If not specified, server will bind all interfaces.
Port number for the protocol. Most protocols use TCP on the transport layer. Some protocols use UDP. Some support both TCP and UDP.
List of devices for polling protocols. List should contain unique ids separated by commas. Used only for polling protocols.
Polling interval in seconds. Used only for polling protocols.
Enable SSL support for the protocol. Not all protocols support this.
Connection timeout value in seconds. Because sometimes there is no way to detect lost TCP connection old connections stay in open state. On most systems there is a limit on number of open connection, so this leads to problems with establishing new connections when number of devices is high or devices data connections are unstable.
Device password. Commonly used in some protocol for sending commands.
Device password. Commonly used in some protocol for sending commands.
Default protocol mask to use. Currently used only by Skypatrol protocol.
Custom message length. Currently used only by H2 protocol for specifying binary message length.
Enable extended functionality for the protocol. The reason it's disabled by default is that not all devices support it.
Decode string as UTF8 instead of ASCII. Only applicable for some protocols.
Enable CAN decoding for the protocol. Similar to 'extended' configuration, it's not supported for some devices.
Indicates whether server acknowledgement is required. Only applicable for some protocols.
Ignore device reported fix time. Useful in case some devices report invalid time. Currently only available for GL200 protocol.
Decode additional TK103 attributes. Not supported for some devices.
Use long date format for Atrack protocol.
Use decimal fuel value format for Atrack protocol.
Indicates additional custom attributes for Atrack protocol.
Custom format string for Atrack protocol.
Protocol configuration. Required for some devices for decoding incoming data.
Alarm mapping for Atrack protocol.
Indicates whether TAIP protocol should have prefixes for messages.
Some devices require server address confirmation. Use this parameter to configure correct public address.
Protocol type for Suntech.
Suntech HBM configuration value.
Format includes ADC value.
Format includes RPM value.
Format includes temperature values.
Protocol format. Used by protocols that have configurable message format.
Protocol date format. Used by protocols that have configurable date format.
Device time zone. Most devices report UTC time, but in some cases devices report local time, so this parameter needs to be configured for the server to be able to decode the time correctly.
ORBCOMM API access id.
ORBCOMM API password.
Use alternative format for the protocol of commands.
Protocol format includes a language field.
Server wide connection timeout value in seconds. See protocol timeout for more information.
Address for uploading aggregated anonymous usage statistics. Uploaded information is the same you can see on the statistics screen in the web app. It does not include any sensitive (e.g. locations).
Fuel drop threshold value. When fuel level drops from one position to another for more the value, an event is generated.
Fuel increase threshold value. When fuel level increases from one position to another for more the value, an event is generated.
Speed limit value in knots.
Minimal over speed duration to trigger the event. Value in seconds.
Relevant only for geofence speed limits. Use the lowest speed limit from all geofences.
Driver behavior acceleration threshold. Value is in meter per second squared.
Driver behavior braking threshold. Value is in meter per second squared.
Do not generate alert event if same alert was present in last known location.
If set to true, invalid positions will be considered for motion logic.
If the speed is above specified value, the object is considered to be in motion. Default value is 0.01 knots.
Global polyline geofence distance. Within that distance from the polyline, point is considered within the geofence. Each individual geofence can also has 'polylineDistance' attribute which will take precedence.
Path to the database driver JAR file. Traccar includes drivers for MySQL, PostgreSQL and H2 databases. If you use one of those, you don't need to specify this parameter.
Database driver Java class. For H2 use 'org.h2.Driver'. MySQL driver class name is 'com.mysql.jdbc.Driver'.
Database connection URL. By default Traccar uses H2 database.
Database user name. Default administrator user for H2 database is 'sa'.
Database user password. Default password for H2 admin (sa) user is empty.
Path to Liquibase master changelog file.
Database connection pool size. Default value is defined by the HikariCP library.
SQL query to check connection status. Default value is 'SELECT 1'. For Oracle database you can use 'SELECT 1 FROM DUAL'.
Store original HEX or string data as "raw" attribute in the corresponding position.
Throttle unknown device database queries when it sends repeated requests.
By default, server syncs with the database if it encounters and unknown device. This flag allows to disable that behavior to improve performance in some cases.
Automatically register unknown devices in the database.
Default category for auto-registered devices.
The group id assigned to auto-registered devices.
Store empty messages as positions. For example, heartbeats.
Device limit for self registered users. Default value is -1, which indicates no limit.
Default user expiration for self registered users. Value is in days. By default no expiration is set.
LDAP server URL. For more info check LDAP config.
LDAP server login.
LDAP server password.
Force LDAP authentication.
LDAP user search base.
LDAP attribute used as user id. Default value is 'uid'.
LDAP attribute used as user name. Default value is 'cn'.
LDAP attribute used as user email. Default value is 'mail'.
LDAP custom search filter. If not specified, '({idAttribute}=:login)' will be used as a filter.
LDAP custom admin search filter.
LDAP admin user group. Used if custom admin filter is not specified.
If no data is reported by a device for the given amount of time, status changes from online to unknown. Value is in seconds. Default timeout is 10 minutes.
List of protocol names to ignore offline status. Can be useful to not trigger status change when devices are configured to disconnect after reporting a batch of data.
Path to the media folder. Server stores audio, video and photo files in that folder. Sub-folders will be automatically created for each device by unique id.
Optional parameter to specify network interface for web interface to bind to. By default server will bind to all available interfaces.
Web interface TCP port number. By default Traccar uses port 8082. To avoid specifying port in the browser you can set it to 80 (default HTTP port).
Maximum API requests per second. Above this limit requests and delayed and throttled.
Sanitize all strings returned via API. This is needed to fix XSS issues in the old web interface. New React-based interface doesn't require this.
Path to the web app folder.
WebSocket connection timeout in milliseconds. Default timeout is 10 minutes.
Authentication sessions timeout in seconds. By default no timeout.
Enable database access console via '/console' URL. Use only for debugging. Never use in production.
Server debug version of the web app. Not recommended to use for performance reasons. It is intended to be used for development and debugging purposes.
A token to login as a virtual admin account. Can be used to restore access in case of issues with regular admin login. For example, if password is lost and can't be restored.
Cross-origin resource sharing origin header value.
Cache control header value. By default resources are cached for one hour.
Position forwarding format. Available options are "url", "json" and "kafka". Default is "url".
Position forwarding Kafka topic.
URL to forward positions. Data is passed through URL parameters. For example, {uniqueId} for device identifier, {latitude} and {longitude} for coordinates.
Additional HTTP header, can be used for authorization.
Position forwarding retrying enable. When enabled, additional attempts are made to deliver positions. If initial delivery fails, because of an unreachable server or an HTTP response different from '2xx', the software waits for 'forward.retry.delay' milliseconds to retry delivery. On subsequent failures, this delay is duplicated. If forwarding is retried for 'forward.retry.count', retrying is canceled and the position is dropped. Positions pending to be delivered are limited to 'forward.retry.limit'. If this limit is reached, positions get discarded.
Position forwarding retry first delay in milliseconds. Can be set to anything greater than 0. Defaults to 100 milliseconds.
Position forwarding retry maximum retries. Can be set to anything greater than 0. Defaults to 10 retries.
Position forwarding retry pending positions limit. Can be set to anything greater than 0. Defaults to 100 positions.
Events forwarding format. Available options are "json" and "kafka". Default is "json".
Events forwarding Kafka topic.
Events forwarding URL.
Events forwarding headers. Example value: FirstHeader: hello SecondHeader: world
Root folder for all template files.
Log emails instead of sending them via SMTP. Intended for testing purposes only.
Force SMTP settings from the config file and ignore user attributes.
The SMTP server to connect to.
The SMTP server port to connect. Defaults to 25.
Email transport protocol. Default value is "smtp".
If true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands.
If true, requires the use of the STARTTLS command. If the server doesn't support the STARTTLS command, or the command fails, the connect method will fail.
If set to true, use SSL to connect and use the SSL port by default.
If set to "*", all hosts are trusted. If set to a whitespace separated list of hosts, those hosts are trusted. Otherwise, trust depends on the certificate the server presents.
Specifies the SSL protocols that will be enabled for SSL connections.
SMTP connection username.
SMTP connection password.
Email address to use for SMTP MAIL command.
The personal name for the email from address.
SMS API service full URL. Enables SMS commands and notifications.
SMS API authorization header name. Default value is 'Authorization'.
SMS API authorization header value. This value takes precedence over user and password.
SMS API basic authentication user.
SMS API basic authentication password.
SMS API body template. Placeholders {phone} and {message} can be used in the template. If value starts with '{' or '[', server automatically assumes JSON format.
AWS Access Key with SNS permission.
AWS Secret Access Key with SNS permission.
AWS Region for SNS service. Make sure to use regions that are supported for messaging.
Enabled notification options. Comma-separated string is expected. Example: web,mail,sms
Traccar notification API key.
Firebase service account JSON.
Pushover notification user name.
Pushover notification user token.
Telegram notification API key.
Telegram notification chat id to post messages to.
Telegram notification send location message.
Maximum time period for reports in seconds. Can be useful to prevent users to request unreasonably long reports. By default there is no limit.
Trips less than minimal duration and minimal distance are ignored. 300 seconds and 500 meters are default.
Trips less than minimal duration and minimal distance are ignored. 300 seconds and 500 meters are default.
Parking less than minimal duration does not cut trip. Default 300 seconds.
Gaps of more than specified time are counted as stops. Default value is one hour.
Flag to enable ignition use for trips calculation.
Ignore odometer value reported by the device and use server-calculated total distance instead. This is useful if device reports invalid or zero odometer values.
Boolean flag to enable or disable position filtering.
Filter invalid (valid field is set to false) positions.
Filter zero coordinates. Zero latitude and longitude are theoretically valid values, but it practice it usually indicates invalid GPS data.
Filter duplicate records (duplicates are detected by time value).
Filter records with fix time in the future. The value is specified in seconds. Records that have fix time more than the specified number of seconds later than current server time would be filtered out.
Filter records with fix time in the past. The value is specified in seconds. Records that have fix time more than the specified number of seconds before current server time would be filtered out.
Filter positions with accuracy less than specified value in meters.
Filter cell and wifi locations that are coming from geolocation provider.
Filter positions with exactly zero speed values.
Filter records by distance. The values is specified in meters. If the new position is less far than this value from the last one it gets filtered out.
Filter records by Maximum Speed value in knots. Can be used to filter jumps to far locations even if Position appears valid or if Position `speed` field reported by the device is also within limits. Calculates speed from the distance to the previous position and the elapsed time. Tip: Shouldn't be too low. Start testing with values at about 25000.
Filter position if time from previous position is less than specified value in seconds.
If false, the server expects all locations to come sequentially (for each device). Filter checks for duplicates, distance, speed, or time period only against the location that was last received by server. If true, the server expects locations to come at random order (since tracking device might go offline). Filter checks for duplicates, distance, speed, or time period against the preceding Position's. Important: setting to true can cause potential performance issues.
Time limit for the filtering in seconds. If the time difference between the last position was received by server and a new position is received by server is more than this limit, the new position will not be filtered out.
Enable attributes skipping. Attribute skipping can be enabled in the config or device attributes. If position contains any attribute mentioned in "filter.skipAttributes" config key, position is not filtered out.
Attribute skipping can be enabled in the config or device attributes. If position contains any attribute mentioned in "filter.skipAttributes" config key, position is not filtered out.
Override device time. Possible values are 'deviceTime' and 'serverTime'
List of protocols to enable. If not specified, Traccar enabled all protocols that have port numbers listed. The value is a comma-separated list of protocol names. Example value: teltonika,osmand
List of protocols for overriding time. If not specified override is applied globally. List consist of protocol names that can be separated by comma or single space character.
Replaces coordinates with last known if change is less than a 'coordinates.minError' meters or more than a 'coordinates.maxError' meters. Helps to avoid coordinates jumps during parking period or jumps to zero coordinates.
Distance in meters. Distances below this value gets handled like explained in 'coordinates.filter'.
Distance in meters. Distances above this value gets handled like explained in 'coordinates.filter', but only if Position is also marked as 'invalid'.
Enable to save device IP addresses information. Disabled by default.
Enable copying of missing attributes from last position to the current one. Might be useful if device doesn't send some values in every message.
List of attributes to copy. Attributes should be separated by a comma without any spacing. For example: alarm,ignition
Enable computed attributes processing.
Boolean flag to enable or disable reverse geocoder.
Reverse geocoder type. Check reverse geocoding documentation for more info. By default (if the value is not specified) server uses Google API.
Geocoder server URL. Applicable only to Nominatim and Gisgraphy providers.
App id for use with Here provider.
Provider API key. Most providers require API keys.
Language parameter for providers that support localization (e.g. Google and Nominatim).
Address format string. Default value is %h %r, %t, %s, %c. See AddressFormat for more info.
Cache size for geocoding results.
Disable automatic reverse geocoding requests for all positions.
Boolean flag to apply reverse geocoding to invalid positions.
Optional parameter to specify minimum distance for new reverse geocoding request. If distance is less than specified value (in meters), then Traccar will reuse last known address.
Perform geocoding when preparing reports and sending notifications.
Boolean flag to enable LBS location resolution. Some devices send cell towers information and WiFi point when GPS location is not available. Traccar can determine coordinates based on that information using third party services. Default value is false.
Provider to use for LBS location. Available options: google, mozilla and opencellid. By default opencellid is used. You have to supply a key that you get from corresponding provider. For more information see LBS geolocation documentation.
Geolocation provider API URL address. Not required for most providers.
Provider API key. OpenCellID service requires API key.
Boolean flag to apply geolocation to invalid positions.
Reuse last geolocation result if network details have not changed.
Default MCC value to use if device doesn't report MCC.
Default MNC value to use if device doesn't report MNC.
Boolean flag to enable speed limit API to get speed limit values depending on location. Default value is false.
Provider to use for speed limit. Available options: overpass. By default overpass is used.
Speed limit provider API URL address.
Override latitude sign / hemisphere. Useful in cases where value is incorrect because of device bug. Value can be N for North or S for South.
Override longitude sign / hemisphere. Useful in cases where value is incorrect because of device bug. Value can be E for East or W for West.
Jetty Request Log Path. The path must include the string "yyyy_mm_dd", which is replaced with the actual date when creating and rolling over the file. Example: ./logs/jetty-yyyy_mm_dd.request.log
Set the number of days before rotated request log files are deleted.
Disable systemd health checks.
Sets SameSite cookie attribute value. Supported options: Lax, Strict, None.
Enables persisting Jetty session to the database
Public URL for the web app. Used for notification and report link. If not provided, Traccar will attempt to get a URL from the server IP address, but it might be a local address.
Output logging to the standard terminal output instead of a log file.
Log executed SQL queries.
Log file name. For rotating logs, a date is added at the end of the file name for non-current logs.
Logging level. Default value is 'info'. Available options: off, severe, warning, info, config, fine, finer, finest, all.
Print full exception traces. Useful for debugging. By default shortened traces are logged.
Create a new log file daily. Helps with log management. For example, downloading and cleaning logs. Enabled by default.
A list of position attributes to log.
Multicast interface. It can be either an IP address or an interface name.
Multicast address for broadcasting synchronization events.
Multicast port for broadcasting synchronization events.