---
title: "Your First Hour: A Setup Checklist"
description: "RackHelm installs with almost nothing switched on. That is deliberate — a fresh install cannot accidentally charge a card, e-mail a customer or delete a hosting account. This checklist is the order to switch things on in, so each step…"
url: "https://rackhelm.com/documentation/your-first-hour-setup-checklist/"
updated: "2026-09-24"
category: Getting Started
---

# Your First Hour: A Setup Checklist

RackHelm installs with almost nothing switched on. That is deliberate — a fresh install cannot accidentally charge a card, e-mail a customer or delete a hosting account. This checklist is the order to switch things on in, so each step works by the time you test it. Later steps depend on earlier ones: you cannot test a payment before mail works, or provisioning before the queue runs.

## Before you start

You need the seeded owner account. The installer creates a Super Admin with the e-mail `admin@orbi-hosting.com` and a random 16-character password, printed once to the console during installation. If you did not keep it, reset it from the command line first.

> **Warning:** That address is the same on every install. Changing it and its password is step 1 for a reason.

## 1. Secure the owner account

Sign in as the seeded Super Admin, open `/settings`, change the e-mail address to your own, set a new password and enable two-factor authentication. Later, under **Security → MFA**, decide whether to force two-factor on staff roles.

## 2. Company details

Open **Platform Settings → General & System**. These values feed your invoices, your store metadata and the placeholder tokens in content pages, so do them properly once.

| Field | What it does |
| --- | --- |
| **Company Name**, **Company URL**, **Public Contact Email**, **Address** | Your trading identity. Used throughout the portal and on invoices. |
| **Default Landing Page** | What visitors see at the root domain: the store, or any published content page. The switch beneath decides whether `/` redirects there or serves the page in place. |
| **Store Template** | **Classic**, **Modern Dark** or **Modern Clean**. |
| **Registered Company Name**, **Company Registration Number**, **VAT Number**, **Registered Office Address** | Legal details for invoices and policy pages; name and address fall back to the trading ones if blank. |
| **SEO Title (Fallback)**, **SEO Description**, **SEO Open Graph Image (Fallback)** | Store-wide fallbacks for pages with no SEO of their own. |
| **Maintenance Mode (Disable Non-Staff Logins)** | Exactly what the label says. Useful while you finish this checklist; a **Maintenance Message** field sits beneath it. |
| **Application Error Notification Email(s)** | Comma-separated addresses for error alerts. Set at least one. |

> **Tip:** Behind a load balancer or Cloudflare, fill in **Trusted Proxies** on this screen. Without it every customer appears to come from the proxy's address, which breaks fraud screening and authentication logs.

## 3. Branding

Open **Platform Settings → Theme Settings** and upload the **Favicon**, the **Navigation Bar Logo** and the **Minimized Logo** used when the sidebar is collapsed. If your logo already contains your name, tick the option to hide the company name beside it. The light and dark colour palettes and the footer text are on the same screen.

## 4. Mail — do this before anything that sends

Open **Platform Settings → Mail Settings**. Mail is configured in the database, not only in `.env`. Choose **Mail Type** (**SMTP** or **PHP Mail Function (Sendmail)**), set the required **Override From Address** and **Override From Name**, and for SMTP fill in **Host**, **Port**, **Username**, **Password** and **Encryption** (TLS, SSL or none). Save, then use **Send Test Email To** and confirm the message arrives.

> **Note:** The password field never loads with the stored value in it. Saving it empty keeps the existing password rather than clearing it.

![The Mail Settings screen showing the mail type selector, SMTP fields and the test-send box](/wp-content/uploads/rackhelm-docs/getting-started-mail-settings.png)
Send the test message before moving on. Almost everything later in this checklist assumes mail works.

## 5. A payment gateway

Open **Billing → Payment Gateways** and add one. Four drivers are available — **Stripe**, **PayPal**, **Square** and **Bank Transfer** — and each may be configured once, so you cannot create two Stripe rows.

Choose the provider, set **Mode** to **Sandbox / Test** while you are still setting up, enter the provider's keys and save. Leave **Enable Gateway** off until the keys are right.

## 6. Billing preferences

Open **Billing → Settings** and decide:

- **Enable User Credit Deposits** — whether customers may top up a balance. Off by default.
- **Merge Same-Day Invoices** — combine one customer's invoices falling due on the same day.
- **PDF Template** — the invoice layout.
- **Global Late Fee Defaults** — **Enable Global Late Fees**, **Fee Type**, **Fee Amount / %** and **Grace Period (Days)**. Products and billing cycles can override these.
- **Global Affiliate Settings** — **Default Commission Type** and **Global Commission Amount / %**.

## 7. Billing cycles

Open **Catalogue → Billing Cycles**. Each cycle needs a **Months** value — a whole number of 1 or more, unique across all cycles — and a **Label** such as "Monthly" or "Annually". Create the cycles you sell on before you create products, because a product's prices are entered per cycle.

## 8. One product group and one product

1. Open **Catalogue → Catalogue & Groups** and use **New Group**. The group is what the store lists first.
2. Use **New Product** and work through the five tabs: **General** (name, description, group, active, stock), **Pricing** (a price per billing cycle plus any setup fee), **Provisioning** (the integration binding, step 9), **Options** (custom fields, variables and addons) and **Store & SEO** (store visibility, highlighting and metadata).
3. Visit `/store` as a customer would and confirm the product appears at the price you expect.

> **Note:** Creating and editing a *group* goes through a controller that requires the `staff_panel` ability, which is not a seeded permission. Do this step as a Super Admin. Products themselves need only `edit_products`.

## 9. An integration

This is two separate steps, and missing the second is the most common setup mistake.

1. Open **Integrations**, pick your panel or registrar, enter its credentials and use the **Test** buttons until the connection succeeds.
2. Go back to the product, open its **Provisioning** tab, bind it to that panel and make sure the binding is **active**. A product with credentials configured but no active binding never provisions.

## 10. Automation: the cron entry and the queue

### The scheduler

The installer configures Horizon under supervisor, but it does not add the scheduler's cron entry. Add it as the web user:

```bash
* * * * * cd /var/www/rackhelm && php artisan schedule:run >> /dev/null 2>&1
```

### The queue worker

Provisioning, payment attempts, PDF generation and outbound e-mail are all queued, so if the worker is stopped everything silently piles up. Confirm it is running:

```bash
supervisorctl status rackhelm-horizon
```

### Turn the schedules on

Every system schedule ships **disabled**. Open **Schedules** and enable the ones you need, with the seeded timings shown below.

![The System Schedules list showing each recurring job with its enabled state and cron timing](/wp-content/uploads/rackhelm-docs/getting-started-schedules-list.png)
Every row here starts switched off. Nothing recurring happens until you turn them on.

| Schedule | Seeded timing |
| --- | --- |
| **Provision Orders** — nothing is provisioned without it | Every minute |
| **Generate Invoices** — raises renewal invoices | Daily at midnight |
| **Process Due Invoices** — attempts automatic payment | Daily at midnight |
| **Invoice Reminders** — chases unpaid invoices | Daily at midnight |
| **Process Cancellations** — terminates cancelled services | Daily at midnight |
| **Suspend Overdue Services** — and opens a ticket | Daily, 7 days overdue |
| **Terminate Overdue Services** | Daily, 14 days overdue |
| **Email to Tickets** — inbound mail becomes tickets | Every 5 minutes |
| **Apply Late Fees** | Daily, 7 days |
| **Auto Close Tickets** | Daily, 7 days |
| **Notify Expiring Cards** | Daily at midnight |
| **Mass Mailer** — sends scheduled campaigns | Daily at midnight |
| **Domain Updater** — completes in-flight eNom domain transfers | Daily at midnight |

> **Warning:** Check the **Days** option on **Generate Invoices** before you enable it. The default look-ahead list is `14,7,1,-1,-7,-14` and the largest value is what sets the advance window. Saving that field empty collapses the window to zero, and renewals then only bill on the exact due date.

## 11. Roles and staff

Open **Users & Roles → Roles & Permissions**. Five roles are built in: Super Admin, Administrator, Billing Manager, Support Agent and Client.

Administrator receives every permission except a deliberate deny-list. Before handing that role out, know what it withholds: editing and deleting roles, company settings, e-mail routes, schedules, client impersonation, notifications and their delivery log, and Custom APIs. Grant any of those individually if someone needs them.

Create your staff users under **All Users** and give each one a role. Admin access comes from the role's **Staff role** switch, not from any single permission.

## 12. Content, support and security

The last pass, in whatever order suits you:

- **Platform Settings → Pages** — edit the seeded legal templates to match your business and have a solicitor check them before publishing. Page groups own the URL prefix, so settle that before links accumulate.
- **Platform Settings → Navigation** — build your menus if the defaults do not suit.
- **Platform Settings → Country Settings** — enable the countries you sell to.
- **Platform Settings → User Onboarding** — the address and payment-method wizard for new customers.
- **Support → Departments**, **Ticket Settings** and **Email Routing** — routing targets, ticket numbering, upload rules and the mailboxes that become tickets.
- **Security → Captcha Protection**, **MFA**, **Password Policy** and **Fraud Protection**.

## 13. Place a test order

The only real proof that the chain works. With your gateway in sandbox mode:

1. Register a test customer and buy the product you created, using the gateway's test card.
2. Confirm an invoice was raised, marked paid, and that its PDF downloads.
3. Watch **Users & Roles → Pending Provisioning**: the item should reach provisioned within a minute or two.
4. Confirm the account, server or domain really exists on the remote panel.
5. Sign in as the test customer and confirm the service appears under **All Services** with a working management link.

When all five succeed, switch the gateway to live mode and turn off maintenance mode.

## Troubleshooting

| Symptom | Cause and fix |
| --- | --- |
| Nothing scheduled ever runs. | Either the cron entry is missing, or every schedule is still disabled — they all ship off. Check both. |
| Schedules are enabled but jobs never complete. | The scheduler only queues work; Horizon has to run it. Check `supervisorctl status rackhelm-horizon` and the Queue Monitor. |
| A schedule silently stops working after you edit it. | An invalid cron expression is skipped and logged rather than registered. Re-check the minute, hour, day, month and weekday fields. |
| The test order is paid but nothing is provisioned. | Work the three conditions in order: is there a **paid** invoice on the order, does the product have an **active** integration, and is **Provision Orders** enabled? They are explained in [How RackHelm fits together](/docs/how-rackhelm-fits-together/). |
| The test e-mail sends but customers get nothing. | Customer mail is queued. A working test send proves the SMTP credentials, not that the worker is running. |
| The product does not appear in the store. | Both the product and its group must be active and included in the store. Check the product's **Store & SEO** tab and the group's store setting. |
