Preheat oven to 350 degrees F (175 degrees C). Place bacon in a Dutch oven set over medium heat, cover, and cook until the bacon has softened and begun to release it's grease. Stir in the onion and cook until softened and translucent. Remove the cover, and continue cooking and stirring until the mixture caramelizes and turns a deep, golden brown. Remove from heat and stir in butter to melt. Stir shredded potatoes into the onion mixture, then stir in the evaporated milk and eggs until well combined. Pour into a 9x13-inch glass baking dish. Bake in preheated oven for 1 hour, or until golden on top. Remove and let stand for 10 minutes before slicing into 3x3-inch squares. Serve hot.