2.2 KB


ffdnispdb is a website designed to display all the ISPs implementing the ispschema specification.

How to install

ffdnispdb requires python2.

Third-party dependencies:

  • sqlite
  • libspatialite
  • build-essential
  • python-dev

On a Debian Jessie system, do:

apt install sqlite3 libspatialite-dev build-essential python-dev

On a Debian Stretch system, do:

apt install sqlite3 libsqlite3-mod-spatialite build-essential python-dev

Preferably in a virtualenv, run:

pip install -r requirements.txt
python db create

Develop deployement

To start the development server, run:

python runserver

Production deployment

To deploy this application, we recommend the use of gunicorn/gevent. We strongly discourage you to use a synchronous WSGI server, since the app uses Server-sent events.

First, copy the example settings file:


Then, edit the newly created generate a random SECRET_KEY, add yourself to the ADMINS array. To see the full list of available settings, see the ffdnispdb/ file and Flask's documentation.

Now, you can run gunicorn using the file, which logs warnings to an application.log file and send you errors by email.

gunicorn -k gevent -b --log-level warning app_prod:app

You can also edit to customize logging behavior.

How to translate

First, generate the template:

pybabel extract -F babel.cfg -o messages.pot ffdnispdb

Then initialize the catalog for the language you want:

pybabel init -i messages.pot -d ffdnispdb/translations -l XX

(where XX is the language code)

Once you're done translating, run:

pybabel compile -d ffdnispdb/translations

Now, you can add your language to the LANGUAGES dict in ffdnispdb/

To update the catalog with the latest strings:

pybabel extract -F babel.cfg -o messages.pot ffdnispdb
pybabel update -i messages.pot -d ffdnispdb/translations

Once you've tested your work and you're satisfied with the result, you can send us a patch (or the po file directly).