Skip to content

Instantly share code, notes, and snippets.

@kamsar
Last active May 25, 2021 11:36
Show Gist options
  • Save kamsar/707496cd15ab119b0e30f567da1307c8 to your computer and use it in GitHub Desktop.
Save kamsar/707496cd15ab119b0e30f567da1307c8 to your computer and use it in GitHub Desktop.
Kam's Dev Box Setup

This uses Chocolatey and Boxstarter to install a loadout for Sitecore/.NET development on a new computer. Click the link below to start a click-to-run that does all the things. It's that easy. Fork the gist and alter the link below to customize for your own usage!

Click here to start install

# Sets up a handily configured development box for Sitecore using Chocolatey and Boxstarter
# Feel free to fork and hack at you see fit.
$ErrorActionPreference = 'Stop'
# Temporary checksum fix while https://github.com/mwrock/boxstarter/issues/198 is worked out
choco upgrade chocolatey --version 0.9.10.3 --allow-downgrade
# Prevent needing -y on all commands
choco feature enable -n=allowGlobalConfirmation
#
# Windows Settings
#
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions
Set-TaskbarOptions -Size Large -Combine Full
Disable-GameBarTips
Disable-BingSearch
Disable-InternetExplorerESC
Set-CornerNavigationOptions -EnableUsePowerShellOnWinX
Update-ExecutionPolicy RemoteSigned
Enable-WindowsOptionalFeature -Online -FeatureName "TelnetClient" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All -NoRestart
#
# IIS
#
DISM /Online /Enable-Feature /All /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASPNET /FeatureName:IIS-ASPNET45 /FeatureName:IIS-BasicAuthentication /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-DefaultDocument /FeatureName:IIS-DirectoryBrowsing /FeatureName:IIS-HealthAndDiagnostics /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-HttpCompressionStatic /FeatureName:IIS-HttpErrors /FeatureName:IIS-HttpLogging /FeatureName:IIS-HttpRedirect /FeatureName:IIS-HttpTracing /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Performance /FeatureName:IIS-RequestFiltering /FeatureName:IIS-StaticContent /FeatureName:IIS-URLAuthorization /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication
choco install urlrewrite
#
# .NET Dev Tools
#
choco install visualstudio2017professional
choco install visualstudio2017-workload-netweb # ASP.NET is a separate module now
# Handle these manually for SQL Server Developer Edition (or uncomment to get SQLEXPRESS instance)
#choco install mssqlservermanagementstudio2014express
#choco install MsSqlServer2014Express
# R# package doesn't seem to install in VS right
#choco install resharper
#choco install dotcover
#choco install dotpeek
#choco install dottrace
#choco install dotmemory
#
# MongoDB (as a windows service)
#
$mongoDbPath = "$env:SystemDrive\MongoDB"
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
$url = "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-3.2.7.zip"
$zipFile = "$mongoDbPath\mongo.zip"
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-3.2.7"
if ((Test-Path -path $mongoDbPath) -eq $false)
{
Write-Host "Setting up directories..."
$temp = md $mongoDbPath
$temp = md "$mongoDbPath\log"
$temp = md "$mongoDbPath\data"
$temp = md "$mongoDbPath\data\db"
Write-Host "Setting up mongod.cfg..."
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "dbpath=$mongoDbPath\data\db`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "logpath=$mongoDbPath\log\mongo.log`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "smallfiles=true`r`n")
Write-Host "Downloading MongoDB..."
$webClient = New-Object System.Net.WebClient
$webClient.DownloadFile($url,$zipFile)
Write-Host "Unblock zip file..."
Get-ChildItem -Path $mongoDbPath -Recurse | Unblock-File
Write-Host "Unzipping Mongo files..."
$shellApp = New-Object -com shell.application
$destination = $shellApp.namespace($mongoDbPath)
$destination.Copyhere($shellApp.namespace($zipFile).items())
Copy-Item "$unzippedFolderContent\*" $mongoDbPath -recurse
Write-Host "Cleaning up..."
Remove-Item $unzippedFolderContent -recurse -force
Remove-Item $zipFile -recurse -force
Write-Host "Installing Mongod as a service..."
& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install
Write-Host "Starting Mongod..."
& net start mongodb
}
else {
Write-Host "MongoDB already installed."
}
#
# Misc Tools
#
choco install 7zip
choco install fiddler4
choco install putty
# Not installing Git because I like to:
# 1) Disable Git GUI context menu
# 2) Not install the VS plugins and other extras for GitEx
# choco install git.install
# choco install gitextensions
choco install sublimetext3
choco install visualstudiocode
choco install googlechrome
choco install slack
choco install dashlane
choco install googledrive
choco install windirstat
choco install beyondcompare
#
# MS Office (if you want it)
#
# choco install Office365Business
# Windows Updates
Install-WindowsUpdate -GetUpdatesFromMS -AcceptEula
@robksawyer
Copy link

@kamsar,

I know it's a bit unrelated, but we're trying to setup a new local dev box and I keep getting the following when running lp setup. Can you advise?

screen shot 2018-02-21 at 10 58 23 am

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