A working HTTPS console and a secured administrator account.
1. Get a Linux VPS
In your hosting provider’s panel, create a fresh x86-64 Linux VPS with root access. Ubuntu 24.04 LTS or Debian 12+ are straightforward choices. Use a maintained OS release; ARM is not covered by the native installer.
For a small shop, start with 2 vCPU, 4 GB RAM and 60 GB SSD. Light use can run on 1 vCPU, 2 GB RAM and 20 GB disk, but leave room for the OS, payment history, backups and updates. This server does not run blockchain nodes.
Add your SSH public key, record the server IP and verify its SSH host fingerprint when you first connect. Never share a private SSH key. See the full requirements or the optional Docker installation.
2. Point your domains at the server
In your domain’s DNS panel, add these records. Replace example.com and the IP with your own.
| Hostname | Record | Purpose |
|---|---|---|
| merchant.example.com | A → VPS IPv4 | Your console |
| pay.example.com | A → VPS IPv4 | Customer checkout |
| api.example.com | A → VPS IPv4 | Your integrations |
Custom subdomain names are fine; the installer asks for them. Add AAAA records only if IPv6 actually reaches this VPS. An old AAAA record can break HTTPS validation even when the A record is correct.
Cloudflare: turn the proxy off (DNS-only) during installation. After setup and HTTPS validation finish, you can turn it back on. Use an encrypted connection to the origin, ideally Full (strict) with the valid certificate.
3. Check the firewall
Allow inbound TCP 80 and 443 in both the VPS firewall and the hosting provider’s firewall. Keep your actual SSH port open. Outbound HTTPS and DNS must work.
Do not expose PostgreSQL or internal application ports. The installer does not change firewall rules for you. Keep your current SSH session open while changing access rules so you do not lock yourself out.
4. Run the signed installer
Connect over SSH as root and run:
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)The setup asks for your domains, HTTPS contact email, default fiat currency and HTTP Basic username/password. You can choose that password or let setup generate it. Store it securely.
The installer verifies the signed release and sets up PostgreSQL, Nginx, HTTPS and system services. Wait for its success message. The Basic Auth credentials are a separate security layer, not your later console account.
Check first or resume an interrupted installation
Run the compatibility check before installing:
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --checkFix the reported error, then resume. Do not delete the installation directory or regenerate wallet keys.
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resume5. Register and secure your account
Open your merchant hostname, pass Basic Auth and register the first administrator with an email and strong password. Choose your language and timezone and review the linked terms and privacy policy.
In Settings → Account, enable two-factor authentication. In Settings → System, check regional currency/timezone defaults and live domains. Regional defaults affect new items; they do not rewrite existing projects.
The first eligible installation receives a one-time US$10 welcome credit automatically after registration and connection. Check Settings → Fees for billing status. How processing credits work →
6. Check before taking payments
Open Settings → Chain connections. Look at scanner readiness, not only node health. Keep independent fallback providers for the chains you will use.
Protect this as a hot-wallet server: restrict administrator access, install security updates and keep private backups off the VPS. A wallet export contains secrets; never upload it to a website or support ticket. Server security checklist →
You are ready to create a project and a store. Do a small real test for each payment method before advertising it to customers.