OwnTracks Setup for Drivers
OwnTracks replaces the in-browser GPS tracking. It keeps sending your location even when the phone is locked — no need to keep the browser open.
What you need from your manager:
| Item | What it looks like | Where the manager finds it |
|---|---|---|
| Username | a long random string like cmollqynk000801mqek6qkt6r | Drivers → select driver → OwnTracks button → Username (Device ID) field |
| Token (Password) | another long random string | same dialog → Token field |
Ask your manager to copy both and send them to you via a secure channel. Don't type them by hand — copy/paste only.
1) Install OwnTracks
- Android: Play Store → OwnTracks
- iOS: App Store → OwnTracks
2) Pick the mode: Private HTTP
When OwnTracks opens for the first time it may ask you to choose a mode.
- Tap Private HTTP (not MQTT).
- If you skipped that screen, go to Preferences → Connection → Mode → HTTP.
Why HTTP? MQTT requires running a separate broker server. We don't have one — our server speaks plain HTTP. Choose HTTP and ignore everything MQTT-related (Host, Port, Protocol, WebSockets, Client ID).
3) Configure every field — full reference
OwnTracks shows a long list of preferences. Most of them don't apply to our setup. Here's exactly what to do with each one.
Preferences → Connection
| Field | What to enter | Notes |
|---|---|---|
| Mode | HTTP | Not MQTT. |
| URL | https://transfers.4guest.cz/api/driver/owntracks | Paste exactly. No trailing slash. |
| Username | The Username from your manager | A long random string. Copy/paste exactly. |
| Password | The Token from your manager | Also long and random. Copy/paste exactly. |
| Device ID | Leave default (or set to your initials, e.g. pavel) | Cosmetic only. Our server uses Username for identity. |
| Tracker ID | Your initials, max 2 chars (e.g. PV) | Shown on the dispatcher's map marker. |
| TLS | On (usually automatic for https:// URLs) | The s in https requires TLS. |
| TLS CA certificate | Leave empty | We use the public Let's Encrypt cert; OwnTracks trusts it automatically. |
| TLS client certificate | Leave empty | Not used. |
| Host | Hidden / N/A in HTTP mode | Only applies to MQTT. Skip. |
| Port | Hidden / N/A in HTTP mode | Only applies to MQTT. Skip. |
| WebSockets | Hidden / N/A in HTTP mode | Only applies to MQTT. Skip. |
| Protocol / Proto | Hidden / N/A in HTTP mode | Only applies to MQTT. Skip. |
| Client ID | Hidden / N/A in HTTP mode | Only applies to MQTT. Skip. |
| Authentication | On | This makes Username and Password fields take effect. |
| Cleanup session | Leave default | MQTT-only setting. |
Preferences → Identification
| Field | What to enter |
|---|---|
| Username | Same as in Connection (some OwnTracks versions duplicate this) |
| Password | Same as in Connection |
| Device ID | Same as in Connection |
| Tracker ID | Same as in Connection — 2 characters max, your initials |
Preferences → Reporting (Android) / Settings → Monitoring (iOS)
| Setting | Value | Notes |
|---|---|---|
| Monitoring (Android) | Move | Sends while moving, pauses when stationary. Best battery life. |
| Monitoring (iOS) | Significant | Uses the iOS "significant location change" API. Best battery life. |
| Locator interval | Default (180 s) | How often to ping when stationary. Server filters out duplicates anyway. |
| Move mode interval | Default (30 s) | How often to ping when moving. |
| Ping interval | Default (30 min) | A keep-alive ping. Don't lower this — drains battery. |
| Locator displacement | Default (500 m) | Minimum movement before a new fix is sent. |
Preferences → Advanced
| Setting | What to enter |
|---|---|
| Encryption / Secret encryption key | Off / blank — leave it disabled. We don't use payload encryption (the connection is already TLS). |
| Remote configuration | Off |
| Remote commands | Off |
| Auto-restart on boot | On — so the app starts up after you reboot the phone |
| Notifications: ongoing | On — keeps the foreground service alive on Android |
| Pub QoS / Sub QoS | Default — MQTT-only, ignored for HTTP |
Preferences → Privacy / Map / Notifications
These are display-only — they don't affect what's sent to our server. Configure them however you like.
4) Permissions checklist
OwnTracks needs specific permissions to keep tracking while the phone is locked.
Android
- Location permission: System Settings → Apps → OwnTracks → Permissions → Location → select Allow all the time (not just "while using the app").
- Battery optimisation: System Settings → Apps → OwnTracks → Battery → select Unrestricted (or disable battery optimisation for OwnTracks). Without this Android pauses the app when the screen is off.
- Background data: System Settings → Apps → OwnTracks → Mobile data → Background data → On.
iOS
- Location permission: Settings → OwnTracks → Location → select Always (not "while using").
- Background App Refresh: Settings → General → Background App Refresh → on for OwnTracks.
- Cellular Data: Settings → OwnTracks → Cellular Data → on (if you don't have unlimited Wi-Fi while driving).
Without these permissions the app will stop sending your location as soon as the phone locks. If the dispatcher can't see you on the map, check these first.
5) Verify it's working
- Open OwnTracks. On the Status tab, the connection indicator should be green with a recent timestamp.
- Tap the upload-arrow icon (top right) to force-send your current location.
- Ask your manager to check the dispatcher map (
/dashboard/map). - Your marker should appear within about 1 minute.
If you tap the URL https://transfers.4guest.cz/api/driver/owntracks in a browser you'll see HTTP 405 Method Not Allowed — that's expected. The endpoint only accepts POST requests from OwnTracks, not GET requests from a browser. It does not mean the URL is broken.
If your marker doesn't appear:
- Make sure you're connected to mobile data or Wi-Fi.
- Open OwnTracks → Status tab → look for the last error. Common ones:
401 Unauthorized— Username or Password is wrong. Re-paste both, or ask your manager to regenerate the token.Connection refused/Unknown host— URL typo, or no internet.SSL handshake failed— phone clock is wrong; fix the date/time, then retry.
- Re-check the permissions in section 4.
6) Quick troubleshooting reference
| Symptom | Likely cause | Fix |
|---|---|---|
401 Unauthorized in Status | Wrong username/password | Manager regenerates token (Drivers → driver → OwnTracks → Regenerate); copy/paste both fields again |
405 Method Not Allowed when visiting URL in browser | Normal — endpoint is POST-only | Ignore. Test from OwnTracks itself, not a browser. |
| Marker on map but not updating | Phone screen locked + battery optimisation enabled | Disable battery optimisation (Android) or enable Always-Allow Location (iOS) |
| Marker never appears | Permission missing OR token wrong | Check permissions, then check Status tab in OwnTracks for the last error |
| Connection dropped after a while | Phone went to deep sleep | Ensure foreground service notification is on (Android) / Background App Refresh on (iOS) |
<sub>Anifilm 2026 — transfers.4guest.cz</sub>