A web interface for controlling the TP-Link LB130 smart bulb.
- Node.js 24+
npm installSet the bulb's IP or hostname in config.json:
{
"bulb": "192.168.1.x"
}Start the mock bulb server (simulates a real LB130 over UDP):
npm run mockStart the Vite dev server (proxies /api to the Express server):
npm run devStart the Express API server:
npm startBuild the frontend:
npm run buildStart the server:
npm startThe app is then available at http://localhost:3000.
docker compose upBy default, BULB_IP is set to host.docker.internal (the host machine — useful when running the mock locally). Override it for a real bulb:
BULB_IP=192.168.1.x docker compose upLinux: Docker Desktop's
host.docker.internalrequires addingextra_hosts: ["host.docker.internal:host-gateway"]to the compose service, or uncommentingnetwork_mode: host.
- tplink-lightbulb by konsumer
- lightbulb.svg by Alex Zaworski