# AdventureLog: Self-Hostable Travel Tracker with Trip Planning and World Maps

> AdventureLog lets you log visited locations, build multi-day trip itineraries, and track countries on an interactive world map from a Docker container you run yourself. It targets travelers who want full data ownership, collaboration, and integrations with tools like Immich and Strava.

**seanmorley15/AdventureLog** — Self-hostable travel tracker and trip planner.

- Repository: https://github.com/seanmorley15/AdventureLog
- Website: https://adventurelog.app
- Stars: 3,776 · Forks: 253
- Language: Svelte
- License: NOASSERTION
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/seanmorley15-adventurelog

## A Single App for Logging Visits, Planning Trips, and Tracking the World

Most travel apps split into separate tools: one for logging past trips, another for planning future ones, a third for mapping countries visited. AdventureLog combines all three. You pin locations with dates, notes, photos, categories, and tags; build multi-day trip itineraries that include flights, lodging, checklists, and calendar views; and track progress across countries, regions, and cities on an interactive world map.

The project targets travelers who run their own infrastructure. It ships as a Docker container and stores all data in a self-hosted PostGIS database. The README lists the license as GPL-3.0, which means you can inspect and modify the source, but any modified version you distribute must be released under the same terms.

AdventureLog is not a mobile app with offline-first sync. It runs as a web application you access from a browser. That suits homelab users, VPS operators, and NAS owners comfortable with Docker, but it is a real constraint for travelers who need local data when connectivity is absent.

## SvelteKit Frontend, Django Backend, and PostGIS for Spatial Data

AdventureLog divides cleanly into two layers. The frontend is built on SvelteKit with Tailwind CSS and DaisyUI for styling, and Svelte MapLibre for the interactive map. The backend runs Django with Django REST Framework, backed by a PostGIS-extended PostgreSQL database.

PostGIS is the key architectural decision. Storing locations as geographic types rather than plain latitude and longitude columns allows the backend to perform spatial queries and attach GPX tracks with elevation data from activity integrations. The docker-compose.yml ships the postgis/postgis:16-3.5 image, so spatial support is on by default with no separate configuration step.

The all-in-one Docker image (ghcr.io/seanmorley15/adventurelog:latest) bundles the SvelteKit frontend and the Django backend into a single container, keeping the compose file simple: one app service and one database service. The app service exposes port 80 internally and maps it to HOST_PORT, which defaults to 8015.

## Deploying AdventureLog with Docker: One Command to a Running Instance

The README offers a one-line installer for Linux and macOS:

```bash
curl -sSL https://get.adventurelog.app | bash
```

This script fetches and runs the standard Docker Compose setup. Alternatively, clone the repository and configure the environment file:

```bash
cp .env.example .env
```

Open .env and set at least these three variables before starting the stack:

```bash
POSTGRES_PASSWORD=changeme123
SITE_URL=http://localhost:8015
HOST_PORT=8015
```

POSTGRES_PASSWORD is required; the compose file refuses to start if it is empty. SITE_URL drives Django's CSRF and backend URL references, so it must match your actual public address when you deploy behind a reverse proxy.

The compose file starts two services: the app container and the database (PostGIS 16.3.5). The app waits for the database healthcheck before it starts, and its own healthcheck polls the /health endpoint every 30 seconds with a 120-second start period, which accounts for the Django migration run on first boot.

The README states the default admin credentials are username admin and password admin, and recommends changing them immediately. DJANGO_ADMIN_USERNAME, DJANGO_ADMIN_PASSWORD, and DJANGO_ADMIN_EMAIL in .env control what is created on first boot.

## No Offline Mode, No Native Mobile App, and a PostGIS Dependency

AdventureLog has three constraints worth knowing before you commit to it.

First, there is no offline mode. The application runs entirely in a browser and requires a network connection to the host. Logging a hike in a dead zone or recording a restaurant visit when your VPN is down requires a separate workaround.

Second, there is no native iOS or Android app. The web interface works from a mobile browser, but you do not get push notifications, native share extensions, or background GPS logging.

Third, the PostGIS dependency means you cannot swap in a simpler SQLite backend. PostGIS requires a running PostgreSQL server with the extension installed, adding memory and CPU overhead compared to file-based databases. The README states the minimum is 2 GB RAM on first boot. On a shared VPS with 1 GB of RAM, the migrations may fail or the container may be killed by the system.

## AdventureLog vs Wanderlog: Self-Hosted Ownership Against Cloud Convenience

Wanderlog is a cloud-hosted trip planning and travel logging service with iOS and Android apps that stores all data on Wanderlog's servers under Wanderlog's data policy.

AdventureLog offers a different ownership model: the data lives on your server, you control access, and there is no vendor to lock you out or change pricing. The trade-off is that you take on the operational work of running PostgreSQL, keeping Docker images current, and managing backups.

Wanderlog's strength is frictionless setup: create an account and start planning. AdventureLog requires a host with Docker, an address, and roughly 2 GB of RAM. For a solo traveler who does not run a homelab, the operational overhead is a real barrier. For an engineer who already runs self-hosted services and values data portability, AdventureLog avoids vendor lock-in entirely.

## Connecting Immich, Strava, and Wanderer to AdventureLog

AdventureLog documents five integrations: Immich, Strava, Endurain, Wanderer, and Google Maps.

Immich is a self-hosted photo library. The integration links photos from Immich directly to location entries without duplicating files on disk.

Strava and Endurain are activity trackers. Both integrations pull GPX tracks, distance, and elevation into AdventureLog so a running or cycling activity can be attached to a location or trip entry.

Wanderer is a self-hosted trail manager. Its integration attaches trail metadata, including distance and elevation, to AdventureLog entries.

Google Maps provides geocoding and location search. The README does not document an alternative geocoding source, so address-based location search may be limited without this integration.

All five integrations are documented at adventurelog.app/docs. Configuration uses environment variables found in .env.advanced.example rather than the default .env.example, so you will need to reference that file when enabling any of them.

## Maintenance Status and License Considerations

The last push to the repository was on 2026-09-26, and the most recent release is v0.13.0 called Acadia, dated 2026-08-12. The repository is not archived. Releases have shipped across several months through 2026, showing steady development pace.

The README states the project is licensed under GPL-3.0. For most self-hosters, this means you can run AdventureLog freely and modify the code for your own use. The copyleft clause applies when you distribute modified versions: running a modified instance for your own household or a small team without distributing the software does not require you to publish changes. Anyone building a hosted service on top of AdventureLog and distributing it to third parties must release their modifications under GPL-3.0.

The Docker image is on the GitHub Container Registry at ghcr.io/seanmorley15/adventurelog. Staying current means pulling the latest tag and restarting the compose stack. The README does not document a database migration rollback procedure, so testing upgrades on a non-production instance before updating production is the safer path.

## Conclusion

AdventureLog is the right pick for self-hosters who want one app to cover location logging, trip itineraries, and world travel stats without handing data to a third party. It is a poor fit for users on shared hosting without Docker, or anyone who needs a mobile-first offline experience: the README does not document an offline mode. Before deploying, verify your host meets the 2 GB RAM minimum and set POSTGRES_PASSWORD to something other than the placeholder value of changeme123 that ships in .env.example.

## FAQ

### How do you use AdventureLog?

Deploy AdventureLog with Docker using the one-line installer or by copying .env.example to .env, setting POSTGRES_PASSWORD and SITE_URL, and running docker compose up. Once running, log in with the admin credentials set in .env and begin adding locations or building trip itineraries from the web interface.

### How does AdventureLog compare to Wanderlog?

AdventureLog is a self-hosted, open-source application where your data stays on your own server, while Wanderlog is a cloud-hosted SaaS. AdventureLog requires running Docker and PostgreSQL with PostGIS; Wanderlog requires only a browser account. The trade-off is data ownership and privacy against operational setup time.

### How does Wanderer compare to AdventureLog?

Wanderer is a self-hosted trail manager focused on hiking and outdoor routes, while AdventureLog is a broader travel tracker covering locations, trips, and world travel stats. AdventureLog can import data from Wanderer via an integration documented at adventurelog.app/docs.

### What does AdventureLog trip planning include?

AdventureLog trip planning lets you create multi-day itineraries containing flights, lodging entries, checklists, links, and a calendar view. Trips can be shared via public links or opened for collaborative editing by other registered users on the same instance.

## Sources

- [Issues](https://github.com/seanmorley15/AdventureLog/issues)
- [Project website](https://adventurelog.app)
- [README](https://github.com/seanmorley15/AdventureLog/blob/main/README.md)
- [Releases](https://github.com/seanmorley15/AdventureLog/releases)
- [seanmorley15/AdventureLog on GitHub](https://github.com/seanmorley15/AdventureLog)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/seanmorley15-adventurelog
