<properties>
<entry key='database.driver'>org.postgresql.Driver</entry>
<entry key='database.url'>jdbc:postgresql://127.0.0.1:5432/postgres</entry>
<entry key='database.user'>postgres</entry>
<entry key='database.password'>YOUR_DB_PASSWORD</entry>
<entry key='logger.level'>warning</entry>
<entry key='logger.queries'>false</entry>
<entry key='logger.fullStackTraces'>false</entry>
<entry key='notificator.types'>firebase,mail,sms,web</entry>
<entry key='notificator.firebase.serviceAccount'>YOUR_FIREBASE_SERVICE_ACCOUNT_JSON</entry>
<entry key='mail.smtp.port'>587</entry>
<entry key='mail.smtp.starttls.enable'>true</entry>
<entry key='mail.smtp.host'>smtp.gmail.com</entry>
<entry key='mail.smtp.from'>YOUR_EMAIL</entry>
<entry key='mail.smtp.auth'>true</entry>
<entry key='mail.smtp.username'>YOUR_EMAIL</entry>
<entry key='mail.smtp.password'>YOUR_SMTP_PASSWORD</entry>
<entry key='teltonika.timeout'>60</entry>
<entry key='server.timeout'>60</entry>
<entry key='geocoder.onRequest'>false</entry>
<entry key='geocoder.ignorePositions'>false</entry>
<entry key='geocoder.reuseDistance'>100</entry>
<entry key='geocoder.cacheSize'>100000</entry>
<entry key='speedLimit.enable'>true</entry>
<entry key='speedLimit.type'>overpass</entry>
<entry key='speedLimit.url'>http://127.0.0.1:3002/api/interpreter</entry>
<entry key='speedLimit'>120</entry>
<entry key='event.overspeed.thresholdMultiplier'>1.06</entry>
<entry key='event.overspeed.minimalDuration'>60</entry>
<entry key='geocoder.enable'>true</entry>
<entry key='geocoder.type'>nominatim</entry>
<entry key='geocoder.url'>http://localhost:3001/reverse</entry>
<entry key='geocoder.key'>YOUR_GEOCODER_KEY</entry>
<entry key='geocoder.processInvalidPositions'>false</entry>
<entry key='geocoder.format'>%f</entry>
<entry key='geolocation.enable'>true</entry>
<entry key='geolocation.type'>google</entry>
<entry key='geolocation.key'>YOUR_GOOGLE_API_KEY</entry>
<entry key='geolocation.processInvalidPositions'>true</entry>
<entry key='geolocation.reuse'>true</entry>
<entry key='status.ignoreOffline'>teltonika</entry>
<entry key="processing.copyAttributes.enable">true</entry>
<entry key='processing.computedAttributes.deviceAttributes'>true</entry>
<entry key="processing.copyAttributes">driverUniqueId,fuelUsed,odometer,fuel,fuelLevelPercent</entry>
<entry key='processing.computedAttributes.lastAttributes'>true</entry>
<entry key='fuelDropThreshold'>8</entry>
<entry key='fuelIncreaseThreshold'>8</entry>
<entry key="web.url">XXX</entry>
<entry key='sms.http.url'><![CDATA[https://api.sms-gate.app/3rdparty/v1/message?skipPhoneValidation=true&deviceActiveWithin=12]]></entry>
<entry key='sms.http.user'>YOUR_SMS_USER</entry>
<entry key='sms.http.password'>YOUR_SMS_PASSWORD</entry>
<entry key='sms.http.template'>
{
"textMessage": { "text": "{message}" },
"phoneNumbers": ["{phone}"]
}
</entry>
<entry key='commands.queueing'>false</entry>
<entry key='report.fastThreshold'>9000000</entry>
<entry key='filter.zero'>false</entry>
<entry key='coordinates.filter'>true</entry>
<entry key='coordinates.maxError'>1</entry>
<entry key='filter.skipAttributes.enable'>true</entry>
<entry key='filter.skipAttributes'>result,alarm</entry>
<entry key='database.registerUnknown'>false</entry>
<entry key='database.registerUnknown.defaultCategory'>person</entry>
<entry key='database.registerUnknown.defaultGroupId'>14</entry>
<entry key='database.registerUnknown.regex'>^\d{11,16}$</entry>
<entry key='database.throttleUnknown'>true</entry>
<entry key='forward.enable'>true</entry>
<entry key='server.forward'>YOUR_RELAY_SERVER_IP</entry>
<entry key='forward.type'>json</entry>
<entry key='forward.url'>http://YOUR_RELAY_SERVER_IP:3000/forward</entry>
<entry key='protocols.enable'>teltonika</entry>
<entry key='web.address'>172.17.0.1</entry>
</properties>
Not that I'm any sort of Docker guru, but have you tried setting your docker instance network mode to host instead of bridge, to see if the forwarding/NATing is causing the issues?
This is something you should never do:
<entry key='coordinates.maxError'>1</entry>
Hi everyone
I have been running Traccar 6.3 as a native systemd service on Ubuntu for a while and everything works perfectly. I recently tried to move to 6.14.5 running in Docker and I am facing a strange problem I cannot figure out.
When the new Docker Traccar is running, my partners report two things consistently. First, positions are delayed by 30 minutes, 1 hour, sometimes more. Second, the UI refreshes and speed values change but the pin never moves, latitude and longitude are frozen.
The moment I switch back to the old 6.3 native service, both problems disappear immediately. Same database, same devices, same SIM cards.
I have confirmed that positions ARE being saved to the database while 6.14.5 Docker is running. Hundreds of positions per minute with current timestamps. Vehicles that appear frozen in the UI actually have real coordinate changes in the database. So the data is correct, it just does not seem to reach the clients properly.
Websockets are connected. Live events arrive in the browser, speed updates in real time. Only coordinates are stuck.
The two configs are almost identical except I disabled geocoder and speedLimit in the Docker config because those point to local services not reachable from inside the container. Geolocation via Google API is enabled in both.
My question is whether this could be a version issue between 6.3 and 6.14.5, a Docker networking issue, or something with geolocation blocking the position pipeline inside the container. I cannot tell if the problem is the version upgrade or the Docker environment because I changed both at the same time.
Has anyone run into this?