What you normally do is set up Orchard as the website, and add your own website / functionality as one or more Orchard modules. Setting your website as the parent application, and then referencing Orchard in some way, or putting Orchard as a virtual dir
Even though it might seem weird to have Orchard be the "parent" app, it's not that bad. You can generally get by with doing this without making any modifications to the Orchard code. Your modifications would only be made to your modules. You can choose
a theme or make your own to customize the look and feel of the site. Have you looked through the documentation? It sounds like you might need to take a more thorough look and then ask more questions if you still have them.
Generally this is how I set up my environment:
- Clone orchard repo
- Push the repo into a private mercurial repo (bitbucket, etc)
- Create a module for my site inside the orchard.web/modules folder.
- Create a theme (or drop in an existing one) into the orchard.web/themes folder
- Commit the module and theme, and push to my private repo.
- Set up a Migrations.cs class for my module, and any custom content types, etc go into that. This way you aren't doing anything to the orchard core or framework code itself.
To deploy changes to other environments, I just build the app from the command line (I seem to be in the minority when it comes to this, it seems like most others are using "Publish" or webdeploy, which is probably what I should do but I am already
familiar with the command line method and haven't bothered learning the other way).
Then I copy the compiled package to the target environment and replace the existing code with the new package. I have that process scripted out so that all existing files/folders are backed up, then delete all except media folder and app-data folder, and then
deploy the new version on top of the bare folder. The only thing left from the previously deployed version are the app_data and media folders. You want to keep those around because they have state information and contain upload media.
As for your other questions, I'm not sure what you mean by "automate configuration". Can you give examples of what you mean by configuration? Generally any settings you want to configure you can set up in your initial setup recipe. If i want to change
settings I will change them occassionaly from the migrations.cs of my site's main module. I try to avoid changing anything in the Orchard core code if at all possible.