FuseCP is a complete, open-source control panel for Cloud Computing Companies and IT Providers. It lets you provision and manage a full suite of hosted services across your infrastructure from a single web-based administration portal.
FuseCP is the successor to SolidCP. It is free, open source, and actively developed.
Website & downloads: www.fusecp.com
| Category | Services |
|---|---|
| Web hosting | IIS 10, FTP |
| Databases | SQL Server 2022, MySQL, MariaDB, SQLite, PostgreSQL |
| Email & collaboration | Microsoft Exchange SE & 2019, Mailenable, Smartermail |
| Directory services | Active Directory |
| Remote access | Microsoft RemoteApp / RDS, Guacamole (browser-based RDP/VNC/SSH) |
| Virtualisation | Hyper-V, Proxmox |
| Billing integration | WHMCS module included |
FuseCP uses a multi-tenant model, meaning one installation can serve multiple resellers and their end customers, each with their own isolated service quotas and hosting plans.
Download the latest release installer from www.fusecp.com or the Releases page.
The installer sets up three components on your Windows Server:
| Component | Role |
|---|---|
| Portal | The web-based administration interface (IIS) |
| Enterprise Server | The business logic and database service |
| Server Agent | Runs on each managed host to execute provisioning actions |
All three can run on the same machine for small deployments, or be split across servers for larger environments.
- Operating system: Windows Server 2016 / 2019 / 2022 / 2025
- Database: SQL Server (Express or full), MySQL, MariaDB
- .NET: .NET Framework 4.8 (current release) — .NET 10 support in progress
After installation, open the FuseCP Portal URL in a browser. Log in with the administrator account created during setup.
From the portal you can:
- Add servers — register your managed hosts under Server → Servers
- Create hosting plans — define resource quotas under System → Hosting Plans
- Add resellers and customers — provision accounts under Account Management
- Provision services — assign web, mail, database, and other services to customer packages
Full administration documentation is available at www.fusecp.com.
FuseCP is a direct successor to SolidCP and maintains database and configuration compatibility. The upgrade path is covered in the installation documentation on www.fusecp.com.
- Website: www.fusecp.com
- Issues: GitHub Issues
- Security vulnerabilities: see SECURITY.md for responsible disclosure
If you want to build FuseCP from source, contribute code, or understand the internal architecture, see:
| Document | Purpose |
|---|---|
| CONTRIBUTING.md | Development workflow, build commands, and PR process |
| TESTING_ENVIRONMENT.md | Local test environment setup |
| AI_DIRECTIVES.md | Standards for AI-assisted contributions, CSS/LESS and DB schema rules |
| AI_FUSECP_PLAYBOOK.md | Safe-first workflow for AI coding agents |
| FuseCP.EnterpriseServer.Data/README.md | EF database layer, migrations, and scaffolding |
| PROCESS_STREAMLINING.md | Tooling and process notes |
FuseCP is released under the GNU General Public License v3. See LICENSE for details.
FuseCP is organized into three primary layers:
| Layer | Description |
|---|---|
| Portal | ASP.NET (WebForms, migrating to Core) front-end — user-facing web UI |
| Enterprise Server | Business logic, database access (EF Core 8 / EF 6), and service orchestration |
| Server | Execution agent that runs on managed hosts and carries out provisioning actions |
Source code is under FuseCP/Sources/. Build and deployment scripts are under FuseCP/ and tools/.
| Requirement | Notes |
|---|---|
| .NET 10 SDK | Required for Core-targeted builds and EF migrations |
| Visual Studio / MSBuild | Required for full orchestrated builds and .vdproj installer projects |
| Node.js / npm | Required for portal LESS → CSS compilation (FuseCP/Sources/FuseCP.WebPortal/App_Themes/Default/Styles/) |
PowerShell 7+ (pwsh) |
Required for all tooling scripts |
| SQL Server Express (local) | Required for integration testing |
| IIS | Required for portal integration tests |
| WiX Toolset v3.14 | Required for legacy installer packaging only |
First-time full setup (elevated PowerShell):
powershell -File FuseCP/Tools/bootstrap-test-environment.ps1 `
-Install -RunAllProfiles -InstallSqlExpress -InstallIIS -InstallWsl -InstallWixToolsetCheck prerequisites only:
pwsh -File FuseCP/Tools/check-test-environment.ps1 -Profile Unitgit clone https://github.com/FuseCP/FuseCP.git
git submodule update --init --recursivepwsh -File FuseCP/Tools/Start-Of-Day.ps1# Full orchestrated build
FuseCP/build-debug.bat
# Or via the scripted validation entrypoint (recommended for CI-like local checks)
pwsh -File FuseCP/Tools/run-local-validation.ps1pwsh -File FuseCP/Tools/run-local-validation.ps1 -ChangedOnly -SkipIfNoChanges -DisableNuGetAuditFuseCP/deploy-debug.batRun the VS Code task Done for today or:
pwsh -File FuseCP/Tools/Done-For-Today.ps1FuseCP/ Build, deploy, and tooling scripts
Sources/ All C# / VB source code
FuseCP.WebPortal/ Portal ASP.NET project
App_Themes/Default/Styles/ LESS + compiled CSS theme files
FuseCP.EnterpriseServer/ Business logic layer
FuseCP.EnterpriseServer.Data/ EF database layer (Entities, Migrations, Config)
FuseCP.Server/ Server agent project
Database/ SQL install and update scripts
Tools/ PowerShell dev and CI tooling scripts
Bin/ Shared compiled output
FuseCP.Installer/ Legacy MSI installer (.vdproj)
FuseCP.WebSite/ Standalone website package
Languages/ Localization resource files
tools/ Third-party build tools (WiX, 7-Zip, etc.)
artifacts/ Local build and session artifacts (gitignored)
All portal styling is authored in LESS source files — never edit main.css directly.
| File | Purpose |
|---|---|
main.less |
Main theme rules — colors, layout, component overrides |
Menus.less |
Navigation, menus, popup and grid rules |
defaultVariables.less |
Shared LESS variables (@footer-bg, Bootstrap overrides, etc.) |
defaultTheme.less |
Root entry point — imports all of the above |
main.css |
Compiled output — do not edit |
Recompile after editing any .less file:
cd FuseCP/Sources/FuseCP.WebPortal/App_Themes/Default/Styles
npm run build:cssCommit both the .less source and the recompiled main.css together.
FuseCP uses EF Core 8 on .NET 10 and EF 6 on .NET Framework, with a single shared DbContext in FuseCP.EnterpriseServer.Data.
-
Edit Entity class(es) in
FuseCP/Sources/FuseCP.EnterpriseServer.Data/Entities/. -
Update Fluent API configuration in
Configuration/for cross-DB type mapping if needed. -
Create a migration:
cd FuseCP/Sources/FuseCP.EnterpriseServer.Data MigrationAdd.bat -
Review the generated files under
Migrations/. -
Also update
FuseCP/Database/update_db.sqlto keep the legacy SQL path in sync.
When code includes new entities/tables (for example IpSecurityPolicies), update your local DB before running the portal/server.
- Open PowerShell in repository root.
- Change directory to the EF data project.
- Run
dotnet ef database updatewith the provider/connection you use locally.
Your local database name and credentials are in FuseCP/Sources/FuseCP.WebPortal/Web.config under the <connectionStrings> section:
<add name="EnterpriseServer"
connectionString="DbType=SqlServer;Server=(local);Database=YOUR_DB;uid=YOUR_USER;pwd=YOUR_PASSWORD;TrustServerCertificate=true"
providerName="System.Data.EntityClient" />Use those values (database name, uid, pwd) in the commands below.
Set-Location "FuseCP/Sources/FuseCP.EnterpriseServer.Data"
dotnet ef database update --framework net10.0 --context SqlServerDbContext -- "DbType=SqlServer;Server=(local);Initial Catalog=YOUR_DB;Integrated Security=True;TrustServerCertificate=true"Set-Location "FuseCP/Sources/FuseCP.EnterpriseServer.Data"
dotnet ef database update --framework net10.0 --context SqlServerDbContext -- "DbType=SqlServer;Server=(local);Initial Catalog=YOUR_DB;Uid=YOUR_USER;Pwd=YOUR_PASSWORD;TrustServerCertificate=true"Replace YOUR_DB, YOUR_USER, and YOUR_PASSWORD with the values from your Web.config.
Set-Location "FuseCP/Sources/FuseCP.EnterpriseServer.Data"
dotnet ef migrations list --framework net10.0 --context SqlServerDbContext -- "DbType=SqlServer;Server=(local);Initial Catalog=YOUR_DB;Integrated Security=True;TrustServerCertificate=true"If update fails with a login error, switch authentication mode (Integrated Security vs SQL login) and retry with credentials that can modify schema in the target database.
For scaffolding from an existing database or porting raw SQL changes, see the full guide in FuseCP/Sources/FuseCP.EnterpriseServer.Data/README.md.
Never edit EF model snapshot (.cs) files by hand — always let dotnet ef maintain them.
# Broadest (full build, all scopes)
pwsh -File FuseCP/Tools/run-local-validation.ps1
# Changed files only
pwsh -File FuseCP/Tools/run-local-validation.ps1 -ChangedOnly -SkipIfNoChanges
# Scoped (Portal, Enterprise, or Server)
pwsh -File FuseCP/Tools/run-local-validation.ps1 -Scope Portal
# After initial restore (skip restore for speed)
pwsh -File FuseCP/Tools/run-local-validation.ps1 -Scope Enterprise -NoRestore
# Machine-readable output for PR tooling
pwsh -File FuseCP/Tools/run-local-validation.ps1 -ChangedOnly -JsonOutputPath artifacts/validation/summary.jsonIn scoped mode,
Portalalready buildsFuseCP.WebPortalAndEnterpriseServer.sln; selecting bothPortalandEnterprisedoes not run a redundant extra build.
| Document | Purpose |
|---|---|
| CONTRIBUTING.md | Development workflow, architecture overview, PR process |
| AI_DIRECTIVES.md | Minimum standards for AI-assisted contributions, including CSS/LESS and DB schema rules |
| AI_FUSECP_PLAYBOOK.md | Safe-first workflow and scope tips for AI coding agents |
| TESTING_ENVIRONMENT.md | Local test environment setup and profiles |
| SECURITY.md | Vulnerability disclosure policy |
| CODE_OF_CONDUCT.md | Community standards |
| PROCESS_STREAMLINING.md | Tooling and process optimization notes |
| CHANGELOG | Release history |