Installing Pluton PRO on Linux Servers
This guide covers installing Pluton PRO on headless Linux servers without a desktop environment.
Prerequisites
- A valid Pluton PRO license key
- Linux server (x86_64 or arm64 architecture)
- Root/sudo access
- systemd (most modern Linux distributions)
- curl
Interactive Installation
curl -sSL "https://dl.usepluton.com/server-pro/scripts/install.sh?license=YOUR_LICENSE_KEY" | sudo bash
Replace YOUR_LICENSE_KEY with your actual Pluton PRO license key. The license key is validated when downloading the installer.
Follow the prompts to configure:
- License key (for storage and future upgrades)
- Server port (default: 5173)
- Max concurrent backups (default: 2)
- Encryption key (min 12 characters)
- Admin username
- Admin password
Non-Interactive Installation
For automated deployments, provide all configuration via command line:
curl -sSL "https://dl.usepluton.com/server-pro/scripts/install.sh?license=YOUR_LICENSE_KEY" | sudo bash -s -- \
--license "YOUR_LICENSE_KEY" \
--port 5173 \
--max-concurrent 2 \
--encryption-key "your-secure-encryption-key" \
--user admin \
--password "your-secure-password" \
--non-interactive
Installation with Config File
Create a configuration file (e.g., /tmp/pluton.env):
PLUTON_LICENSE_KEY=your-license-key
PLUTON_ENCRYPTION_KEY=your-secure-encryption-key
PLUTON_USER_NAME=admin
PLUTON_USER_PASSWORD=your-secure-password
SERVER_PORT=5173
MAX_CONCURRENT_BACKUPS=2
Then install:
curl -sSL "https://dl.usepluton.com/server-pro/scripts/install.sh?license=YOUR_LICENSE_KEY" | sudo bash -s -- \
--config /tmp/pluton.env --non-interactive
Network Configuration
Pluton PRO requires two ports for full functionality:
| Port | Purpose |
|---|---|
| 5173 | Web interface (configurable) |
Firewall Configuration
# UFW (Ubuntu/Debian)
sudo ufw allow 5173/tcp
# firewalld (RHEL/CentOS/Fedora)
sudo firewall-cmd --permanent --add-port=5173/tcp
sudo firewall-cmd --reload
File Locations
| Path | Description |
|---|---|
/opt/pluton/ | Application binaries |
/var/lib/pluton/ | Data directory (database, logs, backups) |
/etc/pluton/pluton.env | Credentials and license (secured, mode 600) |
/var/lib/pluton/config/config.json | Non-sensitive configuration |
/var/lib/pluton/logs/ | Application logs |
Custom Domain with Reverse Proxy
To access Pluton PRO via a custom domain (e.g., backups.example.com), set up a reverse proxy that forwards traffic to Pluton's local port.
Nginx
First Install Nginx:
sudo apt install nginx # Debian/Ubuntu
sudo dnf install nginx # RHEL/Fedora
And then create /etc/nginx/sites-available/pluton:
server {
listen 80;
server_name backups.example.com;
location / {
proxy_pass http://127.0.0.1:5173;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
client_max_body_size 0;
}
Enable the site and reload:
sudo ln -s /etc/nginx/sites-available/pluton /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Caddy (Alternative)
Caddy provides automatic HTTPS with no extra configuration.
First install Caddy:
sudo apt install caddy # Debian/Ubuntu
sudo dnf install caddy # RHEL/Fedora
Then create /etc/caddy/Caddyfile:
backups.example.com {
reverse_proxy 127.0.0.1:5173
}
Reload with sudo systemctl reload caddy. Caddy automatically provisions and renews SSL certificates.
Apache (Alternative)
First install Apache:
sudo apt install apache2 # Debian/Ubuntu
sudo dnf install httpd # RHEL/Fedora
Enable required modules and create /etc/apache2/sites-available/pluton.conf:
sudo a2enmod proxy proxy_http proxy_wstunnel
<VirtualHost *:80>
ServerName backups.example.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5173/
ProxyPassReverse / http://127.0.0.1:5173/
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:5173/$1 [P,L]
</VirtualHost>
sudo a2ensite pluton && sudo systemctl reload apache2
SSL Certificate with Let's Encrypt
If using Caddy, SSL is automatic — no extra steps needed.
For Nginx or Apache, use Certbot:
# Install certbot
sudo apt install certbot python3-certbot-nginx # Nginx
sudo apt install certbot python3-certbot-apache # Apache
# Obtain and install certificate
sudo certbot --nginx -d backups.example.com # Nginx
sudo certbot --apache -d backups.example.com # Apache
Certbot automatically configures SSL and sets up auto-renewal via a systemd timer. Verify renewal works:
sudo certbot renew --dry-run
Ensure your domain's DNS A record points to your server's public IP address before requesting a certificate.
Uninstalling
curl -sSL https://dl.usepluton.com/server-pro/scripts/uninstall.sh | sudo bash
For automated removal including all data:
curl -sSL https://dl.usepluton.com/server-pro/scripts/uninstall.sh | sudo bash -s -- \
--remove-data --non-interactive
Or use the local uninstall script:
sudo /opt/pluton/uninstall.sh
Managing the Service
# Check status
sudo systemctl status pluton
# Stop service
sudo systemctl stop pluton
# Start service
sudo systemctl start pluton
# Restart service
sudo systemctl restart pluton
# View logs
sudo journalctl -u pluton -f
Updating
curl -sSL "https://dl.usepluton.com/server-pro/scripts/install.sh?license=YOUR_LICENSE_KEY" | sudo bash -s -- --upgrade
This preserves your credentials, license, and data while updating the binaries.
Upgrading from Pluton (Free)
If you have an existing Pluton installation and want to upgrade to Pluton PRO, see Upgrading to Pluton PRO.