Updated run.py to listen on local IPs; updated VLANs to use Chosen.js