DotNetNuke 3.0 added a lot of new capabilities.  One of the little documented features was the ability to control how DotNetNuke is installed.  Over the last 4 years the installation capabilities have been expanded.  One of the features which was added was the ability to control the Host Settings during the installation process.

When performing a new install using the install wizard, you have three options: Auto, Typical and Custom.  If you perform an Auto install, it uses the web.config and installation templates to determine the settings to use during the install. You can also perform an auto install by using the ~/install/install.aspx?mode=install page.

DNNWizard

To customize your auto-install, modify the DotNetNuke.install.config template located in the Install directory.  As you see below, this template gives you granular control over the settings used to configure the default install.

<dotnetnuke>
    <description>This is the default DotNetNuke Host Installation Template</description>
    <scripts>
        <script name="Schema">DotNetNuke.Schema</script>
        <script name="Data">DotNetNuke.Data</script>
    </scripts>
    <version>05.00.00</version>
    <superuser>
        <firstname>SuperUser</firstname>
        <lastname>Account</lastname>
        <username>host</username>
        <password>dnnhost</password>
        <email>host</email>
        <locale>en-US</locale>
        <timezone>0</timezone>
    </superuser>
    <settings>
        <AuthenticatedCacheability>4</AuthenticatedCacheability>
        <AutoAccountUnlockDuration>10</AutoAccountUnlockDuration>
        <CheckUpgrade>Y</CheckUpgrade>
        <ControlPanel>Admin/ControlPanel/IconBar.ascx</ControlPanel>
        <Copyright>Y</Copyright>
        <DemoPeriod></DemoPeriod>
        <DemoSignup>N</DemoSignup>
        <DisableUsersOnline>Y</DisableUsersOnline>
        <EnableFileAutoSync>Y</EnableFileAutoSync>
        <EnableModuleOnLineHelp>Y</EnableModuleOnLineHelp>
        <EnableRequestFilters>N</EnableRequestFilters>
        <EncryptionKey Secure="True"></EncryptionKey>
        <EventLogBuffer>N</EventLogBuffer>
        <FileExtensions>swf,jpg,jpeg,jpe,gif,bmp,png,doc,xls,ppt,pdf,txt,xml,xsl,css,zip</FileExtensions>
        <HelpURL>http://www.dotnetnuke.com/default.aspx?tabid=787</HelpURL>
        <HostCurrency>USD</HostCurrency>
        <HostEmail></HostEmail>
        <HostFee></HostFee>
        <HostPortalId>0</HostPortalId>
        <HostSpace></HostSpace>
        <HostTitle>DotNetNuke</HostTitle>
        <HostURL>http://www.dotnetnuke.com</HostURL>
        <HttpCompression>0</HttpCompression>
        <HttpCompressionLevel>0</HttpCompressionLevel>
        <ModuleCaching>D</ModuleCaching>
        <NotifyUpgrade>Y</NotifyUpgrade>
        <PageQuota></PageQuota>
        <PageStatePersister>P</PageStatePersister>
        <PaymentProcessor>PayPal</PaymentProcessor>
        <PerformanceSetting>3</PerformanceSetting>
        <ProcessorPassword Secure="True"></ProcessorPassword>
        <ProcessorUserId Secure="True"></ProcessorUserId>
        <ProxyPassword Secure="True"></ProxyPassword>
        <ProxyPort></ProxyPort>
        <ProxyServer></ProxyServer>
        <ProxyUsername Secure="True"></ProxyUsername>
        <SchedulerMode>2</SchedulerMode>
        <SiteLogBuffer>1</SiteLogBuffer>
        <SiteLogHistory>0</SiteLogHistory>
        <SiteLogStorage>D</SiteLogStorage>
        <SkinUpload>G</SkinUpload>
        <SMTPAuthentication></SMTPAuthentication>
        <SMTPEnableSSL>N</SMTPEnableSSL>
        <SMTPPassword Secure="True"></SMTPPassword>
        <SMTPServer></SMTPServer>
        <SMTPUsername Secure="True"></SMTPUsername>
        <UseCustomErrorMessages>Y</UseCustomErrorMessages>
        <UseFriendlyUrls>Y</UseFriendlyUrls>
        <UserQuota></UserQuota>
        <UsersOnlineTime>20</UsersOnlineTime>
        <WebRequestTimeout></WebRequestTimeout>
        <WhitespaceFilter>N</WhitespaceFilter>
    </settings>
    <desktopmodules/>
    <portals>
        <portal>
            <portalname>My Website</portalname>
            <administrator>
                <firstname>Administrator</firstname>
                <lastname>Account</lastname>
                <username>admin</username>
                <password>dnnadmin</password>
                <email></email>
            </administrator>
            <description>My Website</description>
            <keywords>DotNetNuke, DNN, Content, Management, CMS</keywords>
            <templatefile>DotNetNuke.template</templatefile>
            <portalaliases>
                <portalalias></portalalias>
            </portalaliases>
            <ischild>false</ischild>
        </portal>
    </portals>
</dotnetnuke>

By creating your own custom template and dropping it in your Install directory prior to installation, you can have greater control over the install process and actually speed up your install since you won’t need to step through the wizard.  Many of the settings exposed by the installation template are not available from the Installation Wizard screens.  You can still use the Wizard with a custom template. Just remember that if you run an auto installation you will need to manually edit your database connection string in the web.config, unless you plan to use the included SQL Express database.