All apps · 0 apps
Find-My-Timeline
Docker app from heckpiet's Repository
Overview
Readme
View on GitHubFind My Timeline for Unraid
Unofficial Unraid-ready fork of kennym/find-my-timeline.
Find My Timeline polls devices available through Apple's Find My service at configurable intervals and stores their historical positions in a local SQLite database. The WebUI displays devices, routes and timelines on an interactive map.
This project is not affiliated with or endorsed by Apple or Lime Technology.

Unraid installation
Install the app from Community Applications once published, or use the template directly:
https://raw.githubusercontent.com/heckpiet/find-my-timeline-unraid/master/templates/find-my-timeline.xml
The Docker image is published through GitHub Container Registry:
ghcr.io/heckpiet/find-my-timeline-unraid:latest
First authentication
- Install the container and set
ICLOUD_USERNAMEto your Apple ID email address. - Keep both persistent paths enabled:
/app/data/root/.find-my-timeline
- Open the container console in Unraid.
- Run:
find-my-timeline auth
- Enter your Apple ID password and the newly requested two-factor authentication code.
- Restart the container.
The Apple session is stored in the persistent session path. Re-run the command when Apple expires the session.
Configuration
| Variable | Default | Description |
|---|---|---|
ICLOUD_USERNAME |
— | Apple ID email address |
ICLOUD_PASSWORD |
unset | Optional; entering the password interactively is recommended |
POLL_MIN_INTERVAL |
7 |
Minimum interval between requests in minutes |
POLL_MAX_INTERVAL |
10 |
Maximum interval between requests in minutes |
DATABASE_PATH |
/app/data/locations.db |
SQLite database path |
WEB_HOST |
0.0.0.0 |
Web server binding inside the container |
WEB_PORT |
5000 |
Internal WebUI port |
TZ |
Europe/Berlin in the Unraid template |
Container timezone |
Persistent data
| Container path | Purpose |
|---|---|
/app/data |
SQLite database containing device and location history |
/root/.find-my-timeline |
Apple session and cookie files |
Back up both paths, especially /app/data.
Security notice
The current WebUI does not provide its own authentication. Do not expose port 5000 directly to the internet. Access it through your trusted local network, a VPN such as WireGuard or Tailscale, or a reverse proxy with authentication.
Location data is sensitive personal information. Protect the appdata directory and its backups accordingly.
Docker usage outside Unraid
mkdir -p data session
docker run -d \
--name find-my-timeline \
--restart unless-stopped \
-p 5000:5000 \
-e ICLOUD_USERNAME=your-apple-id@example.com \
-e POLL_MIN_INTERVAL=7 \
-e POLL_MAX_INTERVAL=10 \
-v "$(pwd)/data:/app/data" \
-v "$(pwd)/session:/root/.find-my-timeline" \
ghcr.io/heckpiet/find-my-timeline-unraid:latest
Authenticate interactively afterward:
docker exec -it find-my-timeline find-my-timeline auth
docker restart find-my-timeline
Commands
| Command | Description |
|---|---|
find-my-timeline auth |
Authenticate with iCloud and handle 2FA |
find-my-timeline poll |
Start location polling only |
find-my-timeline web |
Start the WebUI only |
find-my-timeline start |
Start polling and the WebUI |
find-my-timeline stats |
Show database statistics |
find-my-timeline devices |
List tracked devices |
Community Applications publishing checklist
- Merge the Unraid preparation branch into
master. - Confirm the GitHub Actions Docker workflow succeeds.
- Open the package settings for
ghcr.io/heckpiet/find-my-timeline-unraidand set the package visibility to Public. - Pull and test
ghcr.io/heckpiet/find-my-timeline-unraid:lateston Unraid. - Validate and scan the repository at the Unraid Community Applications submission portal.
- Submit the repository for review once all checks pass.
License and attribution
The application remains licensed under the MIT License. Original copyright notices and attribution are retained in LICENSE.
Install Find-My-Timeline on Unraid in a few clicks.
Find Find-My-Timeline in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/heckpiet/find-my-timeline-unraid:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5000]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
HTTP port for the WebUI.
- Target
- 5000
- Default
- 5000
Persistent SQLite database directory.
- Target
- /app/data
- Default
- /mnt/user/appdata/find-my-timeline/data
Persistent Apple authentication session and cookies.
- Target
- /root/.find-my-timeline
- Default
- /mnt/user/appdata/find-my-timeline/session
Apple ID email address. The password is entered interactively during first authentication.
- Target
- ICLOUD_USERNAME
Minimum number of minutes between location requests.
- Target
- POLL_MIN_INTERVAL
- Default
- 7
Maximum number of minutes between location requests.
- Target
- POLL_MAX_INTERVAL
- Default
- 10
Database path inside the container.
- Target
- DATABASE_PATH
- Default
- /app/data/locations.db
Web server binding inside the container.
- Target
- WEB_HOST
- Default
- 0.0.0.0
Internal web server port.
- Target
- WEB_PORT
- Default
- 5000
Container timezone, for example Europe/Berlin.
- Target
- TZ
- Default
- Europe/Berlin