The current version is #ident "@(#)$Format:LocalFoodAI:app.py:%an:%ae:%ad:%cn:%ce:%cd:%H:%D:%N$"
This guide provides step-by-step instructions to install and run the Local Food AI system on Windows Subsystem for Linux (WSL2).
To prevent port conflicts with standard local services (such as existing MySQL databases, custom Nginx web ports, Zabbix suites, or Airflow installations), all public host ports in this deployment have been increased by +20 from their original defaults.
| Service Container | Original Port | Shifted Port (+20) | Type / Purpose |
|---|---|---|---|
| Nginx Proxy | 80 |
100 (or 8020) |
Main Web Gateway (Reverse Proxy) |
| Streamlit Application | 8502 |
8522 |
Direct Streamlit web port |
| MySQL Database | 3306 |
3326 |
Database external connection listener |
| SearXNG Search | 8085 |
8105 |
Anonymous meta-search gateway |
| Zabbix Web UI | 8081 / 8444 |
8101 / 8464 |
Monitoring dashboard (HTTP / HTTPS) |
| Zabbix Server Daemon | 10051 |
10071 |
Active telemetry monitoring trap listener |
| Airflow Webserver | 8082 |
8102 |
Airflow data workflow manager |
Ensure you have WSL2 enabled and are using an Ubuntu 24.04 shell instance.
Run the following commands inside your WSL Ubuntu home directory to clone the project:
git clone https://git.btshub.lu/lanfr/LocalFoodAI_lanfr144.git
cd LocalFoodAI_lanfr144
Create the required .env file at the root of the repository to feed standard local credentials to the containers:
cat <<EOF > .env
MYSQL_ROOT_PASSWORD=your_db_password_here
DB_READER_PASS=your_db_password_here
DB_LOADER_PASS=your_db_password_here
DB_APP_AUTH_PASS=your_db_password_here
MYSQL_ZABBIX_PASSWORD=your_db_password_here
EOF
Deploy the entire 10-container system in the background using the custom port-shifted WSL configuration file:
docker compose -f docker-compose-wsl.yml up -d
Download the high-capacity, reasoning-optimized local model qwen2.5:7b directly inside the running Ollama container instance:
docker exec -it $(docker ps -q -f name=ollama) ollama pull qwen2.5:7b
Initialize the database tables and trigger the ingestion pipeline to parse local dataset records:
docker compose -f docker-compose-wsl.yml run --rm ingest python ingest_csv.py
Once the stack is fully running, you can connect to all system components in your web browser:
http://localhost:100 (uses Nginx reverse proxy on Port 100) or bypass the proxy directly at http://localhost:8522.http://localhost:8101 (Default Credentials: Username Admin / Password zabbix).http://localhost:8102 (Default Credentials: Username admin / Password admin).localhost and Port 3326.Prepared by Francois Lange for the Local Food AI Delivery.