Skip to content

fw-tools/fwnl

Repository files navigation

Banner

Python package Telegram bot Web bot

FWNL is a firewall configuration bot that generates FWUnify compatible settings throught natural-language processing.

You can try out right now with our web interface or our telegram interface.

Running locally

Requirements

Make sure you have the following requirements before running FWNL on your machine:

Installing dependencies

Use pipenv to install all dependencies (append -d if you wish to also build/test the package):

pipenv install

Next, download the spaCy models:

pipenv run spacy download en_core_web_md

Now you can already run one of the bot's interfaces (see caveats for additional info):

pipenv run fwnl
pipenv run fwnl-web
pipenv run fwnl-telegram

To run tests, use pytest inside your pipenv:

pipenv run pytest

To build the package, use build inside your pipenv:

pipenv run build

Running in the cloud

If you wish to setup FWNL bot in the cloud, follow this steps:

For the Telegram interface, just start fwnl-telegram from nohup:

nohup fwnl-telegram -t [your_telegram_bot_token] > tel.out 2> tel.err < /dev/null &

For the web interface, first you must make sure you have Gunicorn installed. Second, edit the gconfig.py file so that Gunicorn can find your SSL certificates, or if you'd rather, so that it can run without it. After that, run it with the provided WSGI and configurations from nohup:

nohup gunicorn -c gconfig.py src.wsgi:web > web.out 2> web.err < /dev/null &

Caveats

As an additional note, if you wish to modify the web interface's sass styles you must compile it thereafter. To do so you'll need to install Dart Sass, then compile the styles with:

cd src/interfaces/web/static
sass scss:css -I scss/fontello/css