Skip to main content

Server for 'Find My Device' android app, implemented in Django/Python

Project description

Django Find My Device

django-fmd @ PyPi Python Versions License GPL V3+

Find My Device client and server implemented in Python using Django. Usable for the Andorid App FindMyDevice by Nnulide:

Get FindMyDevice on F-Droid

Note: For command notifications, you also need to install a https://unifiedpush.org/ app like "ntfy":

Get ntfy on F-Droid

Django "Find My Device" server for YunoHost

Integration level Working status Maintenance status Install django-fmd with YunoHost

State

Server implementation

What worked:

  • App can register the device
  • App can send a new location
  • App can delete all server data by unregister the device
  • The Web page can fetch the location of a device
  • Paginate between locations in Web page
  • Push notification of commands

Server TODOs:

  • Pictures

Client implementation

e.g.:

~/django-find-my-device$ ./manage.py fmd --get-location --device-id 2gvp8d --password your-password

Start hacking:

~$ git clone https://gitlab.com/jedie/django-find-my-device.git
~$ cd django-find-my-device
~/django-find-my-device$ ./manage.py
...
(findmydevice) run_dev_server

There is also a docker dev. setup, e.g.:

~/django-find-my-device$ make up

Notes:

  • The app will not accept self-signed certificates! So you need to use non-https URLs for testing.
  • Django dev server and docker compose will bind to 0.0.0.0:8000 by default! So it's accessible from other devices in your network!

credits

The FindMyDevice concept and the App/Web pages credits goes to Nnulide the creator of the app FindMyDevice.

Currently, we store a copy of html/js/css etc. files from findmydeviceserver/web/ (GNU GPLv3) into our project repository here:

This is done by update_fmdserver_files.sh script.

versions

  • dev
    • TBC
  • v0.4.1 - 17.06.2024
    • Fix redirects to admin and FMD web page
    • Fix packaging: Add needed "requests" dependency
  • v0.4.0 - 17.06.2024
    • Update to lastest FMD app version
    • Update static FMD html/js/css files
    • Modernize project setup
  • v0.3.2 - 10.08.2022
    • Bugfix to small database fields
    • Test project auto login only for /admin/ requests
  • v0.3.1 - 10.08.2022
    • Bugfix static files for YunoHost
  • v0.3.0 - 10.08.2022
    • WIP: FMD python client (TODO: Add a CLI)
    • Replace the device UUID with a short random string
    • Include external JS/CSS files
  • v0.2.0 - 19.07.2022
    • Store User-Agent in Device and LocationData
    • Implement command push notifications
  • v0.1.3 - 12.07.2022
    • Remove "@Nulide FMDServer" from index.html
    • Lower 'No "IDT"' error log.
  • v0.1.2 - 12.07.2022
    • Enhance Device change list: LocationData count + last update info and LocationData filter
    • Add login page for anonymous users
  • v0.1.1 - 12.07.2022
    • Fix pagination on FMD web page.
    • Deny store locations too often (by settings.FMD_MIN_LOCATION_DATE_RANGE_SEC - default: 30sec.)
    • Display device date in admin in human-readable format.
    • Allow location delete in admin if DEBUG mode is on.
    • More tolerant /requestAccess view.
    • Enhance TracingMiddleware for debugging.
  • v0.1.0 - 12.07.2022
    • Serve fmd page "index.html" with own view and only for authenticated users
    • Enhance Django Admin
    • Add optional "name" for Devices (Only for django admin)
  • v0.0.4 - 11.07.2022
    • Bugfix logic.js requests, if installed not in root URL.
    • Bugfix location view from logic.js and undefined variable.
  • v0.0.3 - 11.07.2022
    • Bugfix store location because of too large raw_date field value
  • v0.0.2 - 11.07.2022
    • Support Python 3.7 (for current YunoHost version)
    • Setup Gitlab CI pipeline
    • Update README
  • v0.0.1 - 05.07.2022
    • init project
    • App can register the device
    • App can send a new location
    • App can delete all server data from the device
    • The Web page can fetch the location of a devi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_fmd-0.4.1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

django_fmd-0.4.1-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file django_fmd-0.4.1.tar.gz.

File metadata

  • Download URL: django_fmd-0.4.1.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.0rc1

File hashes

Hashes for django_fmd-0.4.1.tar.gz
Algorithm Hash digest
SHA256 fdcd41dc8a2132ef7078fd1b6ec0e5e31ad6b7aa303a4dfce7694a33bbd64b28
MD5 443f27a3e914e4e89fc674e3d36cc9ee
BLAKE2b-256 54c0141b3c66e697922a1333e03037de7fe7ec34a1f76b22db893d87d7353817

See more details on using hashes here.

File details

Details for the file django_fmd-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: django_fmd-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.0rc1

File hashes

Hashes for django_fmd-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d73bad1b812d292d0c22a447e987c9addcd94be51f1bdaa84dd9505b1f0f5a8
MD5 c33126fc0586398be75cab48a657589f
BLAKE2b-256 d4828cf98089e97e0b9eeb74785dba1c2d856b726b1f2d5ad063791de8b508d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page