Many years ago, I was copying an application from one site to another. The task seemed simple enough, but it was taking a long time. First I had to copy the code. Then I had to create the tables/columns/primary keys. Then I had to create any folders being used to store uploaded file (or if they were part of the application, delete any uploaded files from the folders that I copied). Then I had to change the look of the program to match the site to which I was copying it.
I remember thinking that it should be easier. I resolved that I could make a "Ten Minute Install". The goal turned out to be a bit harder than I imagined at the time (though not nearly ambitious enough in the long run).
Years later, however, this would be a major piece of my framework. Except instead of a "ten minute install" I have about a ten second install. To copy a Neptune program from one site to another just requires copying the folder that holds the program and then browsing to it.
By doing that, the files are copied and the tables/columns/primary keys (and optionally some data) are created. It will also set up folders for uploaded files and run any custom installation code. The program will automatically use any settings (including appearance) on the new site.