maybe_start_location_tracking/2 matched %{track_location: true} in the
track_settings argument. No caller passes that key -- all five call sites
send %{map_id: _, track: true | false} -- so the clause never matched and
the function could not turn location tracking on. maybe_start_ship_tracking/2
had the identical defect.
Match on the state's active_maps instead: a character on at least one map
should be polling their location.
Without this, a character is stranded by an event they never initiated. When
a browser's presence lapses past the grace period the character is untracked
server-side, active_maps empties, and maybe_stop_tracking/2 clears
track_location. The character is still online in EVE throughout, and the only
other writer -- update_online/1 -- is gated on an online-status transition
that a character who stays logged in never produces. So the browser
reconnecting cannot restore it. update_location/1 then falls through to its
catch-all on every tick, and the character stops moving on the map while
every liveness signal keeps reporting healthy.
This is why #620 reports that toggling tracking off and on does not help but
relogging in EVE does: toggling routes through the dead clause, while
relogging produces the online transition that restores the flag as a side
effect.
Fixes #620
Wanderer
Wanderer is an #1 EVE Online mapper tool, light and fast alternative to Pathfinder. You can self-host Wanderer Community Edition or have us manage Wanderer for you in the cloud. Made and hosted in the EU 🇪🇺
Why Wanderer?
Here's what makes Wanderer a great Pathfinder alternative:
- Clutter Free: Wanderer provides simple interface and it cuts through the noise. No training necessary.
- Lightweight, fast and secure: Wanderer is lightweight and fast. It uses a self-hosted database and a self-hosted server.
- See all your characaters on a single page: Wanderer provides a simple interface to see all your characters on a single page.
- SPA support: Wanderer is built with modern web frameworks in core.
- Active development: Wanderer is actively developed and improved with new features and updates every week based on user feedback.
Interested to learn more? Check more on our website.
Can Wanderer be self-hosted?
Wanderer is open source project and we have a free as in beer and self-hosted solution called Wanderer Community Edition (CE). Here are the differences between Wanderer and Wanderer CE:
| Wanderer Cloud | Wanderer Community Edition | |
|---|---|---|
| Infrastructure management | Easy and convenient. It takes 2 minutes to register your character and create a map. We manage everything so you don’t have to worry about anything and can focus on gameplay. | You do it all yourself. You need to get a server and you need to manage your infrastructure. You are responsible for installation, maintenance, upgrades, server capacity, uptime, backup, security, stability, consistency, loading time and so on. |
| Release schedule | Continuously developed and improved with new features and updates multiple times per week. | Latest features and improvements won't be immediately available. |
| Server location | All visitor data is exclusively processed on EU-owned cloud infrastructure. We keep your site data on a secure, encrypted and green energy powered server in Germany. This ensures that your site data is protected by the strict European Union data privacy laws and ensures compliance with GDPR. Your website data never leaves the EU. | You have full control and can host your instance on any server in any country that you wish. Host it on a server in your basement or host it with any cloud provider wherever you want, even those that are not GDPR compliant. |
Interested in self-hosting Wanderer CE on your server? Take a look at our Wanderer CE installation instructions.
Wanderer CE is a community supported project and there are no guarantees that you will get support from the creators of Wanderer to troubleshoot your self-hosting issues. There is a community supported forum where you can ask for help.
Our only source of funding is your donations.
Technology
Wanderer is a standard Elixir/Phoenix application backed by a PostgreSQL database for general data. On the frontend we use TailwindCSS for styling and React to make the map interactive.
Development
Setup
-
Copy
.env.exampleto.envand fill in the values -
Run
mix setupto install and setup dependencies -
(optional step) run
make yarnto install client dependencies
Run
- Start server with
make serverormake s
Now you can visit localhost:8000 from your browser.
Using .devcontainer
- Copy
.env.exampleto.envand fill in the values - Open the repository in the dev container ("Reopen in Container")
The image ships Erlang/Elixir pinned to .tool-versions, Node.js 18, yarn and
the usual CLI tooling, and runs as the non-root developer user. On first
create, .devcontainer/setup.sh fetches and compiles deps, creates and migrates
the database, seeds the EVE SDE reference data if it is missing, and installs
and builds the client assets — so there is nothing to install by hand.
-
If your host user id is not
1000, exportUSER_UID/USER_GIDbefore building so files written through the bind mount stay host-owned. See.devcontainer/docker-compose.override.yml.examplefor this and other host-specific settings. -
See how to run server in #Run section
Using nix flakes
- Run
nix develop - Run local postgres server:
pg-setup&pg-start - See how to start server in #setup section
Migrations
Reset database
mix ecto.reset
Run seed data
mix run priv/repo/seeds.exs
Generate new migration
mix ash.codegen <name_of_migration>mix ash.migrate
Generate cloak key
iex> 32 |> :crypto.strong_rand_bytes() |> Base.encode64()
