Skip to main content

Semi-automated

Automate some sections and hand-configure others — for example, script the prerequisites and the build, then deploy against an existing IIS setup by hand. Each script below automates one section; any script can be skipped in favor of the matching Manual steps.

First clone the scripts (see Automated), then run the ones you want from an elevated PowerShell in windows-install/, in the order below.

note

On Windows Server 2019/2022, install the Windows Package Manager (winget) before running setup-vm-prereqs.ps1 (it ships only on Windows 10/11). See Automated → Windows Server prerequisite: install winget.

OrderScriptWhat it automatesManual section
0 (fresh virtual machine)setup-vm-prereqs.ps1Operating-system-level installs: IIS feature set, SQL Server Developer, Git. Scans first, installs only what is missing; also sets the execution policy and unblocks the scripts.Windows Prerequisites
101-prereqs-iis.ps1URL Rewrite Module + the httpPlatform handler (HttpBridge by default, or Microsoft HttpPlatformHandler); unlocks the handlers configuration section.IIS modules
202-prereqs-sql.ps1SQL Server Mixed Mode + TCP/IP; creates the sbaa database and a dedicated least-privilege login (edfi_adminapp) the app connects as. Server setup uses Windows Authentication, not sa.Database
303-prereqs-node.ps1Installs Node.js (the major version pinned in engines.node); remediates a too-old Node via nvm-windows.Node.js
404-build.ps1npm ci + build API + build Web Application. Seeds the Web Application .env before building.Backend API / Web Application
505-deploy-api.ps1Deploys the API as standalone site EdFi-AdminApp-API (HTTPS :3443; HTTP :3333 redirects): web.config, App Pool, production.js, App-Pool-scoped npm cache.Backend API
606-deploy-fe.ps1Deploys the Web Application as standalone site EdFi-AdminApp-FE (HTTPS :4443; HTTP :4200 redirects).Web Application
verify00-check-prereqs.ps1Read-only diagnostic: IIS (and version), database, Node, build artifacts, and whether ports 3333/4200/3443/4443 are free.Verify prerequisites
optionalidp-keycloak-setup.ps1Installs a JDK, downloads and starts a local Keycloak, provisions realm edfi, client edfiadminapp, and a test user. Also registers the Ed-Fi Admin App Keycloak startup task (see Automated → After a restart).Identity provider
optionalidp-keycloak-start.ps1Starts the local Keycloak again without restarting the host. After a host restart the startup task does this automatically.Identity provider
optionalyopass-docker.ps1Stands up a local Yopass via Docker.Yopass
optionalinstall-all.ps1Runs the whole sequence end to end (see Automated).(whole install)

To remove an install, use uninstall.ps1 (generic) and, for the local Keycloak, uninstall-keycloak.ps1 (removes Keycloak and its startup task, and unsets JAVA_HOME; leaves the JDK installed).