Skip to content
Impulse SoftwareDOCS
Get modules

ImpulseObjects

Adding a storage server

Have the module provision a RustFS storage server on Vultr, Hetzner, DigitalOcean, Linode, Amazon EC2, Azure, Google Cloud or Proxmox VE — or turn a server you already own into one with a one-time installer.

Time: ~15 min · Requires: step 1 complete

Every ImpulseObjects server runs RustFS, an S3-compatible object store. RustFS is an operator-side detail that is never shown to customers: they get S3-compatible buckets, a dashboard and access keys. RustFS upgrades are applied manually.

There are two ways to add a server. Both live under Infrastructure:

Path Use when
+ Provision New Server You want the module to create a fresh VPS through your provider’s API and set it up automatically — RustFS, Nginx, a Let’s Encrypt certificate and the Admin Proxy. The default and recommended path.
+ Add Existing Server You already have a server (any provider, or bare metal) and want the module to turn it into a storage node. The module builds a one-time installer you run on the box.

On the Standard tier you can have one server in total; adding a second needs a license.

From the addon, open Infrastructure → + Provision New Server. Fill in:

  • VPS Provider — pick from your configured providers.
  • Provider Region — where the VPS is created. Choosing it fills in the server name and hostname.
  • Server Name — admin-facing label, e.g. US Central — Dallas.
  • Hostname (FQDN) — becomes the customer’s S3 endpoint, e.g. s3.us-central.example.com. It must sit in a zone on your DNS provider. The region the server belongs to is read from the hostname using the Hostname Template under Settings → DNS & TLS; customers pick a region at order time and orders are spread across that region’s servers.
  • Join an existing region pool (optional) — puts the new server in the same region as servers you already have; the hostname is adjusted (s3 → s3-2) so it stays unique.
  • VPS Plan (Compute) — click Choose Plan to pick from the provider’s plan catalog. The list only shows plans with at least 4 GB RAM.
  • Block Storage — size of a volume to attach (Vultr, Hetzner, DigitalOcean and Linode). Prices come from the provider’s API. The volume is mounted as the RustFS data directory, /mnt/rustfs-data.
  • Advanced options — Max Tenants (how many customer services can land on this server; 0 = unlimited) and Mark as default for this region (default servers are picked first for new orders).

Click Provision Server. The flow takes 5–10 minutes:

  1. The provider API creates the VPS. The provisioning task (every 2 minutes, on ImpulseCore’s cron runner) attaches block storage, sets reverse DNS and creates the hostname’s A/AAAA records at your DNS provider.
  2. On first boot the VPS fetches its setup from your WHMCS and installs RustFS, Nginx, the Admin Proxy and certbot, with a firewall that admits only your WHMCS server’s IPs to the Admin Proxy.
  3. Certbot requests a Let’s Encrypt certificate through a Cloudflare DNS-01 challenge. If that fails — no Cloudflare token, a zone that isn’t on Cloudflare, or slow DNS propagation — the server comes up with a self-signed certificate until you reissue it.
  4. The provisioning task checks the Admin Proxy (/admin/v1/health) and the server’s own setup report; once setup has finished, the server flips to online and starts taking orders.

For a server you already own, open Infrastructure → + Add Existing Server:

  1. Fill in the Hostname (FQDN) (point an A/AAAA record for it at the server before you run the installer), the Region label and code, and the Admin proxy port (default 9099). Under Advanced you can set the server name, its IPv4/IPv6 addresses, or an Admin Proxy secret of your own.
  2. Click Provision & build installer. The next page offers Download installer (.sh) or Show / copy script.
  3. Run it on the server as root: sudo bash impulseobjects-install-<host>.sh. It installs the Admin Proxy and sets the box up as a full storage node — RustFS, Nginx and TLS — on the server’s local disk (it never formats an attached volume). The token embedded in the script is single-use and expires about 2 hours after you generate it.
  4. Click 📶 Test admin proxy. Once it answers, open the server’s details (✎ Edit / details) and tick Active so customer orders can land on it.

No SSH from WHMCS is involved, and no secrets are copied by hand.

On Infrastructure → Manage Servers, the server’s row should show:

  • Status: online.
  • Tenants: 0 against your Max Tenants.

From the row’s menu, 📶 Test admin proxy confirms WHMCS can reach the box, and ✎ Edit / details shows the attached block storage.

If the server is stuck or failed, choose 📜 View bootstrap log from the row’s menu. The log is read through the Admin Proxy; if the proxy isn’t answering yet, you see the output captured during provisioning. The most common stalls are a Cloudflare API token missing Zone:DNS:Edit or Zone:Zone:Read, and hostnames that don’t resolve yet. See Troubleshooting.