This document describes how to deploy the entire Local Food AI stack (including the database, Streamlit app, and Zabbix monitoring) into a fresh Windows Subsystem for Linux (WSL) environment.
Open PowerShell as Administrator and install WSL (Ubuntu):
wsl --install -d Ubuntu
Once inside the WSL Ubuntu terminal, update the package manager:
sudo apt update && sudo apt upgrade -y
Install MySQL Server, Docker, and Python:
# Install MySQL
sudo apt install mysql-server -y
sudo systemctl start mysql
# Install Docker
sudo apt install docker.io docker-compose -y
sudo usermod -aG docker $USER
# Install Python and SNMP utilities
sudo apt install python3-pip python3-venv snmp snmpd snmptrapd -y
Clone the project repository from the Taiga/Git hub:
git clone https://git.btshub.lu/lanfr/LocalFoodAI_lanfr144.git food_project
cd food_project
Run the setup script to provision the MySQL database and securely create the PoLP users.
sudo python3 setup_db.py
(You will be prompted for the MySQL root password, which is blank by default on fresh WSL installs. Press Enter).
Establish the mysql_config_editor login paths so the application can connect to the database without exposing raw passwords.
mysql_config_editor set --login-path=app_auth --host=127.0.0.1 --user=db_app_auth --password
mysql_config_editor set --login-path=app_reader --host=127.0.0.1 --user=db_app_reader --password
(Enter the passwords defined during setup_db.py when prompted).
Deploy the Streamlit Application and the Zabbix monitoring stack using Docker Compose.
# Deploy Streamlit
sudo docker build -t food-ai-app:latest -f docker/app/Dockerfile .
sudo docker run -d --name food_ai --restart unless-stopped --network host -v ~/.mylogin.cnf:/root/.mylogin.cnf:ro food-ai-app:latest
# Deploy Zabbix
cd docker/zabbix
sudo bash ../../proper_reset.sh
sudo docker-compose up -d
http://localhost:8501http://localhost:8080