Frontend Installation

OVERVIEW

The Elyse frontend is an Angular application compiled to static files (HTML, JavaScript, CSS). It can be served by any web server. This page covers two deployment options:

The same frontend package works with both SERVER and WORKGROUP backend deployments. Configure the backend URL in assets/config.json after deployment.

Note: A copy of these instructions is also included as FRONTEND_README.txt in the frontend deployment package for offline reference.

MULTI-USER WORKGROUP SCENARIO

When deploying to a single machine with multiple Windows user accounts (WORKGROUP):

ComponentInstallationDetails
Frontend Install once (shared) Installed in a shared location (e.g. C:\inetpub\wwwroot\Elyse\frontend). All users access the same static files. No user-specific data.
Backend Install per user (isolated) Each user has their own backend instance in %LOCALAPPDATA%\ElyseApp\Backend\. Each runs as a Windows Service under that user’s account. See Backend Installation (Workgroup).

How it works: All users share the same frontend. The frontend calls http://localhost:5000/api. When a user logs in, their backend service starts and connects to SQL Server with their Windows credentials. When they log out, their service stops and the next user’s service starts.

PREREQUISITES

For Option A (IIS), additionally:

For Option B (Node.js), additionally:

PACKAGE CONTENTS

The frontend deployment package (Elyse-Frontend-*-Deploy-*.zip) contains:

File / FolderDescription
index.htmlMain application entry point
assets/config.jsonRuntime configuration — edit this
assets/config.template.jsonConfiguration template
assets/*.csvApplication configuration files
*.js, *.cssOptimised application bundles
web.configIIS URL rewriting and API proxy configuration
FRONTEND_README.txtQuick offline reference
RELEASE_NOTES.txtRelease notes for this version
VERSION-FRONTEND.txtVersion identifier

OPTION A: DEPLOYMENT WITH IIS

Step 1: Install IIS

On Windows Server:

  1. Open Server Manager.
  2. In Server Manager, click Manage (top-right menu) → Add Roles and Features.
  3. The “Add Roles and Features Wizard” opens. Click Next on each page until you reach the Server Roles page.
  4. Check Web Server (IIS). Click “Add Features” when prompted.
  5. Click Next until “Role Services”.
  6. Ensure these are checked:
    • Web Server > Common HTTP Features > Static Content
    • Web Server > Common HTTP Features > Default Document
    • Management Tools > IIS Management Console
  7. Click Next then Install. Wait for completion.

On Windows 10/11 Pro:

  1. Open the Windows Features dialog (search for “Turn Windows features on or off”).
  2. Check Internet Information Services.
  3. Expand IIS > World Wide Web Services > Application Development Features. Check WebSocket Protocol (optional but recommended).
  4. Expand Common HTTP Features. Ensure Default Document and Static Content are checked.
  5. Expand Web Management Tools. Check IIS Management Console.
  6. Click OK. Wait for installation to complete.

Verify: Open a web browser and navigate to http://localhost. You should see the IIS default page (a blue page with the IIS logo).

Step 2: Install URL Rewrite Module

The URL Rewrite module is required for Angular routing to work correctly.

  1. Download URL Rewrite Module from: https://www.iis.net/downloads/microsoft/url-rewrite. If the server has no internet access, download on another machine and transfer the installer file.
  2. Locate the downloaded installer file (e.g., rewrite_amd64_en-US.msi). Double-click it to run it. If prompted by UAC, click Yes.
  3. Accept the license agreement, click Install, then click Finish when complete.
Note: If you skip this step, direct URL navigation in the application will fail.

Step 3: Copy Files to Web Server

  1. Create the deployment directory. In File Explorer, navigate to C:\inetpub\wwwroot\. If an Elyse folder does not already exist:
    1. Right-click in the empty space of the right panel and select New > Folder.
    2. Name the folder Elyse and press Enter.
    Double-click the Elyse folder to open it, then create a frontend folder inside it the same way. The full path should be: C:\inetpub\wwwroot\Elyse\frontend
  2. Locate the frontend deployment package (Elyse-Frontend-*-Deploy-*.zip). Right-click it and select Extract All..., choose a temporary location (e.g., C:\Temp\ElyseFrontend), and click Extract.
  3. Open a second File Explorer window and navigate to the extracted folder. Select all files, copy them.
  4. Switch to the first File Explorer window showing C:\inetpub\wwwroot\Elyse\frontend and paste.
  5. Verify: the directory should contain index.html, an assets folder, and various .js/.css files.

Step 4: Configure Backend API URL

  1. In File Explorer, navigate to C:\inetpub\wwwroot\Elyse\frontend\assets\
  2. Right-click config.json and select Open with > Notepad (or another text editor). If “Open with” is not visible, select Open with > Choose another app, then select Notepad.
  3. Edit the apiUrl to point to your frontend server (the IIS site configured in Step 5 below proxies /api requests to the backend):
    Deployment Typeconfig.json Value
    SERVER (same server or separate servers)
    { "apiUrl": "http://FRONTEND-HOSTNAME:8080/api" }
    Replace FRONTEND-HOSTNAME with the hostname of the machine running the frontend IIS site. The frontend’s web.config contains a rewrite rule that proxies /api requests to the backend on port 5000. If the backend is on a different server, you must also edit web.config (see note below).
    WORKGROUP (backend on same machine)
    { "apiUrl": "http://localhost:8080/api" }
    Or http://localhost:5000/api if not using IIS (Option B).
  4. Save the file by pressing Ctrl+S, then close Notepad.
Key feature: The backend API URL is loaded from config.json at runtime. You can change it anytime without rebuilding the frontend — just edit the file and refresh the browser.

Step 5: Configure IIS Site

Open IIS Manager (search for IIS or run inetmgr).

In IIS Manager:

  1. In the left panel (called “Connections”), click the + arrow next to the server name to expand it.
  2. Right-click Sites and select Add Website...
  3. Configure:
    SettingValue
    Site nameElyse
    Application poolDefaultAppPool
    Physical pathC:\inetpub\wwwroot\Elyse\frontend
    Binding – Typehttp
    Binding – Port8080
  4. Click OK.
  5. Add the .md MIME type (this allows the application to serve Markdown help files):
    1. In the left panel of IIS Manager, click on the Elyse site to select it.
    2. In the centre panel (Features View), locate and double-click the MIME Types icon. (If you see a list of files instead of icons, click Features View at the bottom of the centre panel.)
    3. In the Actions panel (right side), click Add...
    4. File name extension: .md — MIME type: text/markdown
    5. Click OK.
  6. Install ARR 3.0 (Application Request Routing) if not already installed. Download it from the Microsoft website (search for “Application Request Routing 3.0 download”). Run the installer, accept defaults, and click Install.
  7. Enable ARR proxy mode. Open PowerShell as Administrator (right-click Windows PowerShell and select Run as administrator). Type or paste the following commands and press Enter:
    # Ensure the WebAdministration module is loaded
    Import-Module WebAdministration
    
    # Enable the Proxy setting in ARR
    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
        -filter "system.webServer/proxy" -name "enabled" -value "True"
    
    # Optional: Set a timeout for long database queries
    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
        -filter "system.webServer/proxy" -name "timeout" -value "00:02:00"
    
    Write-Host "IIS Proxy Mode has been enabled successfully." -ForegroundColor Green
  8. Back in IIS Manager, click the server name (top-level node) in the left panel. In the centre panel, double-click Application Request Routing Cache. In the Actions panel (right side), click Server Proxy Settings.... Check the Enable proxy checkbox and click Apply in the Actions panel. (If this is not done, you will get a 502.3 Bad Gateway error.)
  9. Verify web.config is present in C:\inetpub\wwwroot\Elyse\frontend\ (this file enables Angular routing and API proxying).
Separate-server deployments: The web.config contains a BackEndProxy rewrite rule that forwards /api requests to http://127.0.0.1:5000 (the backend on the same machine). If the backend is on a different server, open web.config in Notepad and change http://127.0.0.1:5000 to the backend server’s address (e.g., http://ELYSE-BE01:5000).
Kerberos authentication with ARR proxy (separate-server deployments): When the frontend proxies API requests to a backend on a different server, the user’s browser sends a Kerberos ticket for the frontend hostname (e.g., HTTP/ELYSE-FE01), because that is the URL the browser sees. The ARR proxy forwards this ticket to the backend. For the backend to accept it, HTTP SPNs for the frontend hostname must be registered on the backend service account (svc_elyse_be). Additionally, useAppPoolCredentials must be set to true on the backend IIS site. See KCD Configuration — Step 1 for the complete SPN registration commands, and Backend Installation — Step 7 for the useAppPoolCredentials setting.

Step 6: Configure Windows Firewall

If users will access the frontend from other computers (not needed if only accessing from localhost):

  1. Open Windows Defender Firewall with Advanced Security (run wf.msc).
  2. In the left panel, click Inbound Rules.
  3. In the Actions panel (right side), click New Rule...
  4. In the New Inbound Rule Wizard, select Port and click Next.
  5. Select TCP, select Specific local ports, type 8080 (or 80 if you used port 80), and click Next.
  6. Select Allow the connection and click Next.
  7. Ensure all three profiles are checked (Domain, Private, Public) and click Next.
  8. Type a name: Elyse Frontend HTTP and click Finish.

Step 7: KCD Configuration (Domain Deployments Only)

For domain deployments using Kerberos Constrained Delegation, SPNs must be registered and constrained delegation must be configured in Active Directory before the application will function correctly. This involves:

For the complete step-by-step procedure, see KCD Configuration.

Step 8: Test Deployment

  1. Open a web browser on a domain-joined workstation (for SERVER deployments) or on the local machine (for WORKGROUP deployments).
  2. Navigate to http://ELYSE-FE01:8080 (replace ELYSE-FE01 with your frontend hostname). For WORKGROUP deployments, use http://localhost:8080.
  3. The application should load and display the main interface. For SERVER deployments, authentication should be completely transparent — the browser should not prompt for credentials.

If you see errors, check:

Browser requirements for Kerberos pass-through (SERVER deployments): For transparent authentication to work, the user must access the application using a hostname (not localhost or an IP address), and the URL must be in the browser’s Local Intranet zone. On domain-joined Windows machines, Internet Explorer, Edge, and Chrome automatically treat single-label hostnames (e.g., ELYSE-FE01) as Intranet sites. If you use FQDNs (e.g., elyse-fe01.yourdomain.com), you may need to add them to the Intranet zone via Group Policy or manually via Internet Options > Security > Local Intranet > Sites > Advanced. Firefox requires separate configuration: navigate to about:config and set network.negotiate-auth.trusted-uris to your domain (e.g., .yourdomain.com).

Step 9: Desktop Shortcut (Optional)

Method 1 — Windows Shortcut Wizard:

  1. Right-click on an empty area of the Desktop and select New > Shortcut.
  2. In the “Create Shortcut” wizard, type the location: http://localhost:8080 and click Next.
  3. Type a name: Elyse Application and click Finish.
  4. To set a custom icon: right-click the new shortcut on the Desktop, select Properties, click Change Icon..., click Browse..., navigate to C:\inetpub\wwwroot\Elyse\frontend\elyse.ico, select it, and click OK on all dialogs.

Method 2 — Internet Shortcut File:

  1. Open Notepad and type:
    [InternetShortcut]
    URL=http://localhost:8080
    IconFile=C:\inetpub\wwwroot\Elyse\frontend\elyse.ico
    IconIndex=0
  2. Click File > Save As. Navigate to the Desktop. In the “File name” field, type Elyse.url. Change “Save as type” to All Files (*.*). Click Save.

Step 10: Configure HTTPS (Optional but Recommended)

For production deployments:

  1. Obtain an SSL certificate (from a Certificate Authority, or create a self-signed certificate for testing).
  2. Open IIS Manager (search for IIS or run inetmgr). In the left panel, click on the Elyse site. Right-click it and select Edit Bindings...
  3. In the Site Bindings dialog, click Add.... Set Type to https, Port to 443. In the SSL certificate drop-down, select your SSL certificate. Click OK.
  4. Update config.json to use HTTPS:
    { "apiUrl": "https://FRONTEND-HOSTNAME/api" }

    If using the default HTTPS port (443), no port number is needed in the URL.

OPTION B: DEPLOYMENT WITH NODE.JS HTTP-SERVER

This option is simpler than IIS but requires Node.js. The http-server will be configured as a Windows Service to auto-start on boot.

Step 1: Install Node.js

  1. Download Node.js LTS from https://nodejs.org/. Click the LTS (Long Term Support) download button. If the computer has no internet access, download on another machine and transfer the installer file.
  2. Locate the downloaded installer file (e.g., node-v20.x.x-x64.msi). Double-click it to run it. If prompted by UAC, click Yes.
  3. Follow the installation wizard. Accept the defaults on each page. Ensure the Add to PATH option is checked (it is checked by default). Click Install, then Finish.
  4. Verify the installation. Open a Command Prompt and type the following commands, pressing Enter after each:
    node --version
    npm --version

    Both commands should display version numbers. If you see “not recognized”, close and reopen the Command Prompt (the PATH update requires a new window).

Step 2: Install http-server

Open Command Prompt as Administrator (right-click Command Prompt and select Run as administrator). Type the following commands and press Enter after each:

npm install -g http-server
http-server --version

The first command installs http-server globally. The second should display a version number, confirming success.

Step 3: Copy Files

  1. Create the deployment directory. In File Explorer, navigate to C:\. Create a folder named Elyse, then create a frontend folder inside it. The full path should be: C:\Elyse\frontend
  2. Locate the frontend deployment package (Elyse-Frontend-*-Deploy-*.zip). Right-click it and select Extract All..., choose a temporary location (e.g., C:\Temp\ElyseFrontend), and click Extract.
  3. Open a second File Explorer window, navigate to the extracted folder. Select all files, copy them. Switch to the first File Explorer window showing C:\Elyse\frontend and paste.

Step 4: Configure Backend API URL

  1. In File Explorer, navigate to C:\Elyse\frontend\assets\
  2. Right-click config.json and select Open with > Notepad. Edit the apiUrl value:
    Deployment Typeconfig.json Value
    WORKGROUP (same machine){ "apiUrl": "http://localhost:5000/api" }
    SERVER (separate server){ "apiUrl": "http://BACKEND-HOSTNAME:5000/api" }
  3. Save the file by pressing Ctrl+S, then close Notepad.

Step 5: Install NSSM

NSSM (Non-Sucking Service Manager) is a free tool that allows any program to run as a Windows Service. It is needed to make http-server start automatically when the computer boots.

  1. Download NSSM from https://nssm.cc/download. If the computer has no internet access, download on another machine and transfer the file.
  2. Locate the downloaded ZIP file (e.g., nssm-2.24.zip). Right-click it and select Extract All..., choose a temporary location, and click Extract.
  3. Copy the appropriate executable to a permanent location. Open File Explorer and navigate into the extracted folder:
    • 64-bit Windows: Copy nssm-2.24\win64\nssm.exe to C:\Windows\System32\
    • 32-bit Windows: Copy nssm-2.24\win32\nssm.exe to C:\Windows\System32\
  4. Verify: open a Command Prompt and type nssm then press Enter. It should display help text.

Step 6: Create Windows Service

Open Command Prompt as Administrator (right-click Command Prompt and select Run as administrator). Type the following command and press Enter:

nssm install ElyseFrontend

In the NSSM Service Installer window:

TabSettingValue
ApplicationPathC:\Program Files\nodejs\node.exe
ApplicationStartup directoryC:\Elyse\frontend
ApplicationArgumentsC:\Program Files\nodejs\node_modules\http-server\bin\http-server -p 8080 -c-1
DetailsDisplay nameElyse Frontend
DetailsDescriptionElyse Frontend Web Server
DetailsStartup typeAutomatic
I/OOutput (stdout)C:\Elyse\frontend\http-server.log
I/OError (stderr)C:\Elyse\frontend\http-server-error.log

Click Install service. Then start it:

nssm start ElyseFrontend
nssm status ElyseFrontend
# Should display: SERVICE_RUNNING

Step 7: Configure Windows Firewall

If users will access the frontend from other computers (not needed if only accessing from localhost):

  1. Open Windows Defender Firewall with Advanced Security (run wf.msc).
  2. In the left panel, click Inbound Rules. In the Actions panel (right side), click New Rule...
  3. Select Port and click Next. Select TCP, type 8080, click Next.
  4. Select Allow the connection and click Next. Ensure all profiles are checked and click Next.
  5. Type a name: Elyse Frontend HTTP and click Finish.

Step 8: Test Deployment

  1. Open a web browser.
  2. Navigate to http://localhost:8080.
  3. The application should load and display the main interface.

If issues occur, check the logs:

Step 9: Desktop Shortcut (Optional)

Method 1 — Windows Shortcut Wizard:

  1. Right-click on an empty area of the Desktop and select New > Shortcut.
  2. In the “Create Shortcut” wizard, type the location: http://localhost:8080 and click Next.
  3. Type a name: Elyse Application and click Finish.
  4. To set a custom icon: right-click the new shortcut on the Desktop, select Properties, click Change Icon..., click Browse..., navigate to C:\Elyse\frontend\elyse.ico, select it, and click OK on all dialogs.

Method 2 — Internet Shortcut File:

  1. Open Notepad and type:
    [InternetShortcut]
    URL=http://localhost:8080
    IconFile=C:\Elyse\frontend\elyse.ico
    IconIndex=0
  2. Click File > Save As. Navigate to the Desktop. In the “File name” field, type Elyse.url. Change “Save as type” to All Files (*.*). Click Save.

Step 10: Verify Auto-Start on Boot

  1. Restart the computer.
  2. After restart, open a web browser (e.g., Microsoft Edge) and navigate to http://localhost:8080.
  3. The application should load automatically (service started on boot).

Managing the http-server Service

ActionCommand
Stopnssm stop ElyseFrontend
Startnssm start ElyseFrontend
Restartnssm restart ElyseFrontend
Removenssm remove ElyseFrontend confirm

You can also manage the service via the Services GUI (run services.msc). In the Services window, scroll down to find “Elyse Frontend”. Right-click it to see options for Start, Stop, and Restart.

TROUBLESHOOTING

Problem: Application won’t load

Fix: Verify all files were copied correctly. Check IIS site/application is started. Check Windows Event Viewer for IIS errors. Verify physical path in IIS matches deployment directory.

Problem: Blank page or “Cannot GET /” error

Fix: Verify index.html exists in the deployment directory. Check IIS has Static Content feature installed. Verify web.config is present for URL rewriting.

Problem: “Failed to load config.json”

Fix: Verify assets/config.json exists. Check file permissions (IIS user needs read access). Check browser console for the exact error.

Problem: Cannot connect to backend

Fix: Verify backend is running. Test backend URL directly in browser. Check apiUrl in config.json is correct. Verify firewall allows connection to backend port. Check CORS configuration on backend.

Problem: Browser still shows old version after update

Fix: Hard refresh the browser: press Ctrl+Shift+R (or Ctrl+F5). If that doesn’t work, press F12 to open Developer Tools, then right-click the Refresh button and select “Empty Cache and Hard Reload”. Alternatively, clear browser cache: Ctrl+Shift+Delete, select “Cached images and files”, click Clear. Or test in a private/incognito window (Ctrl+Shift+N in Chrome/Edge, Ctrl+Shift+P in Firefox).

UPDATING TO A NEW RELEASE

When a new version of the frontend is released, follow the steps below to update your deployment. Two methods are provided for each option: a manual method using File Explorer, and a PowerShell script method.

Important — why you must delete old files first: Each Angular build produces JavaScript and CSS files with unique hashed filenames (e.g. main.abc123.js). A new build will have different filenames. If you copy new files over the top without deleting the old ones first, orphan files from the previous version will remain, wasting disk space and potentially causing confusion. Always delete all files in the frontend folder before copying the new release.

Option A: Updating IIS Deployment

Method 1 — Manual Update (File Explorer)

  1. Backup current version. In File Explorer, navigate to C:\inetpub\wwwroot\Elyse\. Right-click the frontend folder and select Copy, then right-click in the same directory and select Paste. Windows will create frontend - Copy. Rename it to frontend_backup_YYYYMMDD (replacing YYYYMMDD with today’s date, e.g. frontend_backup_20260415).
  2. Save your config.json. Navigate into frontend\assets\. Right-click config.json and select Copy. Paste it into the backup folder you just created (or another safe location such as the Desktop). This file contains your backend URL and must be preserved.
  3. Extract the new package. Locate the new Elyse-Frontend-*-Deploy-*.zip file. Right-click it and select Extract All..., choose a temporary location (e.g. C:\Temp\ElyseFrontend), and click Extract.
  4. Delete all old files. Navigate to C:\inetpub\wwwroot\Elyse\frontend\. Press Ctrl+A to select everything, then press Delete. Confirm the deletion. The frontend folder itself should remain (empty).
  5. Copy new files. Navigate to the extracted folder (e.g. C:\Temp\ElyseFrontend). Press Ctrl+A to select all files, then Ctrl+C to copy. Navigate back to C:\inetpub\wwwroot\Elyse\frontend\ and press Ctrl+V to paste.
  6. Restore config.json. Copy the saved config.json from your backup location back into frontend\assets\, overwriting the new template version. This preserves your backend URL configuration.
  7. Verify .md MIME type (IIS only). Open IIS Manager, select the Elyse site, and double-click MIME Types. Confirm that .mdtext/markdown is listed. If it is missing, click Add... in the Actions panel and re-add it (extension: .md, MIME type: text/markdown). See Step 5 of the initial setup for details. This setting is stored in IIS (not in web.config) and can be lost if the site was deleted and recreated.
  8. Test. Open a web browser and navigate to http://localhost:8080. Press Ctrl+Shift+R to hard refresh (clear cache). The application should load with the new version.

No IIS restart required — changes take effect immediately.

Method 2 — PowerShell Script

Open PowerShell as Administrator (right-click Windows PowerShell and select Run as administrator). Edit the $NewPackagePath variable on the second line to match where you extracted the new ZIP, then type or paste the following commands and press Enter:

# === EDIT THIS: Set to the folder where you extracted the new ZIP ===
$NewPackagePath = "C:\Temp\ElyseFrontend"

$FrontendPath = "C:\inetpub\wwwroot\Elyse\frontend"
$BackupPath = "C:\inetpub\wwwroot\Elyse\frontend_backup_$(Get-Date -Format 'yyyyMMdd_HHmmss')"

# Step 1: Backup current version
Copy-Item -Path "$FrontendPath" -Destination "$BackupPath" -Recurse -Force
Write-Host "Backup created at: $BackupPath"

# Step 2: Preserve config.json
Copy-Item "$FrontendPath\assets\config.json" "$env:TEMP\config.json.backup"

# Step 3: Delete old files (avoids orphan hashed bundles from previous build)
Remove-Item "$FrontendPath\*" -Recurse -Force

# Step 4: Copy new files
Copy-Item -Path "$NewPackagePath\*" -Destination "$FrontendPath\" -Recurse -Force

# Step 5: Restore config.json
Copy-Item "$env:TEMP\config.json.backup" "$FrontendPath\assets\config.json" -Force

# Step 6: Done
Write-Host "Update complete. Open browser and press Ctrl+Shift+R to hard refresh."

No IIS restart required — changes take effect immediately.

Verify .md MIME type: After updating, open IIS Manager and confirm the .mdtext/markdown MIME type is still present on the Elyse site. If help files are not displaying, re-add it as described in Step 5 of the initial setup.

Option B: Updating Node.js Deployment

Method 1 — Manual Update (File Explorer)

  1. Stop the service. Open the Services application (press the Windows key, type services.msc, press Enter). Find Elyse Frontend in the list, right-click it, and select Stop.
  2. Backup current version. In File Explorer, navigate to C:\Elyse\. Right-click the frontend folder and select Copy, then right-click in the same directory and select Paste. Rename the copy to frontend_backup_YYYYMMDD (with today’s date).
  3. Save your config.json. Navigate into frontend\assets\. Right-click config.json and select Copy. Paste it into the backup folder or another safe location.
  4. Extract the new package. Locate the new Elyse-Frontend-*-Deploy-*.zip file. Right-click it and select Extract All..., choose a temporary location (e.g. C:\Temp\ElyseFrontend), and click Extract.
  5. Delete all old files. Navigate to C:\Elyse\frontend\. Press Ctrl+A to select everything, then press Delete. Confirm the deletion. The frontend folder itself should remain (empty).
  6. Copy new files. Navigate to the extracted folder. Press Ctrl+A to select all files, then Ctrl+C to copy. Navigate back to C:\Elyse\frontend\ and press Ctrl+V to paste.
  7. Restore config.json. Copy the saved config.json back into frontend\assets\, overwriting the new template version.
  8. Start the service. In the Services application, find Elyse Frontend, right-click it, and select Start. Wait a few seconds for it to start.
  9. Test. Open a web browser and navigate to http://localhost:8080. Press Ctrl+Shift+R to hard refresh. The application should load with the new version.

Method 2 — PowerShell Script

Open PowerShell as Administrator. Edit the $NewPackagePath variable on the second line, then run:

# === EDIT THIS: Set to the folder where you extracted the new ZIP ===
$NewPackagePath = "C:\Temp\ElyseFrontend"

$FrontendPath = "C:\Elyse\frontend"
$BackupPath = "C:\Elyse\frontend_backup_$(Get-Date -Format 'yyyyMMdd_HHmmss')"

# Step 1: Backup current version
Copy-Item -Path "$FrontendPath" -Destination "$BackupPath" -Recurse -Force
Write-Host "Backup created at: $BackupPath"

# Step 2: Stop service
nssm stop ElyseFrontend

# Step 3: Preserve config.json
Copy-Item "$FrontendPath\assets\config.json" "$env:TEMP\config.json.backup"

# Step 4: Delete old files (avoids orphan hashed bundles from previous build)
Remove-Item "$FrontendPath\*" -Recurse -Force

# Step 5: Copy new files
Copy-Item -Path "$NewPackagePath\*" -Destination "$FrontendPath\" -Recurse -Force

# Step 6: Restore config.json
Copy-Item "$env:TEMP\config.json.backup" "$FrontendPath\assets\config.json" -Force

# Step 7: Start service
nssm start ElyseFrontend
Start-Sleep -Seconds 3
nssm status ElyseFrontend
# Expected: SERVICE_RUNNING

ROLLBACK PROCEDURE

If the new version has issues, restore from the backup you created during the update.

IIS rollback:

  1. In File Explorer, navigate to C:\inetpub\wwwroot\Elyse\frontend\. Select all files (Ctrl+A) and delete them.
  2. Navigate to your backup folder (e.g. C:\inetpub\wwwroot\Elyse\frontend_backup_20260415). Select all files (Ctrl+A), copy (Ctrl+C), navigate back to the empty frontend folder, and paste (Ctrl+V).
  3. Verify the .md MIME type is present in IIS Manager (see Step 5).
  4. Hard refresh your browser (Ctrl+Shift+R).

Or via PowerShell:

$FrontendPath = "C:\inetpub\wwwroot\Elyse\frontend"
$BackupPath = "C:\inetpub\wwwroot\Elyse\frontend_backup_YYYYMMDD_HHMMSS"
Remove-Item "$FrontendPath\*" -Recurse -Force
Copy-Item -Path "$BackupPath\*" -Destination "$FrontendPath\" -Recurse -Force

Node.js rollback:

  1. Stop the service: in Services (services.msc), right-click Elyse FrontendStop.
  2. In File Explorer, delete all files in C:\Elyse\frontend\.
  3. Copy all files from your backup folder back into C:\Elyse\frontend\.
  4. Start the service: right-click Elyse FrontendStart.
  5. Hard refresh your browser (Ctrl+Shift+R).

Or via PowerShell:

nssm stop ElyseFrontend
$FrontendPath = "C:\Elyse\frontend"
$BackupPath = "C:\Elyse\frontend_backup_YYYYMMDD_HHMMSS"
Remove-Item "$FrontendPath\*" -Recurse -Force
Copy-Item -Path "$BackupPath\*" -Destination "$FrontendPath\" -Recurse -Force
nssm start ElyseFrontend

Then hard refresh your browser (Ctrl+Shift+R).

Cleanup Old Backups

After confirming the new version works, keep the 2 most recent backups:

# For IIS:
Get-ChildItem "C:\inetpub\wwwroot\Elyse\frontend_backup_*" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -Skip 2 |
    Remove-Item -Recurse -Force

# For Node.js:
Get-ChildItem "C:\Elyse\frontend_backup_*" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -Skip 2 |
    Remove-Item -Recurse -Force

RUNTIME CONFIGURATION

The backend API URL is loaded from assets/config.json at runtime. This means:

No IIS restart or application rebuild required.

NEXT STEPS

  1. For domain deployments, ensure KCD is configured: KCD Configuration
  2. Proceed to Bootstrapping and Configuration to onboard users and configure the system.