I got pretty much everything off Amazon. I forget the theoretical numbers on run time and I've only run it about an hour on low beam with a little high beam here and there, which wasn't long enough for it to dim (IIRC, the low beam was supposed to be good for over 4 hours and the high beam for about 1, but that might be conservative as I looked at a couple different batteries and might have gotten mixed up a little).
Disclaimer: This is not for weight weenies!
So, I got the "motorcycle 5" LED headlight", "portable DC 12V rechargeable li-ion battery for CCTV camera" (4500mAh as it turns out, not 4800), a toggle switch (you want a DC rated switch. I used a 25A 3-position on/off/on, but a 2-position on/on would be fine as the battery pack also has an off switch), a DC pigtail to connect the switch to the DC port on the battery pack (2.1 x 5.5mm), some crimp on wire connectors, some braided 1/4" harness to cover the wires (unnecessary), and the bag is a "ArcEnCiel pannier frame bag" (which also conveniently holds a small cable lock, my phone, wallet, and a couple of tools) with the goofy logo removed. The battery pack has automatic protection, but if you do this, use a meter to check the pigtail polarity anyway as mine was backwards from the norm. The bracket is a heavy steel fence hinge I got at the hardware store and I added a small 90* bracket to attach it to the fork crown. The bracket extends to the back of the fork so that the weight is better supported. I ended up bolting and epoxying the 90* part in place as the bolts had to be small and close together to fit within the hollow of the fork's head tube and they lacked the nads to keep the headlight from moving a little after riding a bit. The bracket works fine now, but if I were to do it again, I'd use a "U" shaped bracket (or two 90s) instead of the single 90 to sandwich the fork crown with a through-bolt to hold it.