Important: As we use Celery 4.4, it may not work on windows !
Create your virtualenv and get LazyBlacksmith.
git clone https://github.com/Kyria/LazyBlacksmith.git cd LazyBlacksmith virtualenv env
Once your virtualenv is created, load it and install requirements
source env/bin/activate pip3 install -U -r requirements/global-requirements.txt # If you want to use MySQL, add the following requirements pip3 install -U -r requirements/mysql-requirements.txt # If you want to use PostgreSQL, add the following requirements pip3 install -U -r requirements/postgresql-requirements.txt
You now need to create an application on EVE Online Developpers to get ESI informations (secret key, client ID)
Once this is done, copy config.dist into config.py and edit the file with the right information everywhere.
cp config.dist config.py
** Celery configuration is mandatory if you use it. Cache is highly recommended **
Now you set everything, it’s time to “install” the database. This should create all the table in your database (if you get any errors, check you sqlalchemy informations)
python manage.py db upgrade
Update the SDE data by running the following command. It will download the latest from fuzzwork SDE Conversion and import them.
python manage.py sde_import -d
If you are using it in production environnement, or upgrading your installation, you need to remake all static files (css/js).
# to install all the nodejs required package. npm install # to compile files npm run dist
If you are doing development you can do the same, or you can
npm run watch which will watch for changes while you dev and recompile files when necessary.
To update the ESI data, you have 2 solutions :
If you want to run celery tasks with crontab, you first need to start a celery worker :
# THIS IS ONLY AN EXAMPLE ! PATH/TO/LazyBlacksmith/env/bin/celery multi start worker -A app_celery:celery_app -c5
Then in your crontab, you must schedule all these commands:
# to update character related data (every 5 min is enough) python celery_cli.py tasks -c # to update universe (prices, etc) related data (every hour is enough) python celery_cli.py tasks -u # to purge application useless data (once per day) python celery_cli.py tasks -p
As these commands must be run within the virtualenv, it’d be better to encapsulated these commands within a script like:
#!/bin/bash source PATH/TO/LazyBlacksmith/env/bin/activate cd PATH/TO/LazyBlacksmith/ python celery_cli.py tasks -c
There are multiple solution to run celery with celery beat. The example below are the minimal configurations.
You can celery with the -B option, to run beat and worker in the same time :
PATH/TO/LazyBlacksmith/env/bin/celery worker -A app_celery:celery_app -B -c5
Or you can run two daemons, one for celery beat, the other for the workers :
# celery beat PATH/TO/LazyBlacksmith/env/bin/celery beat -A app_celery:celery_app # celery workers PATH/TO/LazyBlacksmith/env/bin/celery multi start worker -A app_celery:celery_app -c5
If you set
USE_CCP_ICONS = True you need to download the files “EVE_VERSION_Types.zip” from CCP Toolkit
Then move the files into
lazyblacksmith/static/ccp/ (as a result, you should have