Skip to content
Merged

V5.0 #10

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6531b89
bump major version to 5.0 in build-deploy workflow
dgraf-gh Jun 14, 2026
b5aaddc
add documentation for Workbench, device management, visit detection, …
dgraf-gh Jun 14, 2026
3e114ad
update upgrade guide and configuration docs for Reitti v5.0: introduc…
dgraf-gh Jun 14, 2026
6cacb10
remove visit detection documentation from map styles configuration
dgraf-gh Jun 14, 2026
5e6c016
Standardize formatting for bullet lists in upgrade and configuration …
dgraf-gh Jun 14, 2026
6e2dbf4
add comprehensive documentation for Map Styles in Reitti v5.0, includ…
dgraf-gh Jun 14, 2026
3448259
add comprehensive documentation for Map Styles in Reitti v5.0, includ…
dgraf-gh Jun 14, 2026
31f6f29
add comprehensive Workbench documentation for Reitti v5.0, including …
dgraf-gh Jun 15, 2026
ae94545
fix image path in documentation for Main View screenshot
dgraf-gh Jun 15, 2026
1224d00
update Workbench documentation: fix image paths and update navigation…
dgraf-gh Jun 15, 2026
21e5442
Standardize formatting for bullet lists and add metadata documentatio…
dgraf-gh Jun 15, 2026
1c8ba99
Merge branch 'refs/heads/main' into v5.0
dgraf-gh Jun 22, 2026
8fdd470
Add documentations for Owntracks integration and license update
dgraf-gh Jun 22, 2026
55a233e
Update `mkdocs-shadcn` to v0.11.0 and add GeoJSON API documentation
dgraf-gh Jun 22, 2026
9a5684e
Enhance GeoJSON API docs with parameters table and device override ex…
dgraf-gh Jun 22, 2026
5d2be1b
Fix incorrect comparison logic for version selection in scripts.js
dgraf-gh Jun 23, 2026
681a107
Remove custom version selector script and related configuration from …
dgraf-gh Jun 23, 2026
ff51633
Merge branch 'main' into v5.0
dgraf-gh Jun 26, 2026
804bb40
docs: add Docker Compose configuration reference page
dgraf-gh Jul 1, 2026
7454e2d
Standardize table formatting for environment variables and update ima…
dgraf-gh Jul 1, 2026
4e73229
Standardize table formatting for environment variables and update ima…
dgraf-gh Jul 1, 2026
8d8c2c9
docs: separate tile cache configuration into its own section
dgraf-gh Jul 1, 2026
aec9ea0
docs: update TILES_CACHE description to clarify ownership
dgraf-gh Jul 1, 2026
8250e76
docs: add application runtime environment variables to config reference
dgraf-gh Jul 1, 2026
c7e4c59
docs: fix broken link to quick-start guide in Docker setup documentation
dgraf-gh Jul 1, 2026
4cc4ae4
docs: fix typos in environment variable descriptions and streamline u…
dgraf-gh Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- 'v*'

env:
CURRENT_MAJOR_VERSION: "4.0"
CURRENT_MAJOR_VERSION: "5.0"

jobs:
deploy:
Expand Down
124 changes: 124 additions & 0 deletions docs/api/geojson.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
---
title: "GeoJSON API"
type: "projects"
parent: "API Documentation"
weight: 25
---

The GeoJSON API endpoints allow you to export and import location data in GeoJSON format, enabling interoperability with other mapping and GIS tools.

### Endpoints

```
GET /api/v1/geojson/export?start={YYYY-MM-DD}&end={YYYY-MM-DD}&device={deviceId}
```

```
POST /api/v1/geojson/import
```

### Usage

These endpoints are useful for:

- **Export**: Generate GeoJSON files for use in GIS applications, custom maps, or data analysis
- **Import**: Upload GeoJSON files from other sources to populate your location history

### Authentication

Include your API token either as a header or query parameter:

```bash
# Using header
curl -H "X-API-TOKEN: your-api-token" \
"https://your-reitti-instance/api/v1/geojson/export?start=2025-09-11&end=2025-09-13" \
-o locations.geojson

# Using query parameter
curl "https://your-reitti-instance/api/v1/geojson/export?start=2025-09-11&end=2025-09-13&token=your-api-token" \
-o locations.geojson
```

### Export Endpoint

```
GET /api/v1/geojson/export?start={YYYY-MM-DD}&end={YYYY-MM-DD}&device={deviceId}
```

#### Parameters

| Parameter | Type | Required | Description |
|-----------|--------|----------|-----------------------------------------------------------------------------|
| `start` | string | Yes | Start date in YYYY-MM-DD format (inclusive) |
| `end` | string | Yes | End date in YYYY-MM-DD format (inclusive) |
| `device` | long | No | Optional device ID to filter results to a specific device |

#### Response

The endpoint returns a GeoJSON FeatureCollection containing all location points within the specified date range. The response has the content type `application/json`.

```bash
# Export location data for a specific date range
curl -H "X-API-TOKEN: your-api-token" \
"https://your-reitti-instance/api/v1/geojson/export?start=2025-09-11&end=2025-09-13" \
-o my-locations.geojson
```

### Import Endpoint

```
POST /api/v1/geojson/import
```


#### Request Format

Send the GeoJSON file as a multipart form upload with the field name `file`. Only files with `.geojson` or `.json` extensions are accepted.

#### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|---------------------------------------------------------|
| `file` | file | Yes | The GeoJSON file to upload |
| `device` | long | No | Optional device ID to override where the data is stored |

By default, imported data is associated with the device linked to your API token. If you specify a `device` parameter,
it overrides this and stores the data under the specified device instead.

```bash
# Import a GeoJSON file (data stored under device linked to token)
curl -X POST -H "X-API-TOKEN: your-api-token" \
-F "file=@locations.geojson" \
https://your-reitti-instance/api/v1/geojson/import

# Import a GeoJSON file with explicit device override
curl -X POST -H "X-API-TOKEN: your-api-token" \
-F "file=@locations.geojson" \
-F "device=42" \
https://your-reitti-instance/api/v1/geojson/import
```

#### Response

The endpoint returns a JSON response confirming the import:

```json
{
"pointsScheduled": 2139,
"success": true,
"message": "Successfully imported GeoJSON file with 2139 location points"
}
```

#### Response Fields

- **pointsScheduled**: Number of location points that were imported from the GeoJSON file
- **success**: Boolean indicating if the import was successful
- **message**: Descriptive message about the import operation

### What Can Be Achieved

- **Export**: Generate GeoJSON files for use in GIS applications, custom maps, or data analysis
- **Import**: Upload GeoJSON files from other sources to populate your location history
- **Data Migration**: Transfer location data between systems using the GeoJSON format
- **Custom Visualizations**: Use exported data in tools like QGIS, Leaflet, or Mapbox
11 changes: 11 additions & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,14 @@ Example using query parameter:
```bash
curl https://your-reitti-instance/api/v1/latest-location?token=your-api-token
```

### Available Endpoints

| Endpoint | Description |
|---------------------------------------|--------------------------------------------------------------------------------------------------------|
| [Latest Location](latest-location.md) | Retrieve the most recent location point for a user. Useful for monitoring and health checks. |
| [GPX Import](gpx-import.md) | Upload GPX files to import location data programmatically. Supports automated batch imports. |
| [GPX Export](gpx-export.md) | Export location data as GPX files for a specified date range. Useful for backups and data portability. |
| [Visits](visits.md) | Retrieve visit data for places within a date range and optional geographic bounding box. |
| [Ingest](ingest.md) | Send location data directly to Reitti for processing and storage. Supports Owntracks format. |
| [GeoJSON](geojson.md) | Export and import location data in GeoJSON format for use with GIS tools and custom applications. |
6 changes: 6 additions & 0 deletions docs/api/ingest.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ The Ingest Data API endpoint allows you to send location data directly to Reitti
```
POST /api/v1/ingest/owntracks?token=API-TOKEN
```
or
```
POST /api/v1/ingest/gpslogger?token=API-TOKEN
```

Instead of the `token` parameter, you can also use the `X-API-Token` header for enhanced security.

### Usage

Expand Down
52 changes: 0 additions & 52 deletions docs/assets/js/scripts.js

This file was deleted.

87 changes: 87 additions & 0 deletions docs/configurations/devices.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: "Devices"
description: "Manage multiple tracking sources and build your timeline"
weight: 5
tags: [ "configuration" ]
---

|since|v5.0.0|.version-badge|

Reitti v5 introduces **Devices** as a core concept for managing location data from multiple sources. Each device
represents a tracking source (e.g., a phone, a Home Assistant integration, or a custom script), allowing you to organize
and visualize data independently before merging it into your personal timeline.

### Why Use Devices?

Devices give you the flexibility to:

- **Track Multiple Sources**: Ingest location data from different apps, devices, or integrations simultaneously
- **Organize Your Data**: Keep sources separate until you are ready to combine them
- **Color-Code Paths**: Each device can have its own color, making it easy to distinguish sources on the map
- **Control Visibility**: Show or hide a device on the map with a single toggle
- **Disable Inactive Sources**: Prevent further data ingestion and hide the device from other parts of Reitti

### How It Works

1. When data is ingested into the **default device**, your personal timeline is automatically updated and recalculated.
2. For any **additional devices** you create, you need to **manually stitch** together slices of GPS data to merge them
into your timeline. This is done in the [Workbench](../usage/workbench.md).
3. The stitching process lets you select specific time ranges from a device and combine them with the default device's
data, giving you full control over your final timeline.

### Configuration

To configure devices:

1. Navigate to **Settings > Devices**
2. You will see a list of all devices, including the default device created during migration
3. Configure each device's settings as desired
4. Save your settings to apply the configuration

### Device Settings

Each device has the following configurable properties:

- **Name**: A friendly name to identify the device (e.g., "Phone," "GPS Tracker," "Home Assistant," "Car Tracker")
- **Color**: The color used to draw the device's path on the map. Helps visually distinguish multiple sources
- **Show on Map**: A checkbox that enables or disables the device's visibility on the main map. Unchecked devices still
ingest data, but their paths are hidden
- **Disabled**: Completely disables the device. When disabled:
- Data cannot be ingested into the device
- The device is hidden from other places in Reitti (e.g., **Settings > Integrations**)
- The device's path is not shown on the map

![Device Configuration](../img/device-configuration.png)

### Default Device vs. Additional Devices

| Feature | Default Device | Additional Devices |
|-------------------------------|----------------|--------------------|
| **Auto-updates timeline** | Yes | No |
| **Manual stitching required** | No | Yes |
| **Can be disabled** | Yes | Yes |
| **Can be renamed** | Yes | Yes |
| **Colour-coded path** | Yes | Yes |

### Best Practices

- **Use the default device for your primary tracking source**: This ensures automatic timeline updates without manual
intervention
- **Create additional devices for secondary sources**: For example, a work phone, a shared family device, or a
temporary tracker
- **Stitch data regularly**: If you use multiple devices, periodically merge their data in
the [Workbench](../usage/workbench.md) to keep your timeline complete
- **Name devices clearly**: Use descriptive names to easily identify each source
- **Disable unused devices**: Prevents accidental data ingestion and keeps your settings clean

### Data Merging

To stitch data from an additional device into your timeline:

1. Go to the [Workbench](../usage/workbench.md)
2. Select the device you want to merge from
3. Choose the time slices of GPS data you want to include
4. Confirm the merge — the selected time slice will replace the data from your default device's timeline

Once merged, the data becomes part of your permanent timeline and is automatically recalculated alongside future default
device data.
Loading