<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:344288013;
        mso-list-type:hybrid;
        mso-list-template-ids:-921014224 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1684355706;
        mso-list-type:hybrid;
        mso-list-template-ids:1629675668 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We are using Kallithea as our SCM in our company (very nice, btw) installed on a Windows Server 2008 R2. The installation process was pretty straightforward but I did some things that I could not find in the online documentation so I figured I’d post my “findings” here in case it will help anyone else (and for inclusion in the docs, as appropriate).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>After following the normal install steps, I wanted to use IIS as a reverse-proxy to the Kallithea server. To get this done properly, I did the following:<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>Install IIS Rewrite Module and Application Request Routing.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo2'><![if !supportLists]><span style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>                                                               </span>i.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span><a href="http://www.iis.net/downloads/microsoft/url-rewrite">http://www.iis.net/downloads/microsoft/url-rewrite</a><o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo2'><![if !supportLists]><span style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>                                                             </span>ii.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span><a href="http://www.iis.net/downloads/microsoft/application-request-routing">http://www.iis.net/downloads/microsoft/application-request-routing</a><o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>b.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span>Enable proxying at the global, server level (this can be done in the IIS GUI via “Application Request Routing” icon -> Server Proxy Settings link on the right-hand side).<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>c.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>In that same settings window (very important!!) uncheck “Include TCP port from client IP” under the “X-Forwarded-For” setting.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>d.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span>Under query string support, select “Include query string”.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>e.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span>Leave all other settings there as-is.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>f.<span style='font:7.0pt "Times New Roman"'>        </span></span><![endif]><span dir=LTR></span>Create a new site and make make a new IIS Rewrite rule via the IIS Rewrite icon on the site.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>g.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>Select “Reverse Proxy” and fill out the proxy URL as “127.0.0.1:5000” and check “Enbable SSL Offloading”.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>h.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span>After the rule is created, open it and check that the URL is correct (with the proper port) and check “Append Query String”.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>i.<span style='font:7.0pt "Times New Roman"'>         </span></span><![endif]><span dir=LTR></span>Finally, run the following command to fix the clone url: appcmd.exe set config -section:system.webServer/proxy /preserveHostHeader:"True" /commit:apphost<o:p></o:p></p><p class=MsoListParagraph style='margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo2'><![if !supportLists]><span style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>                                                               </span>i.<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><span dir=LTR></span>This is a server-wide setting, there is no way to set this on the site level.<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>Then, I wanted an ultra-simple way to run the Kallithea server on startup, so I created a task that runs on startup and uses a batch file to run the paster command. I won’t paste the event file here, as it is a very simple thing to do, but I can provide if anyone is interested.<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>I also made an event to run the paster make-index command to update the Whoosh full-text search indexes every 2 hours.<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>       </span></span><![endif]><span dir=LTR></span>Finally, I ran into an issue where my server was returning a 500 for certain code files (eg, .csproj and .cs files) and had to modify the Request Filtering on the Kallithea site (via the icon of the same name) -> File Name Extensions to allow these files to be served.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Not much in the way of innovation, but figured I’d share <span style='font-family:Wingdings'>J</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thank you,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#1F497D'>Nochum Sossonko,</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>IT Director</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>Georgian American Alloys, Inc</span><o:p></o:p></p></div></body></html>