Colota 1.x - Open Source Android GPS Tracker with selfhosted backend support (colota.app)
from mxdcodes@lemmy.world to selfhosted@lemmy.world on 12 Apr 01:56
https://lemmy.world/post/45500976

Hi there,

recently there has been a post here about Colota and thought you might be interested in a short summary about Colota.

I am tracking my position since several years now mainly with Owntracks (and now Colota) and a simple postgres DB/table.

I am a fan of the indieweb and eat what you cook and with already some million location points collected I recognized some pattern in existing GPS trackers I wasn’t happy about:

  1. Battery consumption
  2. Duplicate points while staying in the same location for a long time

So I decided to build my own GPS tracker and called it Custom Location Tracker.

Improved battery consumption should come from disabling GPS entirely in so called “geofences” which are basically circles you draw on a map in the app. With GPS disabled in these you also won’t get duplicate points while staying at e.g. home or work.

The app is still quite new (actively developed since early 2026) but has already quite a lot of features which basically all came from user feedback. E.g.:

Overall the app’s focus should move to be a mobile location history app. So basically Google Timeline in a mobile app which also supports selfhosted backends (as backup).

The app is fully open-source AGPL-3.0, has no ads, analytics or telemetry and only sends data to your own server (if you want to).

You can download two versions.

  1. Google Play store which uses Fused Location Provider and therefore uses Google APIs. Also works with the sandboxed version by GrapheneOS and microG.
  2. FOSS version which uses Android’s native GPS provider with a network location fallback. Available on IzzyOnDroid and hopefully someday on F-droid.

Both can be also downloaded directly from the repo.

#selfhosted

threaded - newest

artyom@piefed.social on 12 Apr 04:09 next collapse

Thank you for sharing. Is this information encrypted? Doesn’t seem safe to use without that…

mxdcodes@lemmy.world on 12 Apr 04:30 next collapse

All location data is stored locally on device in a (unecrypted) SQLite DB. Auth headers (Bearer tokens, Basic auth) are stored using Android’s EncryptedSharedPreferences. HTTPS is enforced for all public endpoints. HTTP is only allowed for private/local network addresses (192.168.x.x, etc.) for self-hosted setups. For a app where the user controls both endpoints, I think that’s a reasonable tradeoff (colota.app/privacy-policy/). Probably makes sense to also mention that in a separate page in the docs for easier overview. Thank you for the question.

ShortN0te@lemmy.ml on 12 Apr 05:38 next collapse

I absolutely agree with you. Such private data should be End-To-End-Encrypted.

mxdcodes@lemmy.world on 12 Apr 05:53 collapse

I also agree with you both that location data is definitely personal data that should be protected. However, Colota stores data only on your own device and it’s never sent anywhere unless you configure a server and that server is out of Colota’s reach. End-To-End-Encryption doesn’t apply here since Colota is just one endpoint sending to the user’s own server. There’s no third party to encrypt against.

Colota is also meant to be an app which supports several “Google Timeline” alternatives like Dawarich, Reitti, Geopulse, etc. All these backends would have to support the same decryption which Colota offers, which is not realistic. You can also specify that data is only sent via an active VPN connection or just use it offline and use the built in file export as e.g. geojson.

Also Colota is a free and open source project. You can review the full source code to verify how your data is handled.

ShortN0te@lemmy.ml on 12 Apr 06:30 next collapse

If the target server is compromised or taken by LEA the data is gone.

Laying the responsibility into the hands of the user is not ok for such an data aggregating service. Such highly critical, private and intime data should be protected and secure by default.

Not even transport encryption is enforced in the project. At first glance, http is allowed on local connections?!? Generate a self signed SSL cert on start and pin it in the app. Easy.

It is no excuse that other services do not follow these state of the art protection measures.

mxdcodes@lemmy.world on 12 Apr 06:42 next collapse

If the target server is compromised or taken by LEA the data is gone.

That’s true for any client that sends data to a server including your browser, email client or any other app. Colota doesn’t operate a server. If you’re concerned about server compromise, that’s a server-side hardening question (disk encryption, access controls, etc.) that’s outside the scope of a client app.

Laying the responsibility into the hands of the user is not ok for such an data aggregating service. Such highly critical, private and intime data should be protected and secure by default.

Colota is not a data aggregating service. It’s a local-first app. By default, no data leaves your device. You choose if and where to send it. That’s the opposite of aggregation. It’s the user being in full control, which is exactly what self-hosted software is for.

Not even transport encryption is enforced in the project. At first glance, http is allowed on local connections?!? Generate a self signed SSL cert on start and pin it in the app. Easy.

It is. HTTPS is enforced for all public endpoints. HTTP is only allowed for private/RFC1918 addresses. Forcing TLS on 192.168.x.x would require every self-hoster to set up certificates for their LAN, which is a real barrier for the target audience. Colota already supports self-signed certificates if you install the CA on your device.

It is no excuse that other services do not follow these state of the art protection measures.

I didn’t say that as an excuse. I explained why a client app that supports multiple independent backends can’t enforce payload encryption. Each backend would need to implement the same decryption. That’s a technical reality, not a lack of care about security.

Also again, a server is optional. It works offline and you can just export files with the data from the app.

non_burglar@lemmy.world on 12 Apr 07:51 collapse

It is no excuse that other services do not follow these state of the art protection measures.

Most projects in the self-hosted space put the load of transport security on the user or another system, including big ones like Immich.

Not sure why you’ve chosen to be indignant about this particular implementation.

ShortN0te@lemmy.ml on 12 Apr 09:21 collapse

Not sure why you’ve chosen to be indignant about this particular implementation.

We are talking about a tracking App. Most selfhosted projects do not store such private data. You may can mage the argument for immich but only for ppl who take a picture every 5 min.

non_burglar@lemmy.world on 12 Apr 12:29 collapse

Most selfhosted projects do not store such private data.

That is patently not true, in the self-hosted space or otherwise.

If you want to take some kind of the security stance on pii or other personal data, you may want to take a look at the app’s workflow first before making declarations of “inadequate security”. There are other considerations than simply slapping a self-signed cert on data in transit (or at rest, for that matter). URL encoding, secrets management, api structure, etc.

If you want to architect the security of your data using this app, it is much easier to simply encapsulate or encrypt the transport yourself. A VPN would be fine. An authentication proxy would be another.

Ultimately, your comments on security here need more and better context to meet a reasonable threshold of confronting the dev on it.

ShortN0te@lemmy.ml on 12 Apr 13:48 collapse

In security and development there is a statement, called “secure by default”. That means the default settings are secure. This would encapsulate something like enforced Transport encryption.

Does this mean that the config can not be changed to fit the thread model? No.

mxdcodes@lemmy.world on 12 Apr 14:13 next collapse

The default setting is that everything stays on-device. The user then can change the config to fit their own threat model, e.g. by adding a server, choosing HTTP for LAN, etc.

ShortN0te@lemmy.ml on 13 Apr 03:30 collapse

Thats like saying:

“The SSH Server configuration does not need to be secure because the SSH Server is turned off by default”

mxdcodes@lemmy.world on 13 Apr 04:34 collapse

That’s an interesting reading of what I said, but not what I said. I didn’t write that security doesn’t matter because the server is off. I wrote that when nothing leaves the device by default, there is no attack surface to secure. That is the definition of secure by default.

Secure by default means the default configuration is safe. By default, Colota stores location data locally and exposes none of it. If you believe that somehow fails the secure-by-default standard, I’d genuinely like to understand how.

If your actual concern is what happens once a user configures a server, that’s a fair discussion but it’s a different one. I already addressed that above and I’d be curious to hear a specific objection to that setup rather than a general claim that it’s insecure. Server compromise risk is inherent to every self-hosted service. That’s not a Colota flaw, that’s the model. And “users shouldn’t have to manage their own infrastructure” is a philosophical position, not a vulnerability. One that doesn’t really fit a tool explicitly built for people who want exactly that control.

ShortN0te@lemmy.ml on 13 Apr 04:46 collapse

By default this applications allows when adding a server, that the communication is not encrypted between the app and the server. This should be configured by default to enforce TLS encryption. If someone would want to disable dis behavior and allow unencrypted communication, then this should take extra steps.

As i commented somewhere else, to say that since it is turned off it is secure by default, is like saying: “The SSH server is turned off by default so the configuration that comes with it does not need to be secure when shipped”

mxdcodes@lemmy.world on 13 Apr 05:42 collapse

By default this applications allows when adding a server, that the communication is not encrypted between the app and the server. This should be configured by default to enforce TLS encryption.

That’s not true. For public endpoints, HTTPS is enforced. You can’t use HTTP. For private IPs, yes HTTP is allowed. So “by default… not encrypted” is not correct and misleading.

non_burglar@lemmy.world on 12 Apr 15:44 collapse

This would encapsulate something like enforced Transport encryption.

Yes, this is what we’re discussing… Are you a bot? Or are you really not following the conversation?

ShortN0te@lemmy.ml on 12 Apr 23:00 collapse

Yes, this is what we’re discussing… Are you a bot?

Obviously no. But you keep dodging the point here. And instead of comming up with an argument against my point, you seem to try to attack me personally.

artyom@piefed.social on 12 Apr 14:39 collapse

There’s no third party to encrypt against.

Encryption does not exist for third parties. It exists to protect sensitive data from malicious or state actors who might hack your server and steal the information for various purposes. Here in the US law enforcement is free to hack and steal and demand whatever they want.

All these backends would have to support the same decryption which Colota offers, which is not realistic.

I would prefer single-party encryption vs. integration, personally. Could make it optional.

I appreciate your contributions but for me personally this is a dealbreaker.

mxdcodes@lemmy.world on 12 Apr 15:22 collapse

Encryption does not exist for third parties.

E2E encryption is specifically designed for the third-party problem. Encrypting so a middleman can’t read your data.

It exists to protect sensitive data from malicious or state actors who might hack your server and steal the information for various purposes

If a server gets hacked where a user sent data from Colota there is nothing the app can do about it or to prevent it. Also you can create a backend which encrypts the data. Again: Colota does not offer a backend.

Here in the US law enforcement is free to hack and steal and demand whatever they want

I don’t think it’s the job of an Android app to protect a server from government hacking attacks.

I would prefer single-party encryption vs. integration, personally. Could make it optional.

I understand the concern. The tradeoff is that backends like Dawarich or GeoPulse need to read the coordinates to build timelines, detect trips, display maps, etc. Encrypted blobs would make the server a simple backup at which point the local auto-export to Syncthing/Nextcloud achieves the same thing without the complexity. For pure backup, the offline + file export workflow already covers that use case. Also the app is offline-first. There is no server needed unless the user specifically configures that.

I appreciate your contributions but for me personally this is a dealbreaker.

Fair enough, thanks for the feedback.

artyom@piefed.social on 12 Apr 15:30 collapse

If a server gets hacked where a user sent data from Colota there is nothing the app can do about it or to prevent it

It can’t prevent the hack, it absolutely can protect the data, and make it useless. That’s the entire purpose of encryption.

I don’t think it’s the job of an Android app to protect a server from government hacking attacks.

Again, it’s not supposed to.

Also the app is offline-first. There is no server needed unless the user specifically configures that.

The server is needed for the same reason a server is needed for anything: to back up the data.

If you don’t want to implement it, that’s fine, I respect your decision, but there’s no reason to come here pretending not to understand its purpose.

mxdcodes@lemmy.world on 12 Apr 15:50 collapse

It’s not that I don’t want. I can’t implement it because I don’t offer a server. You would have to address this to the backend developers (Dawarich, GeoPulse or even yourself) who actually store the data.

but there’s no reason to come here pretending not to understand its purpose.

I am understanding your point, but apparently you are not understanding mine which is the actual use case of the app and it’s workflows and therefore make it look like it would miss basic security patterns. The whole “location history” ecosystem stores plaintext coordinates.

artyom@piefed.social on 12 Apr 16:19 collapse

It’s not that I don’t want. I can’t implement it because I don’t offer a server.

You don’t have to. You just have the app encrypt the data before it’s backed up and exported.

you are not understanding mine which is the actual use case of the app

I understand the usecase but you’re acting like you don’t understand the purpose of encryption, for some reason suggesting that it’s supposed to prevent hacking, when that is not at all what it does.

[deleted] on 12 Apr 16:27 next collapse

.

mxdcodes@lemmy.world on 12 Apr 16:27 collapse

You don’t have to. You just have the app encrypt the data before it’s backed up and exported.

I already explained several times why that’s not realistic for the selfhosted backends.

You could have just written at the beginning that you think it would be a good idea to implement (optional) encrypted backups Independent of the selfhosted backends. Then I would have answered, great idea!

But you continued to reply on a thread about end to end encryption where I specifically mentioned the selfhosted backends.

I understand the usecase but you’re acting like you don’t understand the purpose of encryption,

Have a good day!

artyom@piefed.social on 12 Apr 18:11 collapse

I already explained several times why that’s not realistic

You haven’t. You’ve only explained why you don’t want to do it, which is fair, but you keep presenting as if it’s not possible, which is not accurate. Lots of apps can and do create encrypted backups.

mxdcodes@lemmy.world on 13 Apr 23:42 collapse

New day, new answer!

You started this conversation in a thread about E2E encryption and I responded in that context. Halfway through you shifted to encrypted local backups which you first called ‘single-party encryption’ and that’s a completely different thing. If that had been your original point we could have skipped this entire exchange. It’s a good idea which I already mentioned in the answer you replied to but you seem to have missed.

To clarify two things: I never said it was impossible. I said it wasn’t realistic in the context of the selfhosted backends we were discussing. Those are different statements. And yes, lots of apps do encrypted backups because they are backup apps. Colota isn’t. The existing export is for tools like QGIS or selfhosted backends and encrypting that data would break that use case entirely.

Encrypted import/export for backup is a separate feature that doesn’t exist yet, so there’s nothing here that’s badly implemented. It simply isn’t implemented at all.

artyom@piefed.social on 14 Apr 02:34 collapse

Halfway through you shifted to encrypted local backups

I never shifted anything. I was talking about encrypted backups on a server. These can be encrypted locally before being synced to a server.

you first called ‘single-party encryption’

Nope, you literally just made that up. I didn’t say that and I don’t even know what that means.

I said it wasn’t realistic in the context of the selfhosted backends we were discussing.

…but it is.

And yes, lots of apps do encrypted backups because they are backup apps. Colota isn’t.

My suggestion was that it could be

The existing export is for tools like QGIS or selfhosted backends and encrypting that data would break that use case entirely.

You already have local backups that could be encrypted and then synced to a general storage server.

Encrypted import/export for backup is a separate feature that doesn’t exist yet, so there’s nothing here that’s badly implemented.

I said literally nothing about your implementation. You’re imagining things. Please read more attentively.

mxdcodes@lemmy.world on 14 Apr 03:22 collapse

I never shifted anything. I was talking about encrypted backups on a server. These can be encrypted locally before being synced to a server.

You entered a thread explicitly about E2E encryption started by ShortN0te and introduced “single-party encryption” or which later turned out to mean encrypted backups.

Nope, you literally just made that up. I didn’t say that and I don’t even know what that means.
“I would prefer single-party encryption vs. integration, personally. Could make it optional.”

You wrote ‘I would prefer single-party encryption vs. integration, personally’ in this exact thread. That’s not something I made up.

…but it is.

I’d genuinely like to understand how.

My suggestion was that it could be…

This app has a specific purpose. It could have a encrypted backup feature but it won’t change it’s fundamental purpose which is viewing the location history.

You already have local backups that could be encrypted and then synced to a general storage server.

The exported files are not designed as backups (even though they are being used as ones by existing users). They’re meant to be workable in other tools like QGIS, Strava or Komoot. Encrypting them would break that entirely.

I said literally nothing about your implementation. You’re imagining things. Please read more attentively

Fair point. I misinterpreted that. No need to get personal.

[deleted] on 14 Apr 04:28 next collapse

.

artyom@piefed.social on 14 Apr 04:32 collapse

You entered a thread explicitly about E2E encryption started by ShortN0te

That person replied to a thread I started, not the other way around. It was never about E2E. It was always about encrypted backups.

It could have a encrypted backup feature but it won’t change it’s fundamental purpose

It’s not supposed to. It shouldn’t.

They’re meant to be workable in other tools like QGIS, Strava or Komoot. Encrypting them would break that entirely.

Then make it optional? Or don’t, I don’t care.

teawrecks@sopuli.xyz on 13 Apr 00:16 collapse

All phones are already disk encrypted these days. If you want disk encryption on your PC, you should enable it. Otherwise, it’s the responsibility of whatever backend you choose to handle encryption over the network.

artyom@piefed.social on 13 Apr 00:46 collapse

No one is talking about a phone or a PC, we’re talking about a server.

Also phones and PCs are only encrypted at rest.

[deleted] on 13 Apr 06:23 next collapse

.

teawrecks@sopuli.xyz on 13 Apr 13:03 collapse

Who is “we”? I’m responding to your top level comment. You just asked the creator of an exclusively client-side app whether they support encryption. Not only is it reasonable for me to assume you mean client side encryption, it’s unreasonable for you to ask for server side encryption, because there is no server. It’s a BYOBackend situation.

Now if you’re asking for client-side encryption, something like Keepass where the file itself is encrypted, you have to use some form of auth to decrypt it on use, and you can store this file using whatever backend you want, that’s perfectly reasonable. I would still consider that encrypted at rest, but at least you could maybe separate encrypted reads from writes and limit the attack surface in the event of a breach.

artyom@piefed.social on 13 Apr 15:38 collapse

You just asked the creator of an exclusively client-side app whether they support encryption.

Client-side encryption is not a novel concept.

something like Keepass where the file itself is encrypted, you have to use some form of auth to decrypt it on use

That’s significantly more complicated and time-consuming.

teawrecks@sopuli.xyz on 13 Apr 16:58 collapse

Lol I don’t know what you want man, i didn’t realize this was one of those “digging my heels in because I don’t know how to be wrong” threads. I’ll let you do your thing, peace.

artyom@piefed.social on 13 Apr 19:56 collapse

I don’t know what you want man

I honestly don’t know how to be more clear about this. It’s not complicated. I want client-side encryption, man.

i didn’t realize this was one of those “digging my heels in because I don’t know how to be wrong” threads

LOL I didn’t know that either, but here you are!

Stopwatch1986@lemmy.ml on 12 Apr 04:44 next collapse

I’ve been using this for a few weeks and it’s great. In addition to offline-first, it would be nice to be able to ask Colota: List my trips between date1 and date2 when I was near (ie within x meters from) point y.

I am planning to use this for a long time too, so an export/import data for when I change my phone would be nice. I see Export but not Import.

Also, being able to delete trips between date1 and date2 would be useful. Currently, you can delete 1-by-1 or recent trips only.

mxdcodes@lemmy.world on 12 Apr 05:00 collapse

Glad it’s working well for you!

  • “filtering trips near a point”: Not yet available, but planned as part of location history search/filter features. It will be also using a configurable Nominatim instance for reverse geocoding points to addresses.
  • Import: Doesn’t exist yet. But is also on the roadmap (including export/import for geofences).
  • Deletion of points/trips: Currently you can delete older than X days or delete all. No date range picker or bulk delete from the history timeline yet but that will be neccessary. There will be options to delete trips (which may be just GPS jitter) and (bulk) delete points.
Ulrich@feddit.org on 12 Apr 05:45 next collapse

Why a dedicated backup server instead of just backing up to a local file that can then be backed up to a service of choice?

Also for profiles, it would make more sense to use Bluetooth to detect a vehicle or WiFi to detect when you’re home vs. Geofencing or Android Auto or speed. How can it tell when you leave the geofence if the GPS is off?

mxdcodes@lemmy.world on 12 Apr 06:01 collapse

Probably phrased that wrong. There is no backup server. Users can create and add one if they like.

Colota offers out of the box file export (csv,geojson, gpx and kml) and supports hive_partitioning via variables in the endpoint (colota.app/docs/configuration/server-settings#url…).

Colota already uses WiFi for home detection (WiFi pause in geofence zones) and Android Auto/car mode for vehicle profiles.

How can it tell when you leave the geofence if the GPS is off?

GPS is only turned off by being connected to a WiFi or being motionless (or both) while being in a geozone. When wifi disconnects or/and motion is recognized the GPS starts again.

Bluetooth detection is the one thing that doesn’t exist. It could be a useful addition. I will note that. Thank you for the feedback!

Ulrich@feddit.org on 12 Apr 13:29 collapse

There is no backup server. Users can create and add one if they like.

No I understood the server is self-hosted…?

Colota offers out of the box file export

I see that but this should be an automatic backup process. Plus there’s no way I can see to IMPORT that data somewhere else.

When I use an app like Fitotrack, it automatically makes a backup file periodically and then is automatically backed up to my server with Nextcloud or Syncthing. I don’t need a dedicated server for it.

Colota already uses WiFi for home detection (WiFi pause in geofence zones)

How can it do that when it didn’t ask me for an SSID? And what’s the point of the geofence if it doesn’t even use it anyway? I am cornfuse.

When wifi disconnects or/and motion is recognized the GPS starts again.

How is motion recognized without GPS?

mxdcodes@lemmy.world on 12 Apr 13:54 collapse

No I understood the server is self-hosted…?

Colota is client-only. There is no Colota server software. When you add a server endpoint in the settings, you’re pointing it at your own existing server (Dawarich, Home Assistant, Traccar or any HTTP endpoint). Colota doesn’t provide or require any server component. It just sends data where you tell it to.

I see that but this should be an automatic backup process. Plus there’s no way I can see to IMPORT that data somewhere else. When I use an app like Fitotrack, it automatically makes a backup file periodically and then is automatically backed up to my server with Nextcloud or Syncthing. I don’t need a dedicated server for it.

Colota actually has automatic file export (Settings > Export Data > Auto-Export) that periodically exports to a directory on your device. From there Syncthing/Nextcloud can pick it up. Import is not yet available but is planned. There is no dedicated server needed and also not offered to setup. However you can create a webhook on your own server for the app if you want to. See e.g. colota.app/docs/integrations/custom-backend.

How can it do that when it didn’t ask me for an SSID? And what’s the point of the geofence if it doesn’t even use it anyway? I am cornfuse.

WiFi pause doesn’t use a specific SSID. It detects any unmetered network (WiFi/Ethernet) while you’re inside a geofence zone. The geofence defines where the pause should happen, the WiFi connection confirms you’re settled there and is used to detect when you leave it. Without the geofence, any WiFi connection would pause tracking everywhere.

How is motion recognized without GPS?

Motion detection uses the device’s hardware motion sensor (if available). It’s a low-power sensor that fires when physical movement is detected.

Ulrich@feddit.org on 12 Apr 14:09 collapse

When you add a server endpoint in the settings, you’re pointing it at your own existing server (Dawarich, Home Assistant, Traccar or any HTTP endpoint).

Ok please forgive me, I’m unfamiliar with this terminology.

Colota actually has automatic file export (Settings > Export Data > Auto-Export)

Oh, sick, I missed that somehow, thanks.

Sorry for the confusion on my part.

I still don’t see a way to import data? Doesn’t do any good to back it up if I can’t import it back in?

mxdcodes@lemmy.world on 12 Apr 14:18 collapse

No worries.

I still don’t see a way to import data? Doesn’t do any good to back it up if I can’t import it back in?

Totally true. A import feature will be added with one of the upcoming releases.

Ulrich@feddit.org on 12 Apr 14:31 collapse

Cool, thank you!

Decronym@lemmy.decronym.xyz on 12 Apr 05:40 next collapse

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
CA (SSL) Certificate Authority
HA Home Assistant automation software
~ High Availability
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
IP Internet Protocol
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
VPN Virtual Private Network
VPS Virtual Private Server (opposed to shared hosting)

10 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.

[Thread #235 for this comm, first seen 12th Apr 2026, 12:40] [FAQ] [Full list] [Contact] [Source code]

Eheran@lemmy.world on 12 Apr 06:03 next collapse

How to tell when you leave the GPS-off area?

mxdcodes@lemmy.world on 12 Apr 06:06 collapse

GPS is only turned off by being connected to a WiFi or being motionless (or both) while being in a geozone. When wifi disconnects or/and motion is recognized the GPS starts again. There is also an option to just not record locations in a geofence but then the GPS stays on and will still drain some battery.

Eheran@lemmy.world on 12 Apr 11:42 next collapse

Ah, got it. So you need WiFi if you want to reliably turn off GPS, that is a good solution.

Stopwatch1986@lemmy.ml on 12 Apr 12:04 collapse

In addition to wifi, Bluetooth beacons would be good too.

Seeing the same SSIDs (eg in a cinema) might also mean you are not moving, but then how can you tell you are not sitting near another train passenger with their hotspot on?

mxdcodes@lemmy.world on 12 Apr 12:10 collapse

Yes, another user also already requested this (“Seeing the same SSIDs (eg in a cinema)”). Detecting reliable if you left an area without GPS is never 100% fool proof (e.g. airplane mode turned on or maybe the motion sensor is not even available) so I guess it makes sense to combine different sensors. Seeing same SSID and bluetooth is definitely on the test it out list.

nykula@piefed.social on 12 Apr 09:23 next collapse

Looks like a good starting point for municipalities implementing live bus location maps.

Timbo303@lemmy.ml on 12 Apr 11:59 next collapse

Can you port this to ios app store?

mxdcodes@lemmy.world on 12 Apr 12:12 collapse

It’s using react native so it’s definitely possible. Currently it’s not planned, but it’s also not off the table forever (colota.app/docs/faq#is-there-an-ios-version)

FlowerFan@piefed.blahaj.zone on 12 Apr 15:02 next collapse

Do you recommend the sandboxed play store / Fused location providor version over the fdroid or is it a negligible dkfference?

mxdcodes@lemmy.world on 12 Apr 15:12 collapse

FusedLocationProvider (GMS version) is generally better for most users. It combines GPS, WiFi, cell tower and sensor data for faster GPS fixes and better battery efficiency. The FOSS version uses raw LocationManager with GPS as primary and network as fallback. It works but GPS fixes can be slower, especially indoors. But if avoiding (sandboxed) Play Services is a priority, the FOSS version works fine too.

Cyber@feddit.uk on 12 Apr 15:51 next collapse

you can predownload map tiles from a tile server I selfhost or use your own tile server.

Could OSM tiles be used? Ie direct the app to an OSM server and download their data?

I’ve no idea how tiles work, so this may be an absurd question 🙂

I’m currently using GPSLogger, but Home Assistant’s integration for it can’t handle >1 device… if I install your app on multiple devices, can Home Assistant distinguish between them? Ie does the data nclude a DeviceID of some kind?

Edit: ok, I think I’ve found the answer in your Home Assistant documentation

mxdcodes@lemmy.world on 12 Apr 16:10 collapse

Not an absurd question at all. The app uses vector data for the map. Public OpenStreetMap server’s only offer raster data which is not compatible and would need way more storage to cover the same area downloaded. Also downloading tiles from openstreetmap servers would violate their tile usage policy.

However there are alternatives e.g. openfreemap.org. I actually had OpenFreemap used before for the app but it uses Cloudflare as CDN which doesn’t align with the privacy policy I want to offer for the app which is the reason I setup a own server (vps) which just directly serves the tiles (colota.app/docs/guides/tile-server). Also if I would use a external tile server which may go offline for whatever reason there would be nothing I could do about it.

Basically you could use any tile sever which provides mbtiles but I don’t know any other free options.

if I install your app on multiple devices, can Home Assistant distinguish between them? Ie does the data nclude a DeviceID of some kind?

Yes it either works with the Colota integration which needs a custom payload attribute to distinguish different devices (e.g. “tid”: “colota”) or you could use also the Owntracks integration (see colota.app/docs/integrations/home-assistant). The API format sent from colota is completly editable.

Cyber@feddit.uk on 12 Apr 23:44 collapse

Thanks for the background on the tiles.

Yeah, from my PoV, I’d like to use the OSM data that’s already on my phone (from other OSM based apps), but I understand your point.

So, where’s your VPS? In EU?

FYI: Got the app installed, followed the instructions (which refers to a Home Assistant template that doesn’t exist on the app?), modified the default custom template with tid set to an identifier and … I appear to be at home 🙂

Thank you

mxdcodes@lemmy.world on 13 Apr 00:06 collapse

So, where’s your VPS? In EU?

It’s a VPS hosted by netcup in germany (maps.mxd.codes)

Which refers to a Home Assistant template that doesn’t exist on the app?

Yes, you are right. I have to update the docs there. I removed the HA template because it basically just added the tid which I think is quite easy to add manually.

cvieira@lemmy.ml on 14 Apr 16:10 next collapse

I’ve being using offline location tracking using a different app for some time now. This looked like a pretty elegant alternative, so I decided to give it a shot!

The app looks great, and very well thought through. The automation features really appeal to me (disabling tracking at home, automatically changing profiles, etc.)

One thing I wish it had was the ability to associate vehicles with trips (potentially, automatically, based on Bluetooth connections or other triggers). I like to track the category for each of my trips (car, bike, train, walk), as well as the specific vehicle (when applicable).

I haven’t tested too much yet, but it looks like you already have pretty robust trip tracking. It would be awesome if I could create a list of vehicles with types, and select a vehicle when starting a trip, or have it automatically set when connecting to a Bluetooth device.

In any case, this app looks great, and I appreciate the effort you’re putting into an open source project like this.

mxdcodes@lemmy.world on 14 Apr 23:44 collapse

Thanks for the kind words! Vehicle/trip categories (car, bike, train, walk) + per-vehicle tracking is a great idea and fits well with the profile concept. Personally, I also want to skip other (activity) tracking apps which is the reason I also would love to have these features. Added the feature requests to the backlog. Thanks for taking your time trying out the app and giving feedback!

q7mJI7tk1@lemmy.world on 15 Apr 02:57 collapse

Hi mxdcodes. I have been using your app for the past month in a sort of testing phase with Darawich. I have used GPS Logger and Reitti since October last year, which is still running, but Colota offers a lot more exciting possibilities of data collection and so I’ll probably switch across pretty soon. I got hit by the bug a while back of it stopping once entering a geofence, but I saw that got fixed promptly so thanks for all of this.

I love all that you and others who code for the (wider) selfhosted community offer, so let me say that for every person criticizing your app and all the effort you have put in, there are hopefully 1000x more of us who are truly grateful for what you and others do. I find it odd that people who are concerned about having their location history hacked by someone are actually wanting to record their location history in the first place. Seems the obvious answer is to… not track your location history with ANY app.

Keep up the good work!

mxdcodes@lemmy.world on 15 Apr 08:04 collapse

Thank you, really appreciate it! Glad to hear Colota is working well with Dawarich for you so far. Feedback and criticism are always welcome. Most of it has led to real improvements in the app. I think a casual forum thread is probably just not the best setting for deep technical discussions, where context shifts quickly, everyone has a different background and nuance gets lost.