Get your own cloud platform running in minutes. Choose your method below.
DotNetCloud supports PostgreSQL 15+ and SQL Server (MSSQL) 2022+. The setup wizard will help you configure your preferred database.
Jump to section:
The recommended method for Debian, Ubuntu, Linux Mint, and other Debian-derived distributions. One command installs the server and all dependencies.
Open a terminal and run the one-line installer. It downloads DotNetCloud, installs the .NET 10 runtime if needed, creates a system service, and sets up the CLI.
# One-line installer (recommended)
curl -fsSL https://raw.githubusercontent.com/LLabmik/DotNetCloud/main/tools/install.sh | bash
Always review scripts before piping to bash. You can download and inspect it first:
curl -fsSL https://raw.githubusercontent.com/LLabmik/DotNetCloud/main/tools/install.sh -o install.sh && less install.sh && bash install.sh
The interactive setup wizard walks you through configuration with simple, guided prompts. Choose your deployment mode, database, and admin credentials.
# Beginner-friendly guided setup
sudo dotnetcloud setup --beginner
Beginner mode guides you through the three real deployment paths: private/LAN, public behind reverse proxy (recommended), or public direct with your own certificate.
# Full non-beginner wizard (all options)
sudo dotnetcloud setup
# Example: provide DB settings directly
sudo -u dotnetcloud dotnetcloud setup --db-provider postgresql \
--connection-string "Host=localhost;Database=dotnetcloud;Username=dotnetcloud;Password=your-secure-password-here"
The wizard gives you three deployment options:
Once the wizard completes, the DotNetCloud service starts automatically. Open your browser and navigate to your server's address. Log in with the admin credentials you set during setup.
# Check service status
sudo systemctl status dotnetcloud
# View logs
journalctl -u dotnetcloud -f
# Restart if needed
sudo systemctl restart dotnetcloud
Install DotNetCloud on Windows Server or Windows 10/11. Runs as a Windows Service with optional IIS reverse proxy integration.
# Install via winget
winget install DotNetCloud
# Or run the PowerShell installer directly
irm https://raw.githubusercontent.com/LLabmik/DotNetCloud/main/tools/install-windows.ps1 | iex
# Beginner IIS path with guided prompts
powershell.exe -ExecutionPolicy Bypass -File .\tools\install-windows.ps1 -SourcePath .\artifacts\publish -Beginner
# Beginner-friendly setup wizard only
dotnetcloud setup --beginner
# Advanced install with custom IIS/site options
pwsh -ExecutionPolicy Bypass -File .\tools\install-windows.ps1 -SourcePath .\artifacts\publish -Advanced -SiteName "DotNetCloud" -AppPoolName "DotNetCloud" -HostName "cloud.example.com"
# Full non-beginner setup wizard
dotnetcloud setup
The wizard configures your database, creates an admin account, and registers DotNetCloud as a Windows Service that starts automatically on boot.
# Check service status
Get-Service "DotNetCloud Core Server"
# Stop / Start / Restart
Restart-Service "DotNetCloud Core Server"
For production Windows Server deployments, see the IIS Installation Guide for detailed instructions on setting up IIS as a reverse proxy with SSL termination.
The fastest way to get started. Docker Compose bundles everything — server, database, and optional services — in isolated containers.
# Generate docker-compose.yml with the setup wizard
dotnetcloud setup --docker
# Start all services in the background
docker compose up -d
# View logs
docker compose logs -f
# Update to latest version
docker compose pull && docker compose up -d
Every DotNetCloud server installation includes the full suite of built-in modules and the web UI.
For production internet-facing deployments, place DotNetCloud behind a reverse proxy that handles SSL/TLS termination. Here are example configurations for popular web servers.
server {
listen 443 ssl http2;
server_name cloud.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/cloud.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.yourdomain.com/privkey.pem;
client_max_body_size 10G;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
cloud.yourdomain.com {
reverse_proxy 127.0.0.1:5000
}
Caddy automatically obtains and renews Let's Encrypt certificates — no extra configuration needed.
<VirtualHost *:443>
ServerName cloud.yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cloud.yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cloud.yourdomain.com/privkey.pem
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
# WebSocket support for Chat / SignalR
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P,L]
</VirtualHost>