Overview
This guide walks through the complete installation process for deploying RDSWeb Custom in a production environment. The installation consists of two main components:- Backend API - Node.js/Express server for authentication and RemoteApp queries
- Frontend Application - Angular-based web interface
Before starting, ensure you have completed all items in the System Requirements checklist.
Installation Methods
Manual Installation
Install and configure components manually on a Windows or Linux server
Production Deployment
Deploy with a reverse proxy (nginx/IIS) for SSL termination and production hosting
Manual Installation
Step 1: Clone the Repository
Download the source code to your server:Replace
your-org/rdsweb-custom with the actual repository URL.Step 2: Install Backend Dependencies
Navigate to the backend directory and install npm packages:Step 3: Configure Backend Environment
Create the production environment configuration:.env file with your production settings:
.env
Step 4: Test Backend Server
Start the backend in development mode to verify configuration:Troubleshooting Backend Startup
Troubleshooting Backend Startup
Common Issues:
- LDAP connection errors: Verify
LDAP_URLis accessible and service account credentials are correct - Port already in use: Change
PORTin.envor stop conflicting process - Module not found errors: Run
npm installagain - PowerShell/WMI errors: Ensure server can access RD Connection Broker via WMI
Step 5: Install Frontend Dependencies
Open a new terminal and navigate to the frontend directory:Step 6: Configure Frontend Environment
Update the production API URL insrc/environments/environment.prod.ts:
src/environments/environment.prod.ts
If using a reverse proxy, set
apiUrl to the public-facing URL where the backend will be accessible.Step 7: Build Frontend for Production
Compile the Angular application for production:dist/frontend/browser/.
Production Deployment
Option A: Deploy with nginx (Linux)
1. Install nginx
2. Copy Frontend Build
3. Configure nginx
Create/etc/nginx/sites-available/rdsweb:
/etc/nginx/sites-available/rdsweb
4. Enable Site and Reload nginx
Option B: Deploy with IIS (Windows)
1. Install IIS and Required Modules
- Install Internet Information Services (IIS) via Server Manager
- Install URL Rewrite Module: https://www.iis.net/downloads/microsoft/url-rewrite
- Install Application Request Routing (ARR): https://www.iis.net/downloads/microsoft/application-request-routing
2. Configure IIS Site
- Open IIS Manager
- Right-click Sites → Add Website
- Site name: RDSWeb Custom
- Physical path:
C:\inetpub\rdsweb(copy frontend build here) - Binding: HTTPS, port 443
- SSL certificate: Select your certificate
3. Configure URL Rewrite for API Proxy
Createweb.config in the site root:
web.config
Running Backend as a Service
Linux (systemd)
Create/etc/systemd/system/rdsweb-backend.service:
Windows (NSSM)
- Download NSSM (Non-Sucking Service Manager): https://nssm.cc/download
- Install the backend as a Windows service:
Post-Installation Steps
1. Verify Installation
Test the complete stack:2. Configure Firewall
Ensure the following ports are accessible:3. Enable Logging
Configure application logging for troubleshooting:backend/src/index.js
4. Set Up Monitoring
Monitor the backend service:Security Hardening
SSL/TLS Configuration
- Use certificates from a trusted Certificate Authority
- Enable TLS 1.2+ only (disable TLS 1.0/1.1)
- Configure strong cipher suites
- Enable HSTS (HTTP Strict Transport Security)
Application Security
- Change
JWT_SECRETto a cryptographically random string - Use LDAPS (port 636) instead of plain LDAP
- Set
NODE_ENV=productionto disable debug features - Implement rate limiting on
/api/auth/loginendpoint - Configure CORS to only allow your domain
Network Security
- Restrict backend port 3000 to localhost only (not exposed publicly)
- Use a reverse proxy (nginx/IIS) for SSL termination
- Configure firewall rules to limit access to trusted networks
- Use RD Gateway for external RemoteApp access
Next Steps
Configuration Reference
Learn about all available environment variables and advanced configuration options
Quick Start Guide
Set up a local development environment for customizing RDSWeb Custom