This guide outlines step-by-step instructions for installing and configuring Axero on your server. It is recommended that you read the entire guide before starting the installation.
If you encounter any issues during installation, please refer to the Troubleshooting section or contact Axero support.
Inbound ports (required on your server):
Outbound connectivity (required from your server):
licensing.axerosolutions.com
TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Configure firewall rules to allow these outbound connections. All connections use HTTPS (port 443).
api.openai.com
www.googleapis.com
accounts.google.com
graph.microsoft.com
login.microsoftonline.com
api.dropbox.com
content.dropboxapi.com
api.box.com
account.box.com
api.push.apple.com
fcm.googleapis.com
api.unsplash.com
images.unsplash.com
*.officeapps.live.com
Before you begin:
Pre-Flight Validation:
Option 1: Restore from VM Snapshot (Recommended)
Option 2: Manual Cleanup
%SystemRoot%\system32\drivers\etc\hosts
EXEC [Dyve_System_InstantiateCommunity] @ApplicationName = 'intranet', @ApplicationURL = 'http://intranet.com', @VirtualDirectory = '', @DefaultEmailAddress = 'admin@intranet.com', @SMTPServer = '', @SMTPUsername = '', @SMTPPassword = '', @SMTPPort = 25, @AdminUserName = 'admin', @AdminPassword = 'choose_a_strong_password'
UPDATE [Dyve_Settings] SET ApplicationURL = 'https://intranet.com' WHERE ApplicationName = 'intranet'
Tip: Take a screenshot or write these down before proceeding. You'll need them in later steps.
Download and install IIS URL Rewrite on your web server.
192.168.1.100 intranet.com
192.168.1.100
intranet.com
ping intranet.com
Reply from 192.168.1.100
ipconfig /flushdns
Now that SSL is configured, you MUST update the database to use HTTPS:
UPDATE [Dyve_Settings] SET ApplicationURL = 'https://intranet.com' WHERE ApplicationName = 'intranet' -- Verify the update SELECT ApplicationName, ApplicationURL FROM [Dyve_Settings]
Why this matters: If you skip this step, your site will have SSL configured but the application will still try to use HTTP URLs, causing redirect loops and login issues.
Use this configuration if you want to use Windows Authentication instead of SQL Server authentication. This is ideal when:
If you choose this option, you'll use the AD authentication connection string in Step 4.13 instead of SQL Server authentication.
Verify your IIS setup before proceeding:
If any items are not correct, review Steps 4.6-4.12 before proceeding.
Select the authentication method that matches your configuration:
Use this template if you're using SQL Server authentication. Replace the highlighted values:
<?xml version="1.0" encoding="utf-8"?> <connectionStrings> <add name="CommunifireConnectionString" connectionString="Database=DATABASE_NAME;Server=SERVER_NAME;User ID=DATABASE_USERNAME;Password=DATABASE_USER_PASSWORD" /> </connectionStrings>
Use this template if you configured AD authentication in Step 4.11. Replace the highlighted values:
<?xml version="1.0" encoding="utf-8"?> <connectionStrings> <add name="CommunifireConnectionString" connectionString="Data Source=IP_ADDRESS;Initial Catalog=DATABASE_NAME;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> </connectionStrings>
C:\inetpub\logs\LogFiles\W3SVC[site-id]\
eventvwr.msc
https://intranet.com
https://
Elasticsearch powers the search functionality in Axero. Follow the On-Premises Elasticsearch Installation guide.
🎉 Congratulations! Your Axero site is now installed.
Your site is ready to use. Next steps:
Use this card to record important values during installation. Keep this information secure and accessible for future maintenance.
Run this script to verify your installation prerequisites:
# Axero Installation Validation Script # Run this in PowerShell as Administrator Write-Host "=== Axero Installation Validation ===" -ForegroundColor Cyan Write-Host "Version 2.0 - Enhanced Validation`n" -ForegroundColor Gray # Check Windows Server Version Write-Host "[1/7] Checking Windows Server Version..." -ForegroundColor Cyan $os = Get-WmiObject -Class Win32_OperatingSystem Write-Host " OS: $($os.Caption) $($os.Version)" -ForegroundColor Gray if ($os.Caption -match "2019|2022|2025") { Write-Host " ✓ OS Version: PASS" -ForegroundColor Green } else { Write-Host " ✗ OS Version: FAIL (Requires Windows Server 2019 or newer)" -ForegroundColor Red } # Check .NET Framework 4.8 Write-Host "`n[2/7] Checking .NET Framework 4.8..." -ForegroundColor Cyan try { $dotnet = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -Name Release -ErrorAction Stop if ($dotnet.Release -ge 528040) { Write-Host " ✓ .NET Framework 4.8: PASS (Release: $($dotnet.Release))" -ForegroundColor Green } else { Write-Host " ✗ .NET Framework 4.8: FAIL (Found version: $($dotnet.Release), need 528040+)" -ForegroundColor Red } } catch { Write-Host " ✗ .NET Framework 4.8: FAIL (Not installed)" -ForegroundColor Red } # Check IIS Installation Write-Host "`n[3/7] Checking IIS Installation..." -ForegroundColor Cyan $iis = Get-WindowsFeature -Name Web-Server -ErrorAction SilentlyContinue if ($iis -and $iis.Installed) { Write-Host " ✓ IIS: PASS (Installed)" -ForegroundColor Green } else { Write-Host " ✗ IIS: FAIL (Not installed)" -ForegroundColor Red } # Check SQL Server Service Write-Host "`n[4/7] Checking SQL Server..." -ForegroundColor Cyan $sql = Get-Service -Name MSSQLSERVER -ErrorAction SilentlyContinue if ($sql -and $sql.Status -eq "Running") { Write-Host " ✓ SQL Server: PASS (Running)" -ForegroundColor Green } elseif ($sql) { Write-Host " ✗ SQL Server: WARNING (Installed but not running - Status: $($sql.Status))" -ForegroundColor Yellow } else { Write-Host " ✗ SQL Server: FAIL (Not installed or not found)" -ForegroundColor Red } # Check Disk Space on all drives Write-Host "`n[5/7] Checking Disk Space..." -ForegroundColor Cyan $drives = Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Free -ne $null } $suitableDrives = @() foreach ($drive in $drives) { $freeGB = [math]::Round($drive.Free / 1GB, 2) $usedGB = [math]::Round($drive.Used / 1GB, 2) $totalGB = [math]::Round(($drive.Free + $drive.Used) / 1GB, 2) Write-Host " Drive $($drive.Name): $freeGB GB free / $totalGB GB total" -ForegroundColor Gray if ($freeGB -ge 100) { Write-Host " ✓ Drive $($drive.Name): PASS (Sufficient space)" -ForegroundColor Green $suitableDrives += $drive.Name } elseif ($freeGB -ge 50) { Write-Host " ⚠ Drive $($drive.Name): WARNING (Minimum for testing, expand for production)" -ForegroundColor Yellow } else { Write-Host " ✗ Drive $($drive.Name): INSUFFICIENT (Need 100 GB for production)" -ForegroundColor Red } } if ($suitableDrives.Count -gt 0) { Write-Host "`n Recommended drives for installation: $($suitableDrives -join ', ')" -ForegroundColor Green } else { Write-Host "`n ⚠ No drives with 100+ GB free space found" -ForegroundColor Yellow Write-Host " Consider expanding a drive or using external storage" -ForegroundColor Yellow } # Check DNS Resolution Write-Host "`n[6/7] Checking DNS Resolution..." -ForegroundColor Cyan try { $dnsResult = Resolve-DnsName -Name "licensing.axerosolutions.com" -ErrorAction Stop $ipAddress = ($dnsResult | Where-Object { $_.Type -eq 'A' } | Select-Object -First 1).IPAddress Write-Host " ✓ DNS Resolution: PASS" -ForegroundColor Green Write-Host " Resolved to: $ipAddress" -ForegroundColor Gray } catch { Write-Host " ✗ DNS Resolution: FAIL" -ForegroundColor Red Write-Host " Cannot resolve licensing.axerosolutions.com" -ForegroundColor Red Write-Host " Check DNS settings" -ForegroundColor Yellow } # Check Licensing Server Connectivity (Enhanced) Write-Host "`n[7/7] Checking License Server Connectivity..." -ForegroundColor Cyan Write-Host " Testing TCP connection to licensing.axerosolutions.com:443..." -ForegroundColor Gray try { $tcpTest = Test-NetConnection -ComputerName "licensing.axerosolutions.com" -Port 443 -WarningAction SilentlyContinue if ($tcpTest.TcpTestSucceeded) { Write-Host " ✓ TCP Connection: PASS" -ForegroundColor Green Write-Host " Remote IP: $($tcpTest.RemoteAddress)" -ForegroundColor Gray Write-Host " Local IP: $($tcpTest.SourceAddress.IPAddress)" -ForegroundColor Gray # Try HTTP request (403 is actually OK - means server is responding) Write-Host "`n Testing HTTPS response..." -ForegroundColor Gray try { $response = Invoke-WebRequest -Uri "https://licensing.axerosolutions.com" -UseBasicParsing -TimeoutSec 10 -ErrorAction Stop Write-Host " ✓ HTTPS Response: PASS (Status: $($response.StatusCode))" -ForegroundColor Green } catch { $statusCode = $_.Exception.Response.StatusCode.value__ if ($statusCode -eq 403) { Write-Host " ✓ HTTPS Response: PASS (403 Forbidden is expected)" -ForegroundColor Green Write-Host " Server is responding correctly - license validation will work" -ForegroundColor Gray } elseif ($statusCode -eq 404) { Write-Host " ✓ HTTPS Response: PASS (404 Not Found is acceptable)" -ForegroundColor Green Write-Host " Server is responding - license API endpoint is different" -ForegroundColor Gray } else { Write-Host " ⚠ HTTPS Response: WARNING (Status: $statusCode)" -ForegroundColor Yellow Write-Host " License validation may still work - this is just a basic test" -ForegroundColor Gray } } Write-Host "`n ✓ License Server Connectivity: PASS" -ForegroundColor Green Write-Host " Your server can reach the licensing server successfully" -ForegroundColor Gray } else { Write-Host " ✗ TCP Connection: FAIL" -ForegroundColor Red Write-Host " Cannot establish connection to licensing.axerosolutions.com:443" -ForegroundColor Red Write-Host "`n Possible causes:" -ForegroundColor Yellow Write-Host " - Firewall blocking outbound HTTPS (port 443)" -ForegroundColor Yellow Write-Host " - Proxy server configuration needed" -ForegroundColor Yellow Write-Host " - Network routing issue" -ForegroundColor Yellow Write-Host "`n ✗ License Server Connectivity: FAIL" -ForegroundColor Red } } catch { Write-Host " ✗ Connection Test: FAIL" -ForegroundColor Red Write-Host " Error: $($_.Exception.Message)" -ForegroundColor Red Write-Host " ✗ License Server Connectivity: FAIL" -ForegroundColor Red } # Summary Write-Host "`n=== Validation Summary ===" -ForegroundColor Cyan Write-Host "Review the results above before starting installation." -ForegroundColor Gray Write-Host "All checks with ✓ PASS are ready to go." -ForegroundColor Gray Write-Host "Address any ✗ FAIL or ⚠ WARNING items before proceeding.`n" -ForegroundColor Gray
<system.net> <defaultProxy enabled="true"> <proxy bypassonlocal="true" proxyaddress="http://your proxy address here:8080/" /> </defaultProxy> </system.net>
is requesting access to a wiki that you have locked: https://my.axerosolutions.com/spaces/5/axero-documentation/wiki/view/329/on-premises-installation-guide
Your session has expired. You are being logged out.