Pathfinder – Installation

This is a revised version of the post I made on pathfinder slack channel name under donny.donichi.

eve online wormhole mapping tool, Pathfinder, only available in a docker installation. There is a git hub available for you to download the bare installation. The problem is that it is still using php 7.x which is not supported in the mordern linux distributions. In my case, gentoo and Ubuntu using php 8.2 or 8.3. Thus, you have to use the docker solution.

It also uses traefik solution to proxy the web trafic to various docker containers which is not ideal solution if you are running nginx or apache using ports 80 and 443.

There are some tweaks required on the default installation.

Remove traefik From docker-compose.yml

You need to remove traefik configuration in docker-compose.yml and reconfigure your apache to work as a proxy server. The below config is to use port 8081 instead of 8080 in the default config and remove traefik related configs. There is no reason to choose 8081. You can choose any port as long as it’s not used other services.

The config is also using mariadb:latest which is an official docker image from mariadb. I couldn’t make the pathfinder default one work at the initial attempt, but it worked my second attempt on another instance. Do make sure to set db password in .env before you download and create the docker image. That is the only chance when the database will accept root password. Otherwise, you need to delete, image, containers, and volume and recreate the docker image from scratch.

version: "3.9"

services:
  pfdb:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: $MYSQL_PASSWORD
    networks:
      pf:
        aliases:
          - "$MYSQL_HOST"
    volumes:
      - db_data:/var/lib/mysql
      - ./pathfinder/export/sql/eve_universe.sql.zip:/eve_universe.sql.zip
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    restart: always
  pf-redis:
    image: redis:6.2.5-alpine3.14
    command: ["redis-server", "--appendonly", "yes"]
    container_name: redis
    volumes:
      - redis_data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    networks:
      pf:
        aliases:
          - "$REDIS_HOST"
    logging:
      driver: none
    restart: always
  pf-socket:
    image: ghcr.io/goryn-clade/pf-websocket:latest
    command: ["--tcpHost", "0.0.0.0"]
    container_name: socket
    networks:
      pf:
         aliases:
           - "$PATHFINDER_SOCKET_HOST"
    volumes:
      - ./logs:/var/www/html/pathfinder/history/map
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    restart: always

  pf:
    container_name: pathfinder
    image: ghcr.io/goryn-clade/pathfinder:latest
    env_file:
      - .env
    networks:
      - pf
    ports:
      - "8081:80"
    healthcheck:
      disable: true
    volumes:
      - ./config/pathfinder/config.ini:/var/www/html/pathfinder/app/templateConfig.ini
      - ./config/pathfinder/pathfinder.ini:/var/www/html/pathfinder/app/pathfinder.ini
      - ./config/pathfinder/plugin.ini:/var/www/html/pathfinder/app/plugin.ini
      - ./logs:/var/www/html/pathfinder/history/map
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - pfdb
      - pf-redis
      - pf-socket
    restart: always

volumes:
    db_data:
    redis_data:
networks:
    pf:

then run a command

$> docker compose up -d

docker-compose is not required in the latest docker (26.1.0). I think it is obsolete.

I will explain how to configure apache as proxy and how to bypass letsencrypt challenge bypassing the proxy.