Please note that the Firmware_Vault project will expose ports of your system to the local network, which might cause a security issue. Additionally, SQL statements executed by the user will not be checked for malicious queries.
Please be careful when running this project!
Installation
Prerequisites
Before proceeding, make sure to have the following tools installed on your system:
- git
- Docker (on Windows, WSL2 will need to be installed alongside with Docker Desktop)
- Docker Compose
Setting up Firmware_Vault
The following steps describe setting up the project and getting it ready to run.
Clone the repository to your machine
Make sure to have a VPN connection to the university network and open a terminal at the location, where you want the project to be located.
If you have already set up an ssh key in your GitLab account, type the following command:
git clone ssh://git@gitlab.informatik.hs-augsburg.de:2222/firmware-analysis/firmware_vault.git
If you have no ssh key in your GitLab account, use this command instead:
git clone https://gitlab.informatik.hs-augsburg.de/firmware-analysis/firmware_vault.git
Build and run the project
Once you have cloned it, navigate to the projects directory and execute the init script (on Linux: init_script.sh, on Windows: init_script_windows.ps1).
After the init script was executed, navigate to docker_compose_dir.
The init script will prompt the user to specify some configuration options and then create the /config.json and /docker_compose_dir/.env files. Both files are ignored by Git and should not be committed. These files are used by the Docker containers.
The script will also set the VOLUMES_BASE variable, which is used by the docker-compose.yaml file as the base path for creating Docker volumes. By default, /docker_compose_dir/volumes/ is used as the base path.
To build and run the project, execute the following command:
docker compose up -d --build
Building all Docker containers will take some time.
After all containers are built, the scraper will start to catalogue and download firmware images from all specified vendors. This can take up a lot of disk space. On how to configure, which vendors are scraped, please see the chapter Firmware Scraper.
Alternatively, the project can be run with specified containers only:
docker compose up --build -d <container1> <container2>
To see, which containers are available, please see the chapter Docker.
After the containers are successfully built, the Webfrontend page can be accessed under http://localhost:80.