A FIDO-compliant web app that has biometric authentication capabilities. Built using Flask, Bootstrap, and the Web Authentication API.
web
: The Flask Web Appfido_app/
: The Flask web app, which handles HTTP request processing and frontend-database interactiontemplates/
: The HTML files for the login, registration, and profile pagesstatic/
: Assets for our webpages, such as images, JS scripts, and CSS stylesheets
wsgi.py
: The driving code for the server (just callpython wsgi.py
)
docker-compose.yml
: Orchestration for the flask app + MariaDB serverCaddyfile
: Reverse HTTPS proxy (see Caddy's webpage)fido_app.service
: Systemd service for starting the web server usingdocker-compose
on system startup (used on production servers).github/workflows
: GitHub Actions workflow definitions
cd web
pip install -r requirements.txt # Downloads all required Python packages
python setup-db.py # Creates a test database
python wsgi.py # Runs the server in development mode
Note: It's recommended to install Python packages on a per-project basis within virtual environments. Flask provides a quick explanation of the motivation and process here.
If you get errors about connecting to the database, make sure your environment variables are properly configured. You can check out our contribution guide for more detailed setup instructions.
docker-compose up
To setup on a production server, you must also add the fido_app.service
to systemd (see the instructions in the file itself) and expose ports 80 and 443 in your server's firewall (e.g., using ufw
) to allow for incoming HTTP(S) connections.
If you want to add to this project, check out our contribution guide!
As the project progresses, we'll add more frequently asked questions to this section.