Skip to content

robrich/minecraft-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft Scheduler

A web app / web job for starting and stopping VMs via the Azure SDK

Install

  1. Publish this site to Azure Web Apps

  2. Set AppSettings in the Azure portal (NOT the code) for each subscription from https://manage.windowsazure.com/publishsettings/index?client=powershell, read by SubscriptionRepository:

    • SubscriptionId1
    • ManagementCert1
    • ManagementCertPassword1
    • SubscriptionId2
    • ManagementCert2
    • ManagementCertPassword2
    • etc
  3. Set AppSettings for site authentication in the Azure portal (NOT the code), read by HomeController:

    • LoginUsername
    • LoginPassword
  4. Adjust the schedules and content for stopper project. Currently stopper is set to run at midnight.

NOTE: If you're publishing this site to Azure, you can't use the certificate from the publishsettings file. See https://social.msdn.microsoft.com/Forums/vstudio/en-US/99ce89b8-17c8-464a-8135-9e18feb7d072/cant-use-publish-credentials-on-azure-websites?forum=windowsazurewebsitespreview and http://stackoverflow.com/questions/22030955/cant-create-new-schedules-from-azure-websites. Instead you'll need to:

  1. Create a self-signed certificate in OpenSSL or in IIS or from various sites. You can use a certificate you purchased for a website.

    // http://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl
    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
  2. Convert it to a cer file for the Azure portal.

    // https://www.sslshopper.com/article-most-common-openssl-commands.html
    openssl x509 -outform der -in cert.pem -out cert.cer
  3. Convert it to a pfx file for this app. You must answer the password prompt, but this password can be blank.

    // https://www.sslshopper.com/article-most-common-openssl-commands.html
    openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem
  4. Upload the cer file to each subscription in the Azure Portal.

    https://manage.windowsazure.com/ -> Settings -> Management Certificates -> Upload

  5. Base-64 encode the pfx file using C# or sites.

    // Paste this in LinqPad:
    // http://stackoverflow.com/questions/25919387/c-sharp-converting-file-into-base64string-and-back-again
    byte[] AsBytes = File.ReadAllBytes("cert.pfx");
    string AsBase64String = Convert.ToBase64String(AsBytes);
    File.WriteAllText("cert.pfx-base64-encoded.txt", AsBase64String);

NOTE: Azure Git Deploy ignores the webjob-publish-settings.json file that contains the schedule. Either publish through Visual Studio or create a settings.job file that contains the schedule. See http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/#.VZWmh_lVhBc. Re-deploying the webjob doesn't change the schedule, but once you have the job set as a scheduled job, you can modify the schedule through the Azure portal.

About

Stop and Start Minecraft Servers on Azure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published