TL;DR. This article describes how you can setup a custom Debian base box for Vagrant. Vagrant, or VagrantUp, is a system to create and configure lightweight, reproducible, and portable development environments. The documentation has a guide for setting up base boxes. It is a bit complex, perhaps because it aims too widely. This topic is labeled "only for advanced users" in the documentation, but I think the true power of Vagrant lies in working with your own custom boxes. For that reason I've created this guide.
More and more I find myself setting up a Debian box for work or for some big or small project. It can be a web-server a db-server or something else, but it is always the same. I keep telling myself to make a bare bone installation and clone on which I can build my future boxes. I never really came to that. Thanks to Vagrant, I don't have to.