zKillboard is a killboard created for EVE-Online, for use on EVE-KILL.net, but can also be used for single entities.
This is BETA, which means it is a work in progress. It lacks documentation and is currently not meant for use in production.
Since zKillboard is a beta product, it has a code base that is far from complete and enjoys numerous updates, deletions, and modifications to the code and accompanying tables. Please feel free to attempt to install zKillboard on your own server, however, we are not responsible for any difficulties you come across during installation and continuing execution of the product.
zKillboard is released under the GNU Affero General Public License, version 3. The full license is available in the AGPL.md
file.
zKillboard also uses data and images from EVE-Online, which is covered by a seperate license from CCP. You can see the full license in the CCP.md
file.
It also uses various 3rd party libraries, which all carry their own licensing. Please refer to them for more info.
#esc
on irc.coldfront.net
Mibbit link incase you're lazy: http://chat.mibbit.com/?channel=%23esc&server=irc.coldfront.net
see LICENSE.md
file
upstream php-upstream {
server unix:/tmp/php-fpm.sock;
server 127.0.0.1:9000;
}
server {
server_name example.com www.example.com;
listen 80;
root /path/to/zkb_install;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri = 404;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass php-upstream;
}
}
Apache rewrite is handled by the .htaccess.
<VirtualHost *:80>
ServerAlias yourdomain.tld
DocumentRoot /path/to/zkb_install/
<Directory /path/to/zkb_install/>
Require all granted
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Other webservers are supported, aslong as they can run PHP, they should work. But other webservers have other ways to write rewrites, so from our side of things, they are unsupported. Feel free to issue pull requests to amend this.
zKillboard has a cache system that utilizes the first available cache, in the following order: Memcached -> Memcache -> Redis -> APC -> FileCache. If none of the first 4 are available, it will fallback to fileCache, which on a slow system, could overwhelm the harddrive.
Installation is handled via command line. Other methods are currently not supported.
cd
to a dir where you want zKillboard to reside.git clone git@github.com:EVE-KILL/zKillboard.git
.cd
into zKillboard
dir.curl -s https://getcomposer.org/installer | php
php composer.phar install
cd
into install
dir.php5 install.php
cli.php
to /usr/bin/zkillboard
ln -s /path/to/zkb/cli.php /usr/bin/zkillboard
bash-completion
. Under Debian this can be done like so apt-get install bash-completion
bash_complete_zkillboard
to /etc/bash_completion.d/zkillboard
zkillboard list
and enjoy the zkillboard cli interface, with full tab completionzKillboard comes with a script that automates the cron execution. It keeps track of when each job has been run and how frequently it needs to be executed. Just run it every minute via cron or a similar system:
* * * * * /var/killboard/zkillboard.com/cron.php >/whatever/log/you/like.txt 2>&1
If you're not happy with the default timeouts, or want to disable/enable some jobs entirely, you can use the cron.overrides file. The cron.overrides file has to be placed into the zKB root dir, next to the cron.php script. It's a simple json file, with the following format:
{
"commandName":{
"timeoutInSeconds":"arguments"
}
}
For example the following would disable stompReceive entirely, and increase the timeout for apiFetch and parseKills to 5 minutes:
{
"stompReceive":{},
"apiFetch":{
"300":""
},
"parseKills":{
"300":""
}
}
All cronjobs can be launched manually with the cli interface.
You can also define the executable to use, be it php, hhvm or something third.
{
"stompReceive":{},
"apiFetch":{
"300":"",
"executable":"hhvm"
},
"parseKills":{
"300":""
}
}
Websocket is used to stream kills from zKillboard.com and EVE-KILL.net to your killboard. Currently it streams all kills, without any limit.
Websocket server: ws://ws.eve-kill.net/kills/ and wss://ws.eve-kill.net/kills/
zKillboard runs perfectly under HHVM (HipHop Virtual Machine).
To get HHVM look at https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-for-HHVM
hhvm.server.type = fastcgi
hhvm.server.file_socket = /run/shm/hhvm.sock
hhvm.server.apc.enable_apc = true
hhvm.server.apc.table_type = concurrent
hhvm.server.apc.expire_on_sets = true
hhvm.server.apc.purge_frequency = 4096
hhvm.eval.jit = true
hhvm.eval.jit_warmup_requests = 50
hhvm.repo.central.path = /var/log/hhvm/.hhvm.hhbc
hhvm.mysql.readOnly = false
hhvm.mysql.connect_timeout = 1000
hhvm.mysql.read_timeout = 2000
hhvm.mysql.slow_query_threshold = 4000
hhvm.mysql.kill_on_timeout = true
hhvm.mysql.wait_timeout = -1
hhvm.mysql.typed_results = true
zKillboard has support for logging in with CREST.
To get it setup, you must first get a CREST clientID/Secret from CCP. Currently only sisi login is available. You can get it from https://developers.testeveonline.com/applications
The rest is self explanitory
To update the CCP tables, run the cli script called updateCCPData
like so (assuming you symlinked cli.php) zkillboard updateCCPData
It will then automatically download the latest tables from Fuzzysteve, and import them.
Every clean zKillboard installation comes with an admin account, default username and password is admin
, it is highly recommended that you immediately change this password after you finish your installation.
Current special features to the admin account:
1) Any entities (pilots, corporations, etc.) added to the Admin's tracker will automatically be fetched from https://zkillboard.com up to and including a full fetch of all kills, and maintaining a fetch of said kills on an hourly basis. This of course depends on the cronjob being setup.