Skip to content

Commit 747609a

Browse files
authored
Update (#3)
* restructure navigation * updated oidc documentation to include username assignment logic * updated oidc documentation to include username assignment logic * removed references to rabbitmq * added upgrade guide * fixed padding for select
1 parent 8d515f7 commit 747609a

19 files changed

Lines changed: 359 additions & 59 deletions

docs/.nav.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
nav:
2+
- Overview: index.md
3+
- Installation: installation.md
4+
- Getting Started: getting-started.md
5+
- About:
6+
- "about/*"
7+
- Usage:
8+
- "usage/main-view.md"
9+
- "usage/*"
10+
- Memories:
11+
- "memories/*"
12+
- Configuration:
13+
- "configurations/*"
14+
- Integrations:
15+
- "integrations/mobile-apps.md"
16+
- "integrations/*"
17+
- Infrastructure:
18+
- backup.md
19+
- "infrastructure/*"
20+
- "*"

docs/about/features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Reitti provides a comprehensive set of features for personal location tracking a
2727
- **API Token Management**: Secure API access with token-based authentication
2828
- **User Profile Management**: Customizable display names and secure password management
2929
- **Magic Link Sharing**: Share location data without requiring account creation ([Learn more](../usage/share-access.md))
30-
- **OpenID Connect Integration**: Enterprise authentication with automatic user provisioning ([Setup guide](../configurations/oidc.md))
30+
- **OpenID Connect Integration**: Enterprise authentication with automatic user provisioning ([Setup guide](../infrastructure/oidc.md))
3131

3232
#### Geocoding & Address Resolution
3333
- **Multiple Geocoding Services**: Support for custom geocoding providers (Nominatim, etc.)

docs/about/how-it-works.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ weight: 4
55
tags: ["overview"]
66
---
77

8-
Reitti depends on a consistent stream of geo location data to process and calculate visits, places, and trips between visits. The data processing pipeline follows these steps:
8+
Reitti depends on a consistent stream of geolocation data to process and calculate visits, places, and trips between visits. The data processing pipeline follows these steps:
99

1010
### Data Processing Pipeline
1111

@@ -22,10 +22,10 @@ Around each datapoint, Reitti calculates potential visits. This process can iden
2222
Successive visits are merged into ProcessedVisits, combining related location points into meaningful stay periods.
2323

2424
#### 5. Significant Places Creation
25-
After visits are merged into ProcessedVisits, SignificantPlaces are created or matched for each ProcessedVisit. SignificantPlaces represent locations on the map where you spend time - such as your home, workplace, or any other location where you stayed more than 5 minutes.
25+
After visits are merged into ProcessedVisits, SignificantPlaces are created or matched for each ProcessedVisit. SignificantPlaces represent locations on the map where you spend time such as your home, workplace, or any other location where you stayed more than 5 minutes.
2626

2727
#### 6. Address Resolution
28-
SignificantPlaces are processed through reverse geocoding to assign human-readable names and addresses, making them easier to identify and understand.
28+
SignificantPlaces are processed through reverse geocoding to assign human-readable names and addresses, making them easier to identify and understand. See [Reverse Geocoding](../configurations/reverse-geocoding.md) for more details.
2929

3030
#### 7. Trip Calculation
3131
Finally, the system calculates Trips between successive ProcessedVisits, tracking your movement patterns and transportation between significant locations.

docs/assets/js/scripts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ document.addEventListener("DOMContentLoaded", function() {
2020
// 2. Create the select element
2121
const select = document.createElement("select");
2222
select.id = "version-selector";
23-
select.style.padding = "4px 8px";
23+
select.style.padding = "4px 24px 4px 8px";
2424
select.style.border = "1px solid #444";
2525
select.style.borderRadius = "6px";
2626
select.style.fontSize = "12px";

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Memories transform your raw location data into narrative-driven travel logs, all
4747
#### Privacy & Self-hosting
4848
- **Complete Data Control**: Your location data never leaves your server
4949
- **Self-hosted Solution**: Deploy on your own infrastructure
50-
- **Asynchronous Processing**: Handle large datasets efficiently with RabbitMQ-based processing
50+
- **Asynchronous Processing**: Handle large datasets efficiently
5151

5252
### Quick Start
5353

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ tags: ["configuration"]
88

99
## General Information
1010

11-
When deploying **Reitti** with Docker Swarm or Docker Compose you can keep sensitive
12-
information (e.g. database credentials) out of the plain‑text `docker‑compose.yml`
11+
When deploying **Reitti** with Docker Swarm or Docker Compose, you can keep sensitive
12+
information (for example database credentials) out of the plain‑text `docker‑compose.yml`
1313
by using Docker **secrets**.
1414

1515
The workflow consists of three steps:
@@ -66,8 +66,6 @@ services:
6666
ports:
6767
- "8080:8080"
6868
depends_on:
69-
rabbitmq:
70-
condition: service_healthy
7169
postgis:
7270
condition: service_healthy
7371
restart: true
@@ -102,8 +100,7 @@ the contents of the secret files.
102100
## Full Example `docker-compose.yml`
103101

104102
Below is a minimal compose file that demonstrates the complete setup for the
105-
`reitti` service with Docker secrets. The other services (`postgis`, `rabbitmq`,
106-
`redis`, etc.) are omitted for brevity – add them back as required by your
103+
`reitti` service with Docker secrets. The other services (`postgis`, `redis`, etc.) are omitted for brevity – add them back as required by your
107104
deployment.
108105

109106
```yaml
@@ -115,8 +112,6 @@ services:
115112
ports:
116113
- "8080:8080"
117114
depends_on:
118-
rabbitmq:
119-
condition: service_healthy
120115
postgis:
121116
condition: service_healthy
122117
restart: true
@@ -136,7 +131,7 @@ services:
136131
- postgis_user
137132
- postgis_password
138133
139-
# ... other services such as postgis, rabbitmq, redis, etc. ...
134+
# ... other services such as postgis, redis, etc. ...
140135
141136
volumes:
142137
reitti-data:
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,24 @@ Reitti uses a flexible process to match OIDC users with existing accounts:
8181
2. **Fallback Match**: If no external ID match, searches by the OIDC `preferred_username`
8282
3. **Account Linking**: When a username match is found, the account is linked with the external ID for future logins
8383

84+
### Username Assignment Logic
85+
86+
When a user logs in via OIDC for the first time, Reitti follows this priority to determine their username:
87+
88+
1. **`preferred_username` claim** from the ID token
89+
2. **`preferred_username` claim** from the OIDC user object
90+
3. **`preferred_username` claim** from user info endpoint (if available)
91+
4. **Email address** (`email` claim)
92+
5. **Generated name** (`given_name` + "." + `family_name` in lowercase)
93+
6. **OIDC subject** (`sub` claim) as final fallback
94+
95+
This means Reitti will try multiple OIDC claims before falling back to the subject identifier. For example:
96+
97+
- If your OIDC provider supplies `preferred_username: "jane.doe"`, that becomes the username
98+
- If not, but `email: "jane@example.com"` is available, that becomes the username
99+
- If only `given_name: "Jane"` and `family_name: "Doe"` are available, the username becomes `"jane.doe"`
100+
- As a last resort, the OIDC subject (e.g., `"1234567890"`) is used
101+
84102
#### User Data Synchronization
85103

86104
User information is automatically updated from OIDC claims on each login:
File renamed without changes.

docs/installation.md

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ description: "Step-by-step guide to install and configure Reitti"
44
---
55
### Docker Installation (Recommended)
66

7-
Docker is the easiest way to get Reitti up and running. The provided Docker Compose configuration handles all the required services including PostgreSQL with PostGIS, RabbitMQ, Redis, and Photon geocoding service.
7+
Docker is the easiest way to get Reitti up and running. The provided Docker Compose configuration handles all the required services including PostgreSQL with PostGIS and Redis.
88

9-
Simply download the [docker-compose.yml](https://github.com/dedicatedcode/reitti/blob/main/docker-compose.yml) file and run:
9+
Download the [docker-compose.yml](https://github.com/dedicatedcode/reitti/blob/main/docker-compose.yml) file and run:
1010

1111
```bash
1212
docker-compose up -d
@@ -19,9 +19,8 @@ This will start all services and make Reitti available at http://localhost:8080.
1919
If you prefer to run Reitti without Docker but don't want to build from source, you can download the pre-built JAR file from the releases page.
2020

2121
#### Prerequisites
22-
- Java 24 or higher
22+
- Java 25 or higher
2323
- PostgreSQL with PostGIS extensions
24-
- RabbitMQ
2524
- Redis
2625

2726
#### Installation Steps
@@ -43,12 +42,6 @@ spring.data.redis.port=6379
4342
spring.data.redis.username=
4443
spring.data.redis.password=
4544

46-
# RabbitMQ Configuration
47-
spring.rabbitmq.host=localhost
48-
spring.rabbitmq.port=5672
49-
spring.rabbitmq.username=reitti
50-
spring.rabbitmq.password=reitti
51-
5245
# Storage configuration (optional)
5346
# Default: reitti.storage.path=data/
5447
# Make sure the user running Reitti has write permissions to this directory
@@ -69,10 +62,9 @@ The application will be available at http://localhost:8080. When you first open
6962
To build and run Reitti from source code:
7063

7164
#### Prerequisites
72-
- Java 24 or higher
65+
- Java 25 or higher
7366
- Maven 3.6 or higher
7467
- PostgreSQL with PostGIS extensions
75-
- RabbitMQ
7668
- Redis
7769

7870
#### Build Steps
@@ -98,12 +90,6 @@ spring.data.redis.port=6379
9890
spring.data.redis.username=
9991
spring.data.redis.password=
10092

101-
# RabbitMQ Configuration
102-
spring.rabbitmq.host=localhost
103-
spring.rabbitmq.port=5672
104-
spring.rabbitmq.username=reitti
105-
spring.rabbitmq.password=reitti
106-
10793
# Storage configuration (optional)
10894
# Default: reitti.storage.path=data/
10995
# Make sure the user running Reitti has write permissions to this directory

docs/integrations/custom-file-upload.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: "Custom File Upload"
33
description: "Integrate custom scripts to upload GPX files to Reitti for automated location data import"
4-
weight: 15
54
tags: ["integrations"]
65
---
76

0 commit comments

Comments
 (0)