Privacy

Field by field: what travels, where it goes, and whether it is kept.

Your original photos never leave your phone. For each new photo the app sends a small copy, which Opensolr reads and does not store. What is kept is a description, in an index that belongs to your account, and in a copy of that index on the phone itself.

YOUR PHONEOriginal photos, fullsizeEXIF and GPS read hereThis phone's key,Keystore-encryptedYour tags and wordingThumbnails, from thephoneA copy of the index, novectorexcluded from phonebackups OPENSOLR.COMSign-in and approvalCreate index, uploadconfigPlan limits and usage API.OPENSOLR.COMReads a 1024 px copyWords, printed text,vector, placeThe copy is notstored YOUR OPENSOLRINDEXLabels (the meaning)Printed text (OCR)The people named on itYour tags and yourwordingSearch vectorDate, camera, placePath, folder, size,copy keysRemoved with the photoone per phone, in youraccount direct to Solr: HTTPS + indexpassword Every arrow is HTTPS. No analytics, no ads, no crash reporting, no third-party SDK that talks tothe network.Two other hosts, carrying nothing about you or your photos: GitHub for the app's updates,and tile.openstreetmap.org for the map tiles, only while the map screen is open.
YOUR PHONEOriginal photos, fullsizeEXIF and GPS read hereThis phone's key,Keystore-encryptedYour tags and wordingThumbnails, from thephoneA copy of the index, novectorexcluded from phone backups OPENSOLR.COMSign-in and approvalCreate index, uploadconfigPlan limits and usage API.OPENSOLR.COMReads a 1024 px copyWords, printed text,vector, placeThe copy is not stored direct to Solr: HTTPS +index password YOUR OPENSOLRINDEXLabels (the meaning)Printed text (OCR)The people named on itYour tags and yourwordingSearch vectorDate, camera, placePath, folder, size,copy keysRemoved with the photoone per phone, in youraccount Every arrow is HTTPS. Noanalytics, no ads, no crashreporting, no third-party SDKthat talks to the network.Two other hosts, carryingnothing about you or yourphotos: GitHub for the app'supdates, andtile.openstreetmap.org for themap tiles, only while the mapscreen is open.

Figure 1 — where each piece of data lives.

01 · What leaves the phone
A small copy of each new or changed photo

An upright JPEG, 1024 px on its long edge, re-encoded from the pixels and carrying only the time, camera, lens, exposure and position of the original. With it go the file's name, folder and size, the md5 of the file, a fingerprint of the picture, the faces the phone found, and your tags and wording when this phone has them.

Goes to
api.opensolr.com, photos_ingest. On a plan with vector search Opensolr reads what the photo shows and the text printed in it; on other plans it only takes the date, camera and position.
Kept
The picture: no. What was read from it: yes, against a fingerprint of the picture, so the same picture is never read twice.
The description of each photo

The words it was read into, its printed text, the people and their face fingerprints, your tags and wording, its place, its camera details, its path, folder, file name and size, and its search vector.

Goes to
Your own Opensolr Index, written by Opensolr; everything but the vector also into the copy on the phone.
Kept
Until the photo leaves the phone or you empty the index.
Your edits

Tags, people, wording and places you set, carried by the sync after you save, with no picture.

Goes to
api.opensolr.com, photos_words, into your index.
Your typed searches

Browsing, Stats and the tag suggestions send nothing; a typed search does.

Goes to
photos_select, which searches your own index with it, or straight to your index for a search on words.
The GPS position of a photo

Rounded to about ten metres before Opensolr turns it into place names, inside photos_ingest.

Goes to
Opensolr's own place lookup; the names land in your index with the photo.
The area of the map you are looking at

Only as tile requests, while the map screen is open.

Goes to
tile.openstreetmap.org.
Your account email and this phone's key

With each call to Opensolr, in the request body, never in an address.

Goes to
opensolr.com and api.opensolr.com.

Never sent anywhere: the original files, the thumbnails in the grid, and anything about how you use the app.

02 · What the app does not have
  • No analytics, no advertising, no crash reporting.
  • No third-party SDK that talks to the network. The libraries are AndroidX, Jetpack Compose, WorkManager, OkHttp, Coil, osmdroid, LiteRT and CameraX. osmdroid draws the map and fetches its tiles only while the map screen is open; LiteRT runs the face models and CameraX the scanner, both on the phone, with no network.
  • Once a day, and whenever you tap Check for updates, the app asks api.github.com for the latest release of Opensolr Photos: one unauthenticated request that carries nothing about you or your photos. In the copy installed from GitHub, when you tap to install a new version, the APK is downloaded from github.com, unauthenticated too. The copy installed from Google Play is updated by Google Play.
  • No access to anything but images. Your tags, the people you name and your wording are kept on the phone and in your own index, never written into a photo file. A photo file changes only when you edit it and choose to overwrite it, and is deleted only when you select it and confirm.
03 · What stays on the phone
  • This phone's API key and the index password, encrypted with a key held by the Android Keystore.
  • The phone's copy of the index: everything the index holds except the search vector and the keys for similar photos. It never leaves the phone except to fill your index back after a Reset. Uninstalling removes it.
  • Your edits that have not gone up yet: the tags, the people and the wording you gave photos, saved here first and carried up by the sync that starts straight after.
  • The faces: frames, names and fingerprints for every photo read, the faces you unticked for a person, and which photos were read. Every comparison between faces happens here.
  • Settings: chosen folders, schedule, the last sync report.
  • Answers your index gave, kept for a short while in the search cache so the same question is not paid for twice, and thrown away with Clear cache.
Excluded from backups

Backups are switched off for the app, and its data, the copy of the index included, is excluded from cloud backup and from phone-to-phone transfer. A restored or new phone signs in again and reads the index once to rebuild the copy.

04 · Location

Android removes GPS positions from photos unless the app is allowed to access photo locations. Allow it and photos are indexed with their place; decline it and they are indexed without one. The choice can be changed in Android's settings at any time and applies to photos indexed from then on. See places.

When this phone's index is created, Opensolr looks at the internet address the phone connects from to put the index in the region nearest to you. The phone's own position is used only if you turn on Locate new photos.

Trust

Opensolr Photos is open source and MIT licensed. Questions about your Opensolr account, index or plan go to opensolr.com/contact; questions about the app itself belong on GitHub.

Opensolr Photos Documentation