Server for 'Find My Device' android app, implemented in Django/Python
Project description
Django Find My Device
Find My Device client and server implemented in Python using Django. Usable for the Andorid App FindMyDevice by Nnulide:
Note: For command notifications, you also need to install a https://unifiedpush.org/ app like "ntfy":
Django "Find My Device" server for 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:8000by 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
- v0.9.1
- 2025-10-30 - Remove the index for picture data to fix #9
- 2025-10-30 - Remove brackets from admin link
- 2025-10-30 - Add a link on the FMD web page into the Django Admin
- 2025-10-30 - Redirect to login page directly
- 2025-10-30 - Update requirements
- v0.9.0
- 2025-10-27 - Fix publishing
- 2025-10-27 - NEW: Support to store and fetch pictures
- 2025-10-27 - fix commands by storing all data and return it
- 2025-10-27 - Add GetAllLocationsView
- 2025-10-27 - fix push notification
- 2025-10-27 - Fix broken html
- 2025-10-27 - Update static html files (patched) from origin project
- 2025-10-27 - Add test for PUT command
- 2025-10-27 - Update PUT command: Seems that "Data" can't be None
- 2025-10-27 - Fix dev. usage: We need the cache!
- 2025-10-27 - fix web page access and tests
- 2025-10-27 - gitlab.com/Nulide/findmydeviceserver/ -> gitlab.com/fmd-foss/fmd-server/
- 2025-10-27 - expand logging if password is OK
- 2025-10-27 - add "(Django Find My Device)" suffix to version, so it's displayed in the app
- 2025-10-26 - Update client: Use correct /api/v1/ prefix
- 2025-10-26 - comment deny_any_real_request() because of LiveServerTestCase
- 2025-10-26 - Update PyCharm configs
- 2025-10-26 - Bump version to v0.9.0 because is't the min. version
- 2025-10-26 - fix docker setup
- 2025-10-26 - Bugfix docker image build via "make build"
- 2025-10-26 - cleanup: remove obsolete files
- 2025-10-26 - Fix api/v1 prefix and serve ds.html page
- 2025-10-26 - Update snapshot files
- 2025-10-26 - Add PyCharm run config files
- 2025-10-26 - Update project setup
- 2024-07-03 - Use getpass() in CLI
- v0.4.1
- 2024-06-18 - fix CI
- 2024-06-18 - Manually append slash redirect only for /admin/
- 2024-06-18 - Fix WebPageRedirectView: Use full url
- 2024-06-18 - Update history
- v0.4.0
- 2024-06-17 - Reimplement the client and manage command
- 2024-06-17 - GET "/version" via FmdClient
- 2024-06-17 - Update FmdClient.request_access()
- 2024-06-17 - Test get_salt() via FmdClient()
- 2024-06-17 - Patch by
- 2024-06-17 - Use 'fmd_externals/favicon.ico' in admin, too.
- 2024-06-17 - Add docker compose setup for development
- 2024-06-17 - Handle Data="unused"
- 2024-06-17 - Fix favicon.ico request
- 2024-06-16 - Bugfix wrong password compare in /requestAccess (Don't lowercase!)
- 2024-06-16 - Handle request location index "NaN"
- 2024-06-16 - update PUT /key
- 2024-06-16 - Update Device model
- 2024-06-16 - Expand hashed_password model field
- 2024-06-16 - Fix web lage static file urls
- 2024-06-16 - +"argon2-cffi"
- 2024-06-16 - Update API changes
- 2024-06-16 - Update static web page files
- 2024-06-16 - Refactor: "run_testserver" -> "run_dev_server"
- 2024-06-13 - Update project setup
- 2022-08-10 - Add script to grant FMD permission via adb
- 2022-08-10 - Update README.md
Expand older history entries ...
- v0.3.2
- 2022-08-10 - Test project Autologin only for
/admin/requests - 2022-08-10 - Expand database field length
- 2022-08-10 - Test project Autologin only for
- v0.3.1
- 2022-08-10 - Bugfix static files for YunoHost
- v0.3.0
- 2022-08-10 - fix code style
- 2022-08-10 - Add FMD client demo script
- 2022-08-10 - remove
logic.jspatches - 2022-08-08 - Bugfix classifiers
- 2022-08-08 - update requirements
- 2022-08-08 - Bugfix Client: Server accepts "Data" only as String.
- 2022-08-08 - Log server error messages
- 2022-08-08 - Log if key requested with "Data" != "0"
- 2022-08-08 - Remove debug
- 2022-08-04 - Implement a Python Client for FMD
- 2022-08-03 - Move FMD web page static files to "real django static" files
- 2022-07-31 - Add missing leaflet image files
- 2022-07-31 - Replace device UUID with a short string
- 2022-07-19 - Include external JS/CSS files
- v0.2.0
- 2022-07-19 - Remove unused "POST /push"
- 2022-07-19 - Check push service calls
- 2022-07-19 - Update README.md
- 2022-07-19 - Implement command push notifications
- 2022-07-19 - code refactoring
- 2022-07-19 - Store User-Agent in Device and Location
- 2022-07-19 - updates
- v0.1.3
- 2022-07-12 - remove obsolete publish.py file
- 2022-07-12 - Run tests before publishing
- 2022-07-12 - release 0.1.3
- 2022-07-12 - Lower 'No "IDT"' error log.
- 2022-07-12 - update tests
- 2022-07-12 - Patch 'applicatoin/json' -> 'application/json'
- 2022-07-12 - Remove "@Nulide FMDServer" from index.html
- v0.1.2
- 2022-07-12 - release v0.1.2
- 2022-07-12 - Enhance Device change list: Location count + last update info
- 2022-07-12 - Add login page for anonymous users
- 2022-07-12 - Better Device.str() (for admin changelist filter etc.)
- v0.1.1
- 2022-07-12 - Bugfixes
- v0.1.0
- 2022-07-12 - Release v0.1.0
- 2022-07-12 - Add optional name for Devices (Only for django admin)
- 2022-07-12 - Update tests
- 2022-07-12 - Pimp Location admin
- 2022-07-12 - Pimp Devices admin
- 2022-07-12 - Rename "Device User" to "Device"
- 2022-07-12 - Serve fmd page "index.html" with own view and only for authenticated users
- 2022-07-12 - Use settings.PATH_URL if exists for
site_url - 2022-07-12 - Use own Admin Site class and expand admn tests
- 2022-07-12 - Redirect to the FMD web page
- 2022-07-12 - Add link to project page into page footer via version
- v0.0.4
- 2022-07-12 - Update logic.js - Make all requests "relative"
- 2022-07-12 - Bugfix location put requests and not defined
put_data
- v0.0.3
- 2022-07-12 - Bugfix store location because of too large
raw_datefield value - 2022-07-11 - Update README.md
- 2022-07-12 - Bugfix store location because of too large
- v0.0.2
- 2022-07-11 - Release v0.0.2
- 2022-07-11 - Expand CI test matrix
- 2022-07-11 - Support Python 3.7
- 2022-07-05 - setup coverage report in CI
- 2022-07-05 - fix darker
- 2022-07-05 - fix tests
- 2022-07-05 - setup gitlab CI
- 2022-07-05 - Expand README
- 2022-07-05 - add update_fmdserver_files.sh
- v0.0.1
- 2022-07-05 - init v0.0.1
- 2022-07-05 - Configure SAST in
.gitlab-ci.yml, creating this file if it does not already exist
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_fmd-0.9.1.tar.gz.
File metadata
- Download URL: django_fmd-0.9.1.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aaf932e6f0937efaac6fb8bfd5f1d0e59ac4a38f804ae7b788978b5e4020134
|
|
| MD5 |
880a0d88a7fc777c4af3ae0aec2ab90e
|
|
| BLAKE2b-256 |
65fe0d202535f4e0c35d8016f1c0efd89a0e5204d2aa628e81426474deb9b52a
|
File details
Details for the file django_fmd-0.9.1-py3-none-any.whl.
File metadata
- Download URL: django_fmd-0.9.1-py3-none-any.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03c7836688cb4d386c5c8fa8984328fbe2165cf1df74a1631ba778d138e4fdfe
|
|
| MD5 |
0c6e04a25c0abcf5693f12c7cbc30669
|
|
| BLAKE2b-256 |
5c995bdd9d4a10b3aa2e311259fa33d3197931d77301de26025b28907263fa66
|