Initial vault setup
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user