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
What can FuseCP manage?
| 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.
Installing FuseCP
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.
Supported platforms
- 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
Getting started
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.
Upgrading from SolidCP
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.
Support & community
- Website: www.fusecp.com
- Issues: GitHub Issues
- Security vulnerabilities: see SECURITY.md for responsible disclosure
For developers and contributors
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 |
License
FuseCP is released under the GNU General Public License v3. See LICENSE for details.
Community standards
Architecture
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/.
Prerequisites
| 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 -InstallWixToolset
Check prerequisites only:
pwsh -File FuseCP/Tools/check-test-environment.ps1 -Profile Unit
Quick Start
1. Clone
git clone https://github.com/FuseCP/FuseCP.git git submodule update --init --recursive
2. Start of day
pwsh -File FuseCP/Tools/Start-Of-Day.ps1
3. Build (debug)
# 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.ps1
4. Validate changed files only (fast loop)
pwsh -File FuseCP/Tools/run-local-validation.ps1 -ChangedOnly -SkipIfNoChanges -DisableNuGetAudit
5. Deploy (debug, local)
6. End of day
Run the VS Code task Done for today or:
pwsh -File FuseCP/Tools/Done-For-Today.ps1
Folder Structure
FuseCP/ 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)
UI Theme Development (LESS/CSS)
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:css
Commit both the .less source and the recompiled main.css together.
Database Schema Changes (Entity Framework)
FuseCP uses EF Core 8 on .NET 10 and EF 6 on .NET Framework, with a single shared DbContext in FuseCP.EnterpriseServer.Data.
Workflow
-
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.
Apply pending EF migrations to your local database
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.
Finding your connection details
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.
Windows Integrated Authentication (recommended for local dev):
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"
SQL Login authentication (if your local SQL instance uses SQL users):
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.
Optional verification (shows migration chain known to EF):
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.
Validation Reference
# 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.json
In scoped mode,
Portalalready buildsFuseCP.WebPortalAndEnterpriseServer.sln; selecting bothPortalandEnterprisedoes not run a redundant extra build.
Governance
| 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 |