<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>WebsitePanel - Readme</title>
<style type="text/css">
.style1 {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>
WebsitePanel - Readme</h1>
<p>
WebsitePanel is a hosting control panel for Windows servers.</p>
<h2>
License</h2>
<p>
WebsitePanel is released under BSD license. Please see LICENSE.txt file in the
root folder of this project.</p>
<h2>
Project Structure</h2>
<p>
The project has the following folders structure:</p>
<ul>
<li><strong>\Trunk</strong> - project version currently in development<ul>
<li><strong>\Sources</strong> - project source codes.</li>
<li><strong>\Lib</strong> - all referenced 3rd-party assemblies required to build
the solution are placed in this folder.</li>
<li><strong>\Database</strong> - the folder contains SQL scripts for creating
initial database structure and its update to the current version.<ul>
<li><strong>install_db.sql</strong> - SQL script to create full database structure
for the <em>previous</em> release.</li>
<li><strong>update_db.sql</strong> - SQL script to update database structure for the
revious release to the current one.</li>
</ul>
</li>
<li><strong>\Docs</strong> - project documentation<ul>
<li><strong>\Developer</strong> - technical documentation (specs, diagrams, POCs,
etc.) for developers working on the project</li>
<li><strong>\User</strong> - user-related documentation (user guides, how-tows,
etc.) for end-users using the product</li>
</ul>
</li>
<li><strong>\Build</strong> - folder containing solution assemblies that
are referenced from other projects</li>
</ul>
</li>
<li><strong>\Releases</strong> - contains all project releases</li>
<li><strong>\Branches</strong> - contains project branches for proof-of-concepts,
new development, bug fixing, etc.</li>
<li><strong>LICENSE.txt</strong> - project license</li>
<li><strong>Readme.htm</strong> - the file you are reading right now</li>
<li><strong>ReleaseNotes.htm</strong> - project release notes</li>
</ul>
<h2>
Build How-To</h2>
<h3>
Downloading 3rd-Party Libraries</h3>
<p class="style1">
SimpleDNS API</p>
<p>
SDNSAPI.dll is required to build "WebsitePanel.Providers.DNS.SimpleDNS50"
project.</p>
<p>
Download "Simple DNS Plus API for .NET and COM" library from "Downloads" section
on <a href="http://www.simpledns.com">www.simpledns.com</a> web site web site (at the
time of writing direct link to this library is
<a href="http://www.simpledns.com/outbox/sdnsapi-setup.exe">
http://www.simpledns.com/outbox/sdnsapi-setup.exe</a>). Install the library and
then copy SDNSAPI.dll (located in "C:\Program Files (x86)\Simple DNS Plus API
for .NET and COM" by default) from its installation folder to "Lib" folder of
WebsitePanel project.</p>
<p class="style1">
MySQL .NET Connector</p>
<p>
MySQL .NET Connector is required to build
"WebsitePanel.Providers.Database.MySql" project.</p>
<p>
Go to <a href="http://www.mysql.com">www.mysql.com</a> web site and download the
latest release of "MySQL .NET Connector" library from there (at the time of
writing it is located at <a href="http://dev.mysql.com/downloads/connector/net/">
http://dev.mysql.com/downloads/connector/net/</a>). Install MySQL connector and
then copy "MySQL.Data.dll" assembly from its installation folder to "Lib" folder
of WebsitePanel project.</p>
<p class="style1">
OrderBox (Directi API)</p>
<p>
Certain libraries are required to compile "WebsitePanel.Plugins.Directi" project
of Enterprise Server solution.</p>
<p>
Open <a href="http://40083.myorderbox.com/kb/servlet/KBServlet/faq589.html">
http://40083.myorderbox.com/kb/servlet/KBServlet/faq589.html</a> page and
download the following files:</p>
<ul>
<li>NET_CoreExamples_vX.zip</li>
<li>NET_DomainsExamples_vX.zip</li>
</ul>
<p>
Unpack both archives to some temporary location and then copy the following
files to "Lib" folder of WebsitePanel project:</p>
<ul>
<li>OrderBoxCoreLib.dll</li>
<li>OrderBoxDomainsLib.dll</li>
</ul>
<h3>Set the Reference Paths to 3rd-Party Libraries</h3>
<p>After placing the required 3rd-Party Libraries into "Lib" folder
of WebsitePanel project, open WebsitePanel.Server solution (WebsitePanel.Server.sln)
and set ReferencePath of "WebsitePanel.Providers.Database.MySQL" and "WebsitePanel.Providers.DNS.SimpleDNS50" projects
to the absolute path of the "Lib" folder. See "Reference Path Is Incorrect" paragraph of
<a href="http://msdn.microsoft.com/en-us/library/ayds71se%28v=VS.100%29.aspx" target="_blank">Troubleshooting Broken References</a>
article for help.<br />
Do the same for "WebsitePanel.Plugins.Directi" project of WebsitePanel.EnterpriseServer solution (WebsitePanel.EnterpriseServer.sln).</p>
<h3>
Building Solutions</h3>
<p>
Build WebsitePanel solutions in the following order:</p>
<ul>
<li>WebsitePanel.Server.sln</li>
<li>WebsitePanel.EnterpriseServer.sln</li>
<li>WebsitePanel.WebPortal.sln</li>
</ul>
<h3>
Creating Database</h3>
<p>
In order to run WebsitePanel Enterprise Server it's required to create SQL
Server database to hold its internal data.</p>
<ol>
<li>Using SQL Server Management Studio or any other database tool create a database
called "WebsitePanel".</li>
<li>Execute "install_db.sql" script containing DDL and initial data from "\Database"
folder of WebsitePanel project against created database.</li>
<li>Create "WebsitePanel" SQL user account and grant it "db_owner" rights on
"WebsitePanel" database.</li>
<li>Open "web.config" file in the root of Enterprise Server application and update
CryptoKey (appSettings/add/WebsitePanel.CryptoKey element) value there. It might
be arbitrary non-empty string.</li>
<li>Run WebsitePanel.PasswordEncoder tool available in "Tools" folder and generate
hash for "serveradmin" account password using CryptoKey and "Encrypt" button.</li>
<li>Update "Password" column in "Users" database table with generated hash for the
record with UserID = 1 ("serveradmin" account).</li>
<li>In Enterprise Server's web.config update database connection string with proper
settings in order to connect to WebsitePanel database.</li>
</ol>
<h3>
Configuring Web Applications</h3>
<p>
It's assumed below that root of WebsitePanel project is pointing to "C:\Projects\WebsitePanel"
folder.</p>
<ul>
<li>Create "WebsitePanel Server" web site (with 127.0.0.1:9003 binding) using IIS Management Tool with the root
folder pointing to "C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.Server".</li>
<li>Create new user account called "WebsitePanelServer" and update process identity
with it for "WebsitePanel Server" application pool. This user account must have
required privileges to manage computer resources (by default be a member of
local "Administrators" group) and also must be a member of "IIS_IUSRS" (IIS 7).</li>
<li>Create "WebsitePanel Enterprise Server" web site (with 127.0.0.1:9002
binding) using IIS Management Tool with
the root folder pointing to "C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.EnterpriseServer".</li>
<li>Create "WebsitePanel Web Portal" web site (with <all unassigned>:9001
binding) using IIS Management Tool with the
root folder pointing to "C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.WebPortal".</li>
<li>Open "App_Data\SiteSettings.config" file in "WebsitePanel.WebPortal" folder and
update URL to Enterprise Server (http://127.0.0.1:9002 by default).</li>
<li>Open web.config in the root of WebsitePanel.Server application and update
"server access password" ("websitepanel.server/security/password" element). You
should be able to generate password SHA1 hash using WebsitePanel.PasswordEncoder
tool.</li>
</ul>
</body>
</html>