NexusCloud docs

Introduction to NexusCloud

NexusCloud is a self-hosted hosting panel that brings every major runtime — PHP, .NET, Node.js, Python, Java, Ruby, and Docker — under one unified interface, installed with a single command.

One license. One server. Each NexusCloud license covers a single VPS or dedicated machine. Install as many sites as your hardware supports.

What NexusCloud does

  • Manages web hosting for 7 runtimes through a single dashboard
  • Automates SSL certificates via Let's Encrypt
  • Provides DNS zone management
  • Handles email domains and mailboxes
  • Enforces license-based access (trial → paid → grace → read-only)
  • Exposes a REST API for automation

Architecture

  Your VPS / Dedicated Server
  ┌─────────────────────────────────────────┐
  │  Nexus Dashboard  (web UI)               │
  │  Nexus API        (REST API)             │
  │  Nexus Engine     (hosting core)         │
  │  Database                                │
  └─────────────────────────────────────────┘
            │  verifies license (JWT, offline-capable)
            ▼
  license.nexuscloud.run  (Licensing server)
        

Requirements

Operating System

OSSupport
Ubuntu 24.04 LTSRecommended
Ubuntu 22.04 LTSSupported
Debian 12Beta
CentOS / RHELNot supported

Minimum Hardware

ResourceMinimumRecommended
CPU2 vCPU4+ vCPU
RAM2 GB8 GB
Disk20 GB SSD100 GB NVMe
Network100 Mbit/s1 Gbit/s

Network

  • A public IPv4 address
  • Ports 80, 443, 22 open (UFW or iptables)
  • A domain pointing to the server IP (for SSL to work)
  • Outbound HTTPS to license.nexuscloud.run for license validation

Root access

The installer requires root or sudo access. It configures system services and modifies /etc.

Quick Start

Install NexusCloud on a fresh Ubuntu 24.04 server in one command.

1. Download and run install.sh

bash
curl -fsSL https://license.nexuscloud.run/install.sh | sudo bash
Fresh server only. Run the installer on a clean Ubuntu installation. Do not run it on a server that already has Apache, nginx, or another control panel installed.

2. What the installer does

  1. Registers a 15-day free trial with the licensing server
  2. Saves a signed JWT token to /etc/nexus/license.conf
  3. Installs system dependencies (nginx, MySQL, PHP, .NET runtime)
  4. Installs and configures ISPConfig as the hosting engine
  5. Deploys Nexus API and Dashboard
  6. Configures UFW firewall (ports 22, 80, 443)
  7. Enables nexus-engine.service and nexus-api.service

3. Access the dashboard

Once installation completes (10–20 min), open your browser:

url
https://<your-server-ip>/

Default credentials are shown at the end of the install output.

4. Activate a paid license

After purchasing at nexuscloud.run/pricing, go to your customer dashboard and follow the activation steps.

Free Trial

Every new installation automatically starts a 15-day free trial. No credit card required.

What's included

  • Full access to all dashboard features
  • Unlimited sites (hardware permitting)
  • All 7 runtimes enabled
  • DNS, SSL, and mail management

Trial expiry

When the trial expires, NexusCloud enters read-only mode:

  • All existing sites continue to serve traffic normally
  • Creating or modifying sites, DNS zones, or mail domains is blocked
  • The dashboard shows a red banner with upgrade options
  • HTTP 402 Payment Required is returned for write operations via the API
NexusCloud never kills running sites. Even in restricted mode, your hosted websites remain fully operational. Only management operations are blocked.

License file location

shell
cat /etc/nexus/license.conf

Plans & Pricing

Each plan covers one server. To manage multiple servers, purchase one license per machine.

Solo
$9/mo
  • 1 server
  • All runtimes
  • Unlimited sites
  • Community support
Get Solo
Business
$49/mo
  • 1 server
  • All runtimes
  • Unlimited sites
  • Priority support
Get Business
Hosting Co
$99/mo
  • Up to 10 servers
  • All runtimes
  • Unlimited sites
  • Dedicated support
Get Hosting Co

Annual billing

All plans are billed monthly. Annual billing with a 20% discount is coming soon.

Activate a License

From the customer dashboard (recommended)

  1. Go to nexuscloud.run/dashboard and log in
  2. Find your license key under My Licenses
  3. On your server, run:
shell
nexus license activate YOUR-LICENSE-KEY

Manual activation via API

shell
curl -X POST https://license.nexuscloud.run/license/activate \
  -H "Content-Type: application/json" \
  -d '{
    "licenseKey": "YOUR-LICENSE-KEY",
    "installationId": "'$(cat /etc/nexus/installation_id)'",
    "fingerprint": "...",
    "hostname": "'$(hostname)'"
  }'

On success, the response contains a new JWT token which is automatically saved to /etc/nexus/license.conf.

Releasing a license

To move your license to a different server, release it first:

shell
nexus license release

Grace Period

NexusCloud validates its license token every 24 hours by contacting license.nexuscloud.run. If the licensing server is temporarily unreachable, a 7-day grace period begins automatically.

Grace period behavior

  • The dashboard shows an orange warning banner
  • All features remain fully operational
  • NexusCloud attempts reconnection every 24 hours
  • If connectivity is restored within 7 days, the license is silently renewed
  • If 7 days pass without reconnection, the panel enters read-only mode
This protects you from being locked out due to a temporary outage of our licensing servers — not from non-payment. Unpaid subscriptions that expire will enter read-only mode immediately after the billing cycle ends.

License states

StateDescriptionWrite access
Trial15-day free trial activeYes
LicensedActive paid subscriptionYes
GraceServer unreachable, <7 daysYes
RestrictedExpired or unlicensedNo

PHP

PHP is the primary runtime in NexusCloud, managed automatically by the hosting engine.

Supported versions

PHP 7.4 PHP 8.0 PHP 8.1 PHP 8.2 PHP 8.3

Creating a PHP site

  1. In the dashboard, go to Sites → Add Site
  2. Set runtime to PHP
  3. Select your PHP version
  4. Enter the domain and document root
  5. Click Create — SSL is provisioned automatically

php.ini customization

Per-site php.ini overrides are supported via .user.ini in the document root:

.user.ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
memory_limit = 256M

Node.js

Node.js sites run as persistent processes behind nginx reverse proxy, managed by pm2.

Supported versions

Node 18 LTS Node 20 LTS Node 22

Creating a Node.js site

  1. Select runtime Node.js when creating a site
  2. Specify the entry file (e.g. server.js or dist/main.js)
  3. Specify the port your app listens on internally
  4. NexusCloud creates a pm2 process and an nginx upstream automatically

Environment variables

shell
nexus site env set mysite.com NODE_ENV=production DB_URL=postgres://...

.NET

ASP.NET Core applications run as systemd services behind nginx, using Kestrel as the internal web server.

Supported versions

.NET 6 .NET 8 LTS .NET 10

Deployment

  1. Publish your app: dotnet publish -c Release -r linux-x64 --self-contained false
  2. Upload the publish/ folder to the site's document root
  3. NexusCloud creates a systemd unit and nginx proxy automatically
Use --self-contained false to reuse the .NET runtime already installed on the server and reduce upload size.

Python

Python sites run via Gunicorn (WSGI) or Uvicorn (ASGI for FastAPI/Starlette), with nginx in front.

Supported versions

Python 3.10 Python 3.11 Python 3.12

WSGI (Django, Flask)

Procfile
web: gunicorn myapp.wsgi:application --bind 0.0.0.0:$PORT

ASGI (FastAPI, Starlette)

Procfile
web: uvicorn main:app --host 0.0.0.0 --port $PORT

Java

Spring Boot and other executable JAR applications run as systemd services behind nginx.

Supported versions

Java 17 LTS Java 21 LTS

Deployment

  1. Build your JAR: mvn package -DskipTests or ./gradlew bootJar
  2. Upload the JAR to the site directory
  3. NexusCloud wraps it in a systemd service and proxies via nginx
application.properties
server.port=${PORT:8080}

Ruby

Ruby (Rails, Sinatra) apps run via Puma behind nginx.

Supported versions

Ruby 3.1 Ruby 3.2 Ruby 3.3

Gemfile requirement

Gemfile
gem 'puma'

NexusCloud detects Gemfile.lock and runs bundle install automatically on deploy.

Docker

Any language or framework containerized with Docker. NexusCloud manages the container lifecycle and nginx proxy.

Requirements

  • A Dockerfile in the project root, or a pre-built image on Docker Hub / GHCR
  • The container must expose a TCP port

Supported deployment methods

MethodDescription
DockerfileNexusCloud builds and runs the image on the server
Docker Hub imagePulls and runs a public or private image
docker-compose.ymlMulti-container apps (coming soon)
Docker runtime requires the Business plan or higher.

Managing Sites

Create a site

  1. Navigate to Sites → Add Site
  2. Enter the domain name (e.g. myapp.com)
  3. Select the runtime and version
  4. Configure document root and entry point
  5. Click Create

NexusCloud automatically provisions a Let's Encrypt SSL certificate and creates the nginx vhost.

Site status indicators

StatusMeaning
RunningProcess active, serving traffic
StartingProcess starting up
StoppedProcess stopped or crashed
DeployingBuild or deploy in progress

DNS Zones

NexusCloud includes a full DNS server managed automatically. You can host DNS for any domain directly on your server.

Adding a DNS zone

  1. Go to DNS → Add Zone
  2. Enter the domain and SOA settings
  3. Add A, CNAME, MX, and TXT records

Pointing your domain

Update your domain registrar's nameservers to your server's hostname:

Registrar DNS settings
NS1: ns1.yourserver.com  →  your-server-ip
NS2: ns2.yourserver.com  →  your-server-ip

SSL Certificates

NexusCloud automatically provisions and renews Let's Encrypt certificates for all sites.

Automatic SSL

When you create a site with a domain that resolves to your server, NexusCloud:

  1. Runs an ACME HTTP-01 challenge via nginx
  2. Installs the certificate to /etc/letsencrypt/live/
  3. Configures nginx to redirect HTTP → HTTPS
  4. Sets up automatic renewal via certbot's systemd timer

Custom certificates

You can upload your own certificate (e.g. a wildcard cert) via Sites → SSL → Upload Certificate.

Mail Domains

NexusCloud manages email hosting via its built-in mail stack.

Add a mail domain

  1. Go to Mail → Add Domain
  2. Enter the domain (e.g. mycompany.com)
  3. Add mailboxes and aliases
  4. NexusCloud generates SPF and DKIM DNS records for you automatically

Webmail

Roundcube webmail is available at https://mail.yourserver.com/webmail after setup.

Licensing API

Base URL: https://license.nexuscloud.run

Trial

POST
/install/register-trial

Registers a new installation and starts a 15-day trial. Called automatically by install.sh.

Request body
{
  "installationId": "uuid-v4",
  "fingerprint":    "sha256-hex",
  "hostname":       "myserver.com",
  "ipAddress":      "1.2.3.4"
}

License activation

POST
/license/activate
Request body
{
  "licenseKey":     "XXXX-XXXX-XXXX-XXXX",
  "installationId": "uuid-v4",
  "fingerprint":    "sha256-hex",
  "hostname":       "myserver.com"
}

License validation

POST
/license/validate

Called every 24h by LicenseValidationService. Returns a refreshed JWT token.

License release

POST
/license/release

Deactivates a license from an installation so it can be moved to another server.

Customer endpoints

MethodPathDescription
POST/customer/registerCreate account
POST/customer/loginAuthenticate
GET/customer/meCurrent user info
POST/customer/logoutClear session
GET/customer/licenseList licenses

install.sh Reference

The installer is a Bash script hosted at https://license.nexuscloud.run/install.sh.

Steps performed

StepDescription
0Register trial with licensing server, save /etc/nexus/license.conf
1System update and base dependencies
2Install nginx, PHP, MySQL
3Install .NET runtime
4Install Node.js and pm2
5Configure ISPConfig engine (configure_engine.sh)
6Deploy Nexus API
7Deploy Nexus Dashboard
8Configure UFW firewall
9Enable and start all services
10Run post-install health check

Environment variables

VariableDefaultDescription
NEXUS_LICENSING_URLhttps://license.nexuscloud.runLicensing server URL
NEXUS_SKIP_TRIALfalseSkip trial registration (for re-installs)

FAQ

Can I run NexusCloud on a shared hosting provider?
No. NexusCloud requires root access and a dedicated VPS or bare-metal server. Shared hosting is not supported.
What happens to my sites when the license expires?
All currently running sites continue to serve traffic. NexusCloud enters read-only mode — you cannot create or modify sites, DNS zones, or mail domains until you renew.
Can I move my license to a different server?
Yes. Run nexus license release on the old server, then activate on the new one from your customer dashboard.
Does NexusCloud work without internet access?
Yes, for up to 7 days. The license token is validated locally (JWT, no network required). If the licensing server is unreachable for more than 7 days, the panel enters read-only mode.
Is there a money-back guarantee?
Yes. We offer a 7-day money-back guarantee on all paid plans. See the Refund Policy for details.
Can I host multiple domains on one server?
Yes, unlimited domains on a single server. One license covers the entire machine regardless of how many sites you host.

Troubleshooting

License not validated after payment

Allow up to 5 minutes for the Stripe webhook to process. If it still doesn't appear, check your customer dashboard. You can also manually trigger validation:

shell
nexus license validate --force

SSL certificate not provisioning

  • Ensure the domain's A record points to your server IP
  • Ensure port 80 is open (needed for ACME HTTP-01 challenge)
  • Check certbot logs: journalctl -u certbot --no-pager

Service won't start after install

shell
# Check API service
journalctl -u nexus-api -n 50 --no-pager

# Check engine service
journalctl -u nexus-engine -n 50 --no-pager

# Check nginx
nginx -t && systemctl status nginx

Dashboard shows "License: Restricted" after valid payment

The JWT token on disk may be stale. Re-run validation:

shell
nexus license validate --force
systemctl restart nexus-api

Getting help

For support, email support@nexuscloud.run or open a ticket from your customer dashboard.