PATHFINDER
Mapping tool for EVE ONLINE
- Projecthttps://www.pathfinder.exodus4d.de
- Communitygoogle +
- Screenshotsimgur.com
- Mediayoutube.com
- LicenceMIT
Beta Information
This project is still in beta phase and is not officially released! Feel free to check the code for security issues. You can not get the project to work, on your own server, until some required SQL dumps have been included to this repository! I will provide all required dumps once the beta phase is over.
Requirements
APACHE Webserver
- PHP 5.3.4 or higher
- PCRE 8.02 or higher (usually shipped with PHP package, but needs to be additionally updated on CentOS or Red Hat systems)
- mod_rewrite and mod_headers enabled
- GD libary (for Image plugin)
- cURL, sockets or stream extension (for Web plugin)
- Gzip compression
Nginx and Lighttpd configurations are also possible. http://fatfreeframework.com/system-requirements
Database
- mysql: MySQL 5.x
- sqlite: SQLite 3 and SQLite 2
- pgsql: PostgreSQL
- sqlsrv: Microsoft SQL Server / SQL Azure
- mssql, dblib, sybase: FreeTDS / Microsoft SQL Server / Sybase
- odbc: ODBC v3
- oci: Oracle
Here is a list of links to DSN connection details for all currently supported engines in the SQL layer: http://fatfreeframework.com/sql
Setup
Backend (PHP)
PATHFINDER is pretty easy to configure! If you are not planning "getting your hands dirty" with programming stuff, you don´t have to change a lot. All configuration files can be found here:
- config.ini Main config (DO NOT CHANGE)
- pathfinder.ini Pathfinder config
- cron.ini Cronjob config
- routes.ini Routes config (DO NOT CHANGE)
The default configuration should be fine in most cases. Edit all values with caution!
Frontend (JS)
There is no need to change any javascript configuration, except Signature names that can be changed/added
- init.js Main config (DO NOT CHANGE)
- signature_type.js Signature mapping config (DO NOT CHANGE)
- system_effect System effect config (DO NOT CHANGE)
If you found any Signature Names or other information missing in these files, please create an Issue for that! I´ll try to fix it with the next release. If you still want to change anything in here, make sure to run the
buildprocess afterwards (see below).
Development Environment
PATHFINDER comes along with a simple, Gulp based, build process. There are two main Gulp tasks that should help you.
defaulttask is designed for "continuous development" scenarioproductiontask is designed for "production deployment" scenario
If you are not planning to change the codebase, you don´t have to do the following steps!
1. Install Node.js(> v.4.0.1) with npm
2. Copy/Fork this Repo
$ git clone https://github.com/exodus4d/pathfinder.git
3. Install all required node_modules for "continuous development" from package.json (e.g.Gulp)
$ npm install
4. Run Gulp task default with your version tag as param. It will do:
- clean
distfolder (./public/js/x.x.x) - init file watcher for *.js changes
- running jsHint on file change
- copying raw *.js files from ./js to
distfolder on file change
$ gulp default --tag v0.0.10
Production Environment
1. Install all required dependencies (check "Development Environment" steps )
2. Run Gulp task production with your version tag as param. It will do:
- clean
distfolder (./public/js/x.x.x) - running jsHint
- running requireJs Optimizer (see build.js)
- minify *.js files
- uglyfy *.js files
- combine *.js dependencies
- generate .js
source maps - copying compressed *.js to
distfolder for production deployment
$ gulp production --tag v0.0.10
The
productiontask may take some seconds (30+ seconds)! As a result, you should have all generated *.js files ready for deployment in thedistfolder. The unique versiontagin this path should ensure thatcache bustingis working correct.
CSS generation
If you are planning to change/edit any CSS styles, you need to install Compass, in order to build the single *.css file out of the raw *.scss source files.
1. Ruby install
3. Start Compass file watcher for *.scss changes in project root (see config.rb)
$ compass watch
This will watch all *.scss files for changes and generate a compressed *.css file (./public/css/pathfinder.css). Don´t worry about
cache busting. Your current versiontagwill be added to the final path (e.g. ./public/css/pathfinder.css?v.0.0.10)
SQL Schema
To get PATHFINDER to work, you will need (at least) two databases. The first one is the SDE from CCP. The second database is PATHFINDERS´s own DB. Make sure, you have the correct DB export for your version!
1. CCP Static Data Export (SDE)
You need to import the Eve SDE into the database specified in the DB_CCP_* settings. You can do this like the following:
wget https://www.fuzzwork.co.uk/dump/mysql-latest.tar.bz2
tar xf mysql-latest.tar.bz2
cd mysql-{}/
mysql -u -p __DATABASE_NAME__ < db_file.sql
If you need an older versions of the SDE, check outFuzzwork´s awesome dumps!
2. PATHFINDER Clean Data Export (CDE)
Make sure, that all column
indexesand foreignkey constraintshave been imported correct! Otherwise you will get DB errors and the cache engine can not track all tables (Models), which may result in bad performance!
Cronjob configuration
PATHFINDER requires some dynamic system data from CCP´s XML APIv2.
This data is automatically imported by a Cron-Job into the DB.
Moreover, there are some predefined Cron-Jobs that handle some db maintenance and clean up tasks.
You have to setup a single Cron-Jobs for this, that handles all other Cron-Jobs and works as a "dispatcher".
- Important: Block access to
[YOUR INSTALLATION]/cron(e.g. by.htaccessor editcron.ini) - Trigger
[YOUR INSTALLATION]/cronby CLI every minute, e.g createcron.phpx:
exec('wget -qO- /dev/null [YOUR INSTALLATION]/cron &> /dev/null', $out, $result);
echo "start:";
echo "Returncode: " .$result ."<br>";
echo "Ausgabe des Scripts: " ."<br>";
echo "<pre>"; print_r($out);
- ... or use CURL for this ;)
Project structure
|-- (0755) app --> backend [*.php]
|-- app --> "Fat Free Framework" extensions
|-- lib --> "Fat Free Framework"
|-- main --> "PATHFINDER" root
|-- config.ini --> config "f3" framework
|-- cron.ini --> config cronjobs
|-- pathfinder.ini --> config pathfinder
|-- routes.ini --> config routes
|-- (0755) build_js --> JS build folder and source maps (minified, uglified)
|-- app --> "PATHFINDER" core files
|-- lib --> 3rd partie extension/library
|-- build.txt --> generated build summary
|-- (0755) js --> JS source files (raw)
|-- app --> "PASTHFINDER" core files (not used for production )
|-- lib --> 3rd partie extension/library (not used for production )
|-- app.js --> require.js config (!required for production!)
|-- (0777) logs --> log files
|-- ...
| -- node_modules --> node.js modules (not used for production) [check "Development Environment"]
|-- ...
|-- (0755) public --> frontend source
|-- css --> CSS dist/build folder (minified)
|-- fonts --> (icon)-Fonts
|-- img --> images
|-- js --> JS dist/build folder
|-- templates --> templates
|-- sass --> SCSS source (not used for production )
|-- ...
|-- (0777) tmp --> cache folder
|-- ...
|-- (0755) .htaccess --> reroute/caching rules
|-- (0755) index.php
--------------------------
CI/CD config files:
--------------------------
|-- build.js --> "RequireJs Optimizer" config (not used for production )
|-- config.rb --> "Compass" config (not used for production )
|-- gulpfile.js --> "Gulp" task config (not used for production )
|-- package.json --> "Node.js" dependency config (not used for production )
|-- README.md --> This file :) (not used for production )
Thanks!
I´m very proud that you are using PATHFINDER!
It took me month of time in development until this project got into the first BETA. If you like it, please help to improve it. (report bugs, find security issues,...)