Giter VIP home page Giter VIP logo

booklet's Introduction

OwnTracks

OwnTracks allows you to keep track of your own location. You can build your private location diary or share it with your family and friends. OwnTracks is open-source and uses open protocols for communication so you can be sure your data stays secure and private.

To get started, install OwnTracks on your smartphone. Afterwards you can connect it to an existing server straight away or follow the guide in our Documentation to set up your own.

Documentation

Build Status

booklet's People

Contributors

0xcaff avatar alwaysin avatar amotl avatar andrewferrier avatar approximate avatar atjn avatar avanc avatar balloob avatar bencevans avatar chennin avatar chrisns avatar ckrey avatar cwempe avatar deisi avatar dependabot[bot] avatar dietrichmax avatar dopeyr avatar evgeni avatar freyfogle avatar gdt avatar growse avatar ixisandyr avatar jonasmh avatar jpmens avatar linkiwi avatar linusg avatar markfull avatar mstormi avatar sebw avatar sumnerboy12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

booklet's Issues

locatorDisplace default value - code 500m vs documentation 0m

  • App build number: 2.1.3 (23102)
  • Android version: 9
  • Device: Xiaomi Mi A1

Hi,

This is a question about the locatorDisplacement value. In the docs, it says:

locatorDisplacement: The smallest displacement in meters the user must move between location updates. Defaults to 0 and is an and relationship with interval. Can be used to only receive updates when the device has moved.

(bold is mine)

However, in the preferences the default value is 500

I think the documentation is confused with the default in the android LocationRequest docs, where 0 is the default, if you don't set it.

In my (limited) experience so far, 500m is the distance that you need to move to trigger an update.

So my question is: which is right? Should the default in the preferences be 0, or should the documents specify 500 as the default?

I'm not a Java dev, so I'm trying to piece things together "from the outside" - please let me know if I'm way off track :)

Thanks,
Andy.

traccar documentation wrong

https://owntracks.org/booklet/features/traccar/
Is not understandable or wrong.

I just stetted up traccar on android and observed the following:

  • Identifier in traccar is not made up like the mqtt topic, instead it is only the tracker id. So in my case
    it was just md. Device ID is completely ignored.
    Just to be clear, the doc suggested the identifier would be: owntracks/username/device-id. Instead it was tracker-id, so literally the only thing the documentation said not to be in the identifier.
  • You have to add the device to traccar before connecting owntrack client. Otherwise you will get a http 400 error.

Also I don't understand why there is so much text on the http payload and stuff. People will look for information how to set up a connection between traccar server and owntracks. Development related stuff should be in another section, or at least subsection.

I would volunteer to improve the documentation, but I also wonder if the thing with the identifier is not a bug in android. Having only two letter identifiers limits you and might even be a security issue, because the identifiers are also some kind of secret.

IOS app with TLS

Hi,
I'm trying to get the owntracks ios app working with TLS, using letsencrypt certificates on my own domain. I have successfully got the android app working with TLS using the generated .p12 key file, connecting to my private mosquitto mqtt server.

Steps:

  1. openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -name "mymosquittocert" -out mymosquittocert.p12
  2. renamed .p12 to . otrp
  3. Uploaded DST Root CA X3 cert to ipad (Verified check)
  4. Uploaded ISRG Root X1 cert to ipad (Verified check)
  5. Uploaded Lets Encrypt Authority X3 cert to ipad (Verified check)
  6. Uploaded mymqttdomain.duckdns.org cert to ipad (Verified check)
  7. Uploaded mymosquittocert.otrp cert to ipad and opened with owntracks.
  8. setup private mode, with host as mymqttdomain.duckdns.org, no websockets, TLS, And selected client cert as mymosquittocert.otrp with my passphrase.
  9. IPAD General->about->certificate trust settings-> Enabled Full trust for ISRG Root X1 and DST Root CA X3. (don't see any others to enable full trust)
  10. NO Custom Security Policy selected. (doesn't make any difference when I select one and select allow untrusted certificates, same error)
  11. owntracks is trying to connect to: mqtts://mymqttdomain.duckdns.org:8443 c0 k69 userCJ
    Gets error: OSStatus error -9831.

Looking up with error is means: errSSLPeerUnknownCA - An unknown certificate authority was encountered.
I'm now sure what is unknown about the CA as I've uploaded verified root certs from letsencrypt. What am I missing?

The error on mosquitto mqtt is:
1503144469: OpenSSL Error: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
1503144469: Socket error on client , disconnecting.

Security section does not address if there are any defaults for publishing

https://owntracks.org/booklet/features/security/

I have the impression that at least one other location reporter might have a default configuration to use a demo server. It seems clear to me, but not clearly obvious to everyone, that a location reporting program's default configuration must be to NOT report location at all until one has affirmatively configured/enabled a destination.

The README.md for the android app points to the booklet, and while the security section says a lot of useful things, it doesn't address this default configuration issue. (The ios README.md ought to point to the booklet too.)

Overall, having actual documentation for apps is really nice to see, and I appreciate it being there.

Link to openHAB integration outdated

Dear JP and Christoph,

while exploring the documentation a bit more, I discovered that the section about the openHAB integration 1 points to a repository which has been archived. It still talks about the »Mqttitude Binding« 2, which I think is a thing of the past. Do you know of any updated resources on this matter, where the link could be adjusted to?

With kind regards,
Andreas.

Footnotes

  1. https://owntracks.org/booklet/guide/clients/#openhab

  2. https://github.com/openhab/openhab1-addons/wiki/Mqttitude-Binding

GDPR and google fonts

The readthedocs theme we use includes loading fonts externally from googleapis

mkdocs/mkdocs#1138 (comment)

When we change to mkdocs 1.2.3 (the current release), we will get another external reference for highlight.js loaded from cloudflare. By deactivating hightlightjs in mkdocs.yml we can avoid the problem for now.

Since mkdocs 1.2.3 a new version of readthedocs was integrated using local fonts, but this version is not available yet

Please clarify documentation on HTTP vs MQTT

Over at https://owntracks.org/booklet/features/android/, it is stated that "it is highly recommended to use HTTP mode on Android 6 and higher". However, it's not stated why, or if that recommendation is still current.

Also, "When using MQTT, the broker connection is not maintained permanently." It's not clear what the consequences of this are. There is a reference to the keepalive interval not changing that behavior. https://owntracks.org/booklet/tech/mqtt/#mqtt says that "MQTT was designed with mobile clients in mind so it doesn't require a persistent TCP connection."

Over at https://owntracks.org/booklet/features/friends/, the discussion is solely about MQTT mode, implying that friends support is impossible with HTTP mode. Yet https://github.com/owntracks/recorder#friends-in-http-mode covers friends in HTTP mode.

I'd like to see:

  • Clarification on tradeoffs of MQTT vs HTTP and why MQTT is not recommended
  • Clarification of what the broker connection not being maintained means
  • Clarification of tradeoffs of MQTT vs HTTP regarding friends
  • Documentation of the recommendation to avoid websockets

Some prior discussion on this:

owntracks/android#774 (Dec 2019) implies that MQTT was killing batteries. There was a recommendation in there, not stated in the docs, to avoid websockets. The HTTP recommendation is restated.

owntracks/android#745 (Oct 2019) again restates the aversion to websockets

Security section does not address reverse geocoding

Reading the booklet, it seems there is use of reverse geocoding at times. It's not clear if this is disabled by default, and the security implications of sending coordinates to reverse geocoding providers are not addressed.

Publish waypoints to devices

I'm not sure if this is a possibility or not. I fully understand how to create and use a waypoint / region / geofence from a device and how enter/leave notices are published from that device and subscribed to from other devices.

Question... can the waypoint / region / geofence from one device or from the server side be published out to user devices so everyone has the same geofence?

My assumption would be the {"_type":"cmd", "action":"setWaypoints", "waypoints":{"_type":"waypoints","waypoints":[...]} and publish that json message to each device individually? If so, can you provide an example of that json filled out?

Pages that need a rewrite

Update pkcs12 steps for newer openssl binary

Hello! Reporting an issue with: https://owntracks.org/booklet/features/tlscert/#pkcs12

Please add -legacy to this command. I kept having iOS .otrp "incorrect file or passphrase" errors getting a client certificate working and it's because the openssl v3 binary I was using generates them differently. Once I added -legacy, it solved the error :)

openssl pkcs12 -legacy \
  -export \
  -in jjolie.crt \
  -inkey jjolie.key \
  -name "Jane's certificate/key" \
  -out jjolie.p12

TLS Client Certificate Documentation

As per owntracks/ios#379, I'm having trouble using a TLS client certificate with Owntracks for iOS 9.1.6. My setup used to work, but something changed in the last few months.

Following the documentation recommended setup, I continuously get an error with Mosquitto 1.4.9 and OwnTracks, though I'm still able to connect properly with mosquitto_pub (as long as I specify the proper client certs / files).

When using the Mosquitto broker support for TLS certificates can be enabled as follows:

require_certificate true
use_identity_as_username true

...

We recommend you proceed as follows:

  1. Install the TLS CA certificate in your system keystore by sending it (e.g. via e-mail) to your device and installing it in the system profile. (Click on the certificate and follow iOS' instructions.)
  2. Send the prepared PKCS#12 file (with an .otrp extension) to your device, and open it. It will be imported into OwnTracks
  3. Launch OwnTracks, select Settings and TLS. Select the otrp file you just imported as Client Certificate Filename, and below that, enter its passphrase.
  4. Leave Use Custom Security Policy disabled.
  5. Verify the connection to your broker.

img_2064 1


OwnTracks shows:

error The operation couldn't be completed.
(OSStatus error -9829.) {
}

Mosquitto shows:

1466436433: New connection from XX.XXX.XXX.XX on port 8883.
1466436430: OpenSSL Error: error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate
1466436430: Socket error on client <unknown>, disconnecting.

The reason I'm raising an issue here is that I can see in the screenshots in the issue referenced above that others do have Use Custom Security Policy enabled, and I find that enabling it makes everything work as expected, even with security measures enabled like Validate Certificate Chain and Validate Domain Name.

img_2065 1

I'm confused -- should I have Use Custom Security Policy disabled (as per the docs), or should I leave it enabled (as per other users, and what seems to be working)? If the latter, should the docs be updated to reflect this?

What exactly does this switch change? I've tried reviewing the source code, but I'm afraid it's a bit over my head.

Thanks for any help you can provide.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.