Skip to content

Instantly share code, notes, and snippets.

@tenbits
Last active March 21, 2016 11:19
Show Gist options
  • Save tenbits/a8ba6df5d9138919966f to your computer and use it in GitHub Desktop.
Save tenbits/a8ba6df5d9138919966f to your computer and use it in GitHub Desktop.
Kudu

Install

Resources in the wild:

How-to steps:

  • Install Chocolatey
  • Install Node.js $ choco install nodejs.install
  • Install git: $ choco install git.install
  • Install VS Build Tools $ choco install microsoft-build-tools
  • Install at least .net 4.5.2 choco install netfx-4.5.2-devpack
  • Get latest Kudu cd any/folder && git clone https://github.com/projectkudu/kudu. Use master as it supports vs2015.
  • Build Kudu
    • 💊 To support pipelinePreDeployCopyAllFilesToOneFolder target, copy from your local machine the webdeploy targets, e.g. c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\
    • 💊 To fix Mercurial Test errors, completely remove RunTests; from RunAll Target in kudu/Build/Build.proj
    • Build: $ build.cmd
  • Deploy Kudu
    • @see kudu wiki: Copy files, create IIS site, change application pool identity.

Now Kudu is running.

Create application(s)

Piece of cake. With a click in ManagementPortal, Kudu creates several things for you:

  • Application Website
  • Kudu Application Managment Website
  • Local git repository

Auth

Per dafault all Kudu Management Websites are open for the world. To handle the authentifikation is a task for Firewall and IIS configurations.

💊 When using BasicAuth for the Application Kudu Managment Portal, at the moment, you have to change the hard-coded credentials in Kudu.Web\App_Start\Startup.cs and rebuild the site.

Deploy application(s)

Continuous deployment

Local git

Push your the repo to the specified repository. The endpoint can be found in AppKuduPortal

Bitbucket

Kudu/wiki/Continuous-deployment Github tutorial

Postdeployment scripts

site/deployments/tools/PostDeploymentActions/*

Features

  • npm support

  • webjobs

    • App_Data/jobs/triggered/JOB_NAME/settings.job : {"schedule":"0 0 1 * * *"}
    • App_Data/jobs/triggered/JOB_NAME/*(exe|sh|bat|js|..)
  • ...


Fin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment