← All tutorials

TUTORIAL 1 / 8

From a fresh VPS to your console.

Choose a server, connect three hostnames and finish your first sign-in.

What you will have

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.

HostnameRecordPurpose
merchant.example.comA → VPS IPv4Your console
pay.example.comA → VPS IPv4Customer checkout
api.example.comA → VPS IPv4Your 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) --check

Fix 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) --resume

5. 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.