Set-up Windows 🪟
Jump to…
↓Apps
↓RDP
↓SSH
↓Caddy
Open…
About
Apps
Autostart
Bluetooth
Clipboard
Display
Disks
Keyboard
Network
Power
Phone Link
Background
Sound
Themes
Taskbar
Users
RDP
Update
Download…
intellij-keymaps.zip
winget install Microsoft.PowerShell
winget install Microsoft.Office
winget install Microsoft.PowerToys
winget install QL-Win.QuickLook
winget install Google.Chrome
winget install Telegram.TelegramDesktop
winget install Spotify.Spotify
winget install AgileBits.1Password
winget install Git.Git
winget install CaddyServer.Caddy
winget install Microsoft.Edit
winget install Microsoft.VisualStudioCode
winget install JetBrains.IntelliJIDEA.Community
winget install Syntevo.SmartGit
winget install WinDirStat.WinDirStat
winget install OBSProject.OBSStudio
winget install Adobe.Acrobat.Reader.64-bit
winget install IDRIX.VeraCrypt
winget install OpenJS.NodeJS.LTS
winget install Jellyfin.Server
winget install Proton.ProtonVPN
winget install MongoDB.Server
winget install MongoDB.Shell
winget install MongoDB.DatabaseTools
TextBlaze
Banana
Remote Desktop ↑
Enable RDP
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Create user
$userName = "username"
$isAdmin = true
# Generate random password
$bytes = New-Object byte[] 32
[System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
$PasswordPlain = [Convert]::ToBase64String($bytes)
$Password = ConvertTo-SecureString $PasswordPlain -AsPlainText -Force
# Create user
New-LocalUser -Name $userName -Password $Password
# Disable password expiration for this user
Set-LocalUser -Name $userName -PasswordNeverExpires $true
# Add to groups
if ($isAdmin) {
Add-LocalGroupMember -Group "Administrators" -Member $userName
}
Add-LocalGroupMember -Group "Remote Desktop Users" -Member $userName
Write-Output ("Created user " + $userName + " with password " + $PasswordPlain)
Disable default 'Administrator' user
Disable-LocalUser -Name "Administrator"
Create key pair
ssh-keygen
Get-Content (Join-Path $env:UserProfile ".ssh\id_ed25519.pub")
âž” Add the public key on GitHub and/or BitBucket
winget install CaddyServer.Caddy
create folders
mkdir C:\DEV\server
mkdir C:\DEV\server\public
edit C:\DEV\server\Caddyfile.txt
Static file server (basic auth)
caddy hash-password --plaintext "cleartext-password"
$2a$14$hDzNcuuBmX5gh8RdtK6yV.pDnARwYd/YlGaaTXJnHefAcbD7wKeIm
Caddyfile.txt
wiibeeri.ch {
root * C:\DEV\server\public
file_server browse
basicauth {
c $2a$14$hDzNcuuBmX5gh8RdtK6yV.pDnARwYd/YlGaaTXJnHefAcbD7wKeIm
}
}
Open the firewall
New-NetFirewallRule -DisplayName "Caddy HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "Caddy HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
run server
caddy run --config "C:\DEV\server\Caddyfile.txt"
More automation?
create my own unattended.xml