I am currently hosting CruiseControl for an open-source project and I don’t want my personal projects to show up on their web dashboard. I also want a complete separation. That means theirs is running on its own port number and they have their own Virtual Directory (ccnet) on the Default website.
The given CruiseControl.msi file does an excellent job of setting up the first CruiseControl service and virtual directory for you. I won’t go into this much, but you will learn a little bit about what it does because I’m installing my instance manually.
1. First (easiest way), copy the folder structure created by the msi install and copy it to another folder.
1. Next edit the following files and the specific lines in your new folder structure:
ccnet.exe.config : Change the port to a new port (default was 21234)
ccservice.exe.config : Change the port to a new port (default was 21234)
(both files have the following schema)
4. Create your new CruiseControl.NET Server service
Currently you should have the following in your services manager (Start-> Run: services.msc)
(I’m a keyboard junkie, I use Start->Run for mostly everything)
Now if you run the following command in the command line you will create another service for your new CruiseControl.NET Server:
This is using the service command (details here) to install the new service via command line.
***BEWARE: You have to leave a space after the equals signs or you will get a usage notice (error). Took me a while to figure that one out.
Here is what you should see inside the properties dialog of the new service.
You should be able to right click the service and choose start. If you receive an error, be sure to check the ccservice.exe.config file and that the port is different than your other service that is most likely already started. This is a common error for not starting.
Outside of the default settings created by creating a new Virtual Directory, be aware of the following:
Local path: C:Program FilesCruiseControl.NET2webdashboard
Execure Permissions: Scripts only
I also use a unique Application Pool for all my Virtual Directories and Sites. I created a CCNet App Pool for this and my other ccnet Virtual Directory.
This should be all you need.
When you type:
Connection for dashboard:
Connection for .NET remoting:
I haven’t used the last one but for those out there that need to, you can connect to non-CruiseControl.NET build servers (CruiseControl for Java).
I know this is brute force and I’m open to all suggestions for a more elegant solution.
I’m blogging this for memory and for anyone else who might need it.