These instructions take you from a brand-new Debian server to a fully running Foundation site with HTTPS.
- What You Need
- Step 1: Point Your Domain to the Server
- Step 2: Create a Non-Root User on the Server
- Step 3: Build the Deployment Package
- Step 4: Deploy to the Server
- Step 5: Verify It's Running
- That's It!
| Item | Example |
|---|---|
| Server IP address | 149.28.xxx.xxx |
| Root password | (from your Vultr dashboard) |
| Domain name | yourDNSName.scaledata.net |
| Email address | admin@yourcompany.com |
Before starting, create a DNS A record pointing your domain to the server IP:
| Type | Name | Value |
|---|---|---|
| A | yourDNSName.scaledata.net |
149.28.xxx.xxx |
DNS can take a few minutes to propagate. Verify it resolves before continuing:
nslookup yourDNSName.scaledata.netYou should see your server's IP address in the response. Do not proceed to Step 4 until this works — Let's Encrypt will fail if DNS is not resolving.
SSH into your new server as root:
ssh root@xxx.xx.xxx.xxxCreate an admin user (the app runs under this account):
adduser admin
usermod -aG sudo adminSet a password when prompted. Then enable passwordless sudo (required for the deploy script to install remotely):
echo "admin ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/admin
chmod 440 /etc/sudoers.d/adminThen log out:
exitNote: The deploy script automatically opens firewall ports 80 and 443 on the server (both
ufwandiptables). No manual firewall configuration is needed.
On your local development machine (Windows/Mac/Linux with .NET 8 SDK installed):
If don't have Git installed (or it's not in your system PATH). Here's how to fix it: Install Git for Windows
Go to https://git-scm.com/download/win
Download the 64-bit installer
Run the installer — the defaults are fine for most people, just click Next through the options
When done, close and reopen your Command Prompt (important — the old window won't see Git)
git clone https://github.com/GTMichelli-Dev/foundation.git
cd foundationWindows (Command Prompt):
deploy\publish.bat
Linux / Mac / Git Bash:
bash deploy/publish.shThis builds a self-contained Linux binary and creates deploy/foundation-deploy.tar.gz.
Run the deploy script with your domain and email:
Windows (Command Prompt):
deploy\deploy.bat admin@xxx.xxx.xxx.xxx --domain yourDNSName.scaledata.net --email admin@yourcompany.com
Linux / Mac / Git Bash:
bash deploy/deploy.sh admin@xxx.xxx.xxx.xxx --domain yourDNSName.scaledata.net --email admin@yourcompany.comEnter the admin user's password when prompted (twice — once for upload, once for install).
What this does automatically:
- Installs Nginx, Certbot, and dependencies
- Copies the application to
/opt/foundation- Obtains a free Let's Encrypt SSL certificate for your domain
- Configures Nginx as a reverse proxy with HTTPS and WebSocket support
- Creates and starts a systemd service
- Enables automatic SSL certificate renewal
Open your browser and go to:
https://yourDNSName.scaledata.net
You should see the Foundation dashboard.
Your site is live with HTTPS. The application will automatically start on server reboot.
For routine operations (updating the app, viewing logs, restarting the service), see the Server Management section in the main README.