https://github.com/cyr-ius/firewall-ui
https://github.com/cyr-ius/firewall-ui
bootstrap flask ldap nginx python
Last synced: about 15 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/cyr-ius/firewall-ui
- Owner: cyr-ius
- Created: 2022-01-29T18:14:52.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2026-05-25T17:26:36.000Z (29 days ago)
- Last Synced: 2026-06-08T11:34:02.674Z (15 days ago)
- Topics: bootstrap, flask, ldap, nginx, python
- Language: HTML
- Homepage:
- Size: 763 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FirewallUI
## Web Interface for firewallD
FirewallUI is a Web Interface to control [FirewallD](https://firewalld.org/).
Thanks to this application, you can consult, modify, delete any element of your firewall using your preferred browser.
Unlike the native `firewalld-cmd` commands, with **FirewallUI** you can define rights and fine permissions on the different elements of the firewall
**FirewallUI** integrates a two-factor authentication module. It allows you to activate the TOTP (time-based On-time Password)
**FirewallUI** is developed using the [*Flask Framework*](https://flask.palletsprojects.com) and [*Bootstrap 5*](https://getbootstrap.com/) for the graphic elements

----------------
### Development
To check out the source repository, you can use:
`git clone https://github.com/cyr-ius/firewall-ui.git`
This will create a local copy of the repository.
### Language Translations
Firewalld uses GNU `gettext` for localization support.
### Docker
You will find in the docker directory, a `docker-compose` file which allows you to run **FirewallUI** with an Nginx reverse proxy.
### Environnement variables
#### Random key - allows to encrypt the essential elements [MANDATORY]
`SECRET_KEY=`
#### Debug mode (True/False) default:False
`DEBUG=`
#### Set smtp server default:None
`MAIL_SERVER=`
#### Set port smtp server default:25
`MAIL_PORT=`
#### Set user to send to smtp server default:None
`MAIL_USERNAME=`
#### Set password for user smtp default:None
`MAIL_PASSWORD=`
#### Use TLS (True/False) default:False
`MAIL_USE_TLS=`
#### Use SSL (True/False) default:False
`MAIL_USE_SSL=`
#### The identifier /etc/machine-id. This will display the journalctl
`MACHINE_ID=`
#### Administrator of FirewallUI
`APP_USERNAME=`
#### Password
`APP_PASSWORD=`
#### Email
`APP_MAIL=`
#### Run Server
* You can launch an instance of firewall-ui in a development environment:
`SECRET_KEY=0000 /usr/bin/python3 -m flask --debug run`
* In a Production environment, prefer used unicorn (or other WSGI) :
`gunicorn --bind :8000 --workers 3 'app:create_app()'`
Be careful in this case, you must expose the static content (css, png, etc ..) with a web server type Apache server, Nginx, etc ...
### Flask packages requirements
Flask 2.2.2
Flask-Assets 2.0
Flask-Login 0.6.2
Flask-Mail 0.9.1
Flask-SQLAlchemy 2.5.1
Flask-Migrate 3.1.0
Flask-Session 0.4.0
Flask-SeaSurf 1.1.1
Flask-WTF 1.0.1
Flask-Admin 1.6.0
Flask-Security-Too 5.0.1
Flask-Babel 2.0.0
all packages in requirements.txt
### ToDo
* Add a connector to use an LDAP authentication backend
* Add second factor authentication through a Yubikey key.