• 1 Post
  • 20 Comments
Joined 1 day ago
cake
Cake day: April 12th, 2026

help-circle


  • 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.



  • 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!


  • 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. https://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 (https://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 https://colota.app/docs/integrations/home-assistant). The API format sent from colota is completly editable.


  • 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.


  • 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.





  • 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. https://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.




  • 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.




  • 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.


  • 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.