You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -17,38 +17,39 @@ Standard geocoding solutions often fall short for specific personal tracking nee
17
17
18
18
## Relationship to Reitti
19
19
20
-
[Reitti](https://github.com/dedicatedcode/reitti) is a comprehensive personal location tracking and analysis application that helps you understand your movement patterns and significant places. PAIKKA acts as the dedicated "location engine" for Reitti, converting raw GPS coordinates into human-readable context.
20
+
[Reitti](https://github.com/dedicatedcode/reitti) is a comprehensive personal location tracking and analysis application that helps you understand your movement patterns and significant places. PAIKKA acts as the dedicated "location engine" for Reitti, converting raw GPS
21
+
coordinates into human-readable context.
21
22
22
23
## Limitations
23
24
24
25
- Boundary data is dependent on availability within the source nodes.
25
26
- Optimized for read-heavy serving; updates require re-importing prepared data.
26
27
- Focused strictly on reverse geocoding (coordinates to place).
27
28
-**Highly Opinionated POI Selection:** PAIKKA is deliberately selective about which Points of Interest it imports. It only includes POIs with the following OSM tags:
-`building` (commercial, retail, industrial, office – but not residential or generic "yes")
46
+
46
47
Many common OSM features are explicitly excluded, such as:
47
-
- Natural features like trees and grass
48
-
- Man-made structures like electric-poles, trash cans
49
-
- Amenities like benches, drinking water, and picnic tables
50
-
- Swimming pools and fountains
51
-
48
+
- Natural features like trees and grass
49
+
- Man-made structures like electric-poles, trash cans
50
+
- Amenities like benches, drinking water, and picnic tables
51
+
- Swimming pools and fountains
52
+
52
53
If you need comprehensive POI coverage including all OSM features, **Nominatim** would be a better fit for your use case. While it would be technically possible to import the complete unfiltered dataset, this was never the intended design and has not been tested.
53
54
54
55
## Features
@@ -124,7 +125,7 @@ The [OpenStreetMap website](https://www.openstreetmap.org/export/) allows you to
124
125
The above benchmarks were performed on the following hardware:
The `--memory` flag (e.g., `--memory 16G`) controls the JVM heap size only. RocksDB requires additional memory beyond the heap for its block cache and internal structures. For optimal performance with large imports, ensure your system has significantly more RAM available than the heap size specified. As a guideline, a 16GB heap typically works well on systems with 24-32GB of RAM for medium-sized countries, while planet imports benefit from 32GB+ heap on systems with 64GB+ RAM.
138
+
The `--memory` flag (e.g., `--memory 16G`) controls the JVM heap size only. RocksDB requires additional memory beyond the heap for its block cache and internal structures. For optimal performance with large imports, ensure your system has significantly more RAM available than
139
+
the heap size specified. As a guideline, a 16GB heap typically works well on systems with 24-32GB of RAM for medium-sized countries, while planet imports benefit from 32GB+ heap on systems with 64GB+ RAM.
138
140
139
141
**Swap Space:**
140
142
141
-
Ensure adequate swap space is available. During import, memory usage can spike due to RocksDB's internal buffering and compaction operations. Without sufficient swap, the system may invoke the OOM killer to terminate processes when memory limits are exceeded. A good rule of thumb is to have swap space at least equal to or larger than the JVM heap size (e.g., 16GB heap with 16GB+ swap).
143
+
Ensure adequate swap space is available. During import, memory usage can spike due to RocksDB's internal buffering and compaction operations. Without sufficient swap, the system may invoke the OOM killer to terminate processes when memory limits are exceeded. A good rule of
144
+
thumb is to have swap space at least equal to or larger than the JVM heap size (e.g., 16GB heap with 16GB+ swap).
2. Configure PAIKKA using environment variables in `.env` file or the command line:
285
-
```bash
286
-
# Example .env file
287
-
ADMIN_PASSWORD=your-secure-password
288
-
BASE_URL=https://your-domain.com
289
-
MAX_RESULTS=1000
290
-
APP_LOG_LEVEL=DEBUG
291
-
```
326
+
2. Create a `.env` file in the same directory to configure your environment variables:
292
327
293
-
3. Create a data directory:
294
-
```bash
295
-
mkdir -p data
296
-
mkdir -p stats
297
-
```
298
-
4. Start the service:
328
+
```bash
329
+
# Example .env file
330
+
ADMIN_PASSWORD=your-secure-password
331
+
BASE_URL=http://localhost:8080
332
+
MAX_RESULTS=500
333
+
DEFAULT_RESULTS=10
334
+
MAX_IMPORT_THREADS=10
335
+
APP_LOG_LEVEL=INFO
336
+
```
337
+
338
+
3. Start the service:
299
339
```bash
300
340
docker compose up -d
301
341
```
302
342
303
-
5. Verify the service is running:
343
+
4. Verify the service is running:
304
344
```bash
305
345
curl 'http://localhost:8080/api/v1/health'
306
346
```
307
347
348
+
### Important: Admin Password
349
+
The admin interface requires a password to be set via the `ADMIN_PASSWORD` environment variable. If not set, the admin endpoints will be inaccessible. Set it in your `.env` file or docker-compose configuration.
350
+
308
351
### Volume Management
309
352
310
353
Docker Compose creates two persistent volumes:
@@ -344,66 +387,51 @@ docker compose up -d
344
387
345
388
### Configuration
346
389
347
-
Configure the service using environment variables or application properties:
390
+
Configure the service using environment variables or application properties. The Docker version uses the following Spring profile properties:
- Visit `http://localhost:8080/` for the about page
426
-
- Visit `http://localhost:8080/admin/stats` to access the admin dashboard (login required)
454
+
- Visit `http://localhost:8080/login` to access the admin dashboard (requires `ADMIN_PASSWORD` to be set)
427
455
428
456
## Integration with Reitti
429
457
@@ -433,13 +461,13 @@ TBA
433
461
434
462
There are multiple ways of getting support:
435
463
436
-
- Create a [new issue](https://github.com/dedicatedcode/paikka/issues/new/choose) in the repository
464
+
- Create a (https://github.com/dedicatedcode/paikka/issues/new/choose) in the repository
437
465
- Tag me on [Lemmy](https://discuss.tchncs.de/u/danielgraf)
438
-
- Join **#reitti** on [irc.dedicatedcode.com](https://irc.dedicatedcode.com)
466
+
- Join **#reitti** on (https://irc.dedicatedcode.com)
439
467
440
468
## Contributing
441
469
442
-
Contributions are welcome! Please feel free to submit a Pull Request to [repository](https://github.com/dedicatedcode/paikka).
470
+
Contributions are welcome! Please feel free to submit a Pull Request to (https://github.com/dedicatedcode/paikka).
443
471
444
472
## Technology Stack
445
473
@@ -457,4 +485,4 @@ This project is licensed under the GNU Affero General Public License v3 (AGPLv3)
457
485
458
486
## About
459
487
460
-
PAIKKA is developed as part of the Reitti ecosystem by [dedicatedcode](https://github.com/dedicatedcode). It provides the geocoding infrastructure that powers location-based features in Reitti.
488
+
PAIKKA is developed as part of the Reitti ecosystem by (https://github.com/dedicatedcode). It provides the geocoding infrastructure that powers location-based features in Reitti.
0 commit comments