132 lines
5.4 KiB
Markdown
132 lines
5.4 KiB
Markdown
---
|
|
title: AdventureLog
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, tracking, voyages, aventures, gps, django, vue, carte]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/adventurelog, https://github.com/seanmorley15/AdventureLog]
|
|
---
|
|
|
|
# AdventureLog 🌍
|
|
|
|
> Un journal de voyages et d'aventures géolocalisé, avec carte interactive, planification d'itinéraires et suivi GPS.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://adventurelog.app/ |
|
|
| **GitHub** | https://github.com/seanmorley15/AdventureLog |
|
|
| **License** | GPL-3.0 |
|
|
| **Langage principal** | Django (Python) + Vue.js (TS) |
|
|
| **Étoiles GitHub** | ⭐225 |
|
|
| **Dernière MAJ** | 2026-05-30 |
|
|
| **Catégorie** | [[cat-tracking]] |
|
|
|
|
## Description
|
|
|
|
AdventureLog est un **journal de bord du voyageur** self-hosted : on y consigne ses voyages, ses étapes, ses hébergements, ses activités, et chaque point est géolocalisé sur une **carte du monde interactive** (basée sur Leaflet, compatible avec n'importe quel fournisseur de tuiles — OpenStreetMap, MapTiler, Stadia Maps, etc.). C'est l'équivalent auto-hébergé d'un Polarsteps ou d'un FindPenguins, mais avec une **souveraineté totale** sur ses données.
|
|
|
|
L'application est bâtie sur **Django + Django REST Framework** côté backend et **Vue 3 + TypeScript** côté frontend, avec PostgreSQL/PostGIS pour les données géospatiales. Le projet est **actif** et a une roadmap publique — le développement a démarré fin 2023 et continue régulièrement.
|
|
|
|
Les fonctionnalités notables incluent : **partage public** d'un voyage (URL type `/share/uuid` avec vue lecture seule), **import GPX/KML** pour réinjecter les traces GPS, **collections thématiques** (roadtrip Asie, treks Pyrénées, voyages en camping-car), **téléversement de photos** avec EXIF/GPS automatiques, et **statistiques** (km parcourus, pays visités, durée cumulée). L'application expose une API REST documentée.
|
|
|
|
## Installation
|
|
### Via Docker (recommandé)
|
|
```yaml
|
|
services:
|
|
backend:
|
|
container_name: adventurelog-backend
|
|
image: ghcr.io/seanmorley15/adventurelog-backend:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- DJANGO_SECRET_KEY=changez-moi-en-production
|
|
- DJANGO_ALLOWED_HOSTS=aventure.example.com
|
|
- DATABASE_URL=postgresql://adventurelog:secret@db:5432/adventurelog
|
|
- REDIS_URL=redis://redis:6379/0
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
frontend:
|
|
container_name: adventurelog-frontend
|
|
image: ghcr.io/seanmorley15/adventurelog-frontend:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- PUBLIC_API_URL=https://aventure.example.com/api
|
|
|
|
db:
|
|
image: postgis/postgis:16-3.4-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_DB=adventurelog
|
|
- POSTGRES_USER=adventurelog
|
|
- POSTGRES_PASSWORD=secret
|
|
volumes:
|
|
- adventurelog-db:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U adventurelog"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
adventurelog-db:
|
|
```
|
|
|
|
### Installation manuelle
|
|
1. Pré-requis : Python 3.11+, Node 20+, PostgreSQL 15+ avec extension PostGIS, Redis 7+.
|
|
2. Cloner : `git clone https://github.com/seanmorley15/AdventureLog.git`
|
|
3. Backend : `cd backend && pip install -r requirements.txt && python manage.py migrate`
|
|
4. Frontend : `cd frontend && npm install && npm run build`
|
|
5. Servir le frontend compilé via Nginx, le backend via Gunicorn.
|
|
|
|
## Configuration
|
|
|
|
- Créer un **compte administrateur** via `python manage.py createsuperuser`.
|
|
- Configurer le **fournisseur de tuiles** dans `settings.py` (par défaut OSM, mais il est recommandé d'utiliser sa propre clé MapTiler/Stadia en production pour éviter le rate-limit OSM).
|
|
- Activer le **téléversement de photos** en configurant un volume persistant et le `MEDIA_ROOT`.
|
|
- Configurer la **clé Mapbox/MapTiler** côté frontend pour le géocodage (autocomplétion d'adresses).
|
|
- Définir les **limites de partage public** (quels voyages sont partageables, par qui).
|
|
|
|
## Alternatives
|
|
### Open source
|
|
- **Polarsteps** *(propriétaire)* — remplacé par AdventureLog
|
|
- **FindPenguins** *(propriétaire)* — équivalent mobile-only
|
|
- [[app-wanderer]] — réseau social pour randonneurs avec traces GPX
|
|
- **OwnTracks** — tracker GPS brut, sans notion de voyage
|
|
### Propriétaires
|
|
- **Polarsteps** — référence, mais hébergé chez eux
|
|
- **FindPenguins** — idem
|
|
- **TravelMap** — payant, public uniquement
|
|
|
|
## Sécurité
|
|
|
|
- **Changer `DJANGO_SECRET_KEY`** par une valeur aléatoire forte.
|
|
- **DEBUG=False** impératif en production.
|
|
- L'API REST est authentifiée par token, sauf les **endpoints publics de partage** — surveillez-les.
|
|
- Les **photos** peuvent contenir des EXIF GPS — attention si partage public.
|
|
- **Sauvegardes** : `pg_dump` régulier de la base, plus synchronisation du dossier médias.
|
|
- Placer derrière HTTPS (Traefik/Caddy) — Let's Encrypt automatique.
|
|
|
|
## Ressources
|
|
- Site officiel : https://adventurelog.app/
|
|
- Dépôt GitHub : https://github.com/seanmorley15/AdventureLog
|
|
- Documentation : https://docs.adventurelog.app/
|
|
- Démo : https://demo.adventurelog.app/
|
|
- selfh.st : https://selfh.st/apps/adventurelog
|
|
|
|
## Pages Liées
|
|
- [[cat-tracking]]
|
|
- [[recettes-docker-compose]]
|