docs: verify against real WHP + capture real screenshots
Discovery against the demo account on whp01 surfaced several inaccuracies: - Cache is Valkey (Redis wire-compatible), not Redis or Memcached. No Memcached is offered as a separate service. - Site Monitoring is the sidebar label (not 'AI Monitor'). - 'Add a domain' has no Primary/Add-on distinction. - Sites form: 'Container Type' (not 'Site type'), Number of Containers (1-10 for horizontal scaling), CPU per Container (default 0.25), Memory per Container (default 256MB), SSL inline on the same form. - Backups: default retention 5 days / 10 backups; on-demand + scheduled; S3 backup targets are visible and configurable. - Email: per-domain settings live behind 'Setup Instructions' on the Email page; mail server hostname is on the Dashboard (per-server, e.g. mail01.cloud-hosting.io), not per-domain. Also reworked the screenshot pipeline: - New shots.config.ts targets the real index.php?page=... URLs - Added redactSensitive() step that runs before each screenshot to swap server names, IPs, mail hostnames, and demo-user-isms with neutral placeholders. This keeps docs portable across the fleet. - Hides .brand-full and .navbar-text (top-bar server identifier and Welcome greeting). - Captured 9 real WHP screenshots; removed stale placeholders.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Create a site
|
||||
description: Spin up a PHP, Node, or static HTML site on a domain you've added to WHP.
|
||||
description: Spin up a containerized site on a domain you've added to WHP.
|
||||
sidebar:
|
||||
order: 2
|
||||
---
|
||||
@@ -10,10 +10,12 @@ import SignIn from '~/content/partials/signing-in.mdx';
|
||||
import Hostnames from '~/content/partials/service-hostnames.mdx';
|
||||
import Support from '~/content/partials/support-link.mdx';
|
||||
|
||||
Every site on WHP runs in one or more containers. The Sites page lets you pick a container type (PHP, Node, static HTML, or one of the other options on the dropdown), bind one or more domains, and set how much CPU and RAM each container gets.
|
||||
|
||||
## Before you start
|
||||
|
||||
- A **domain already added** to your account ([Add a domain](/whp/how-to/add-a-domain/) covers that).
|
||||
- Decide what kind of site you're building: **PHP**, **Node**, or **static HTML**.
|
||||
- Decide what kind of site you're building. Common container types: **PHP** (WordPress, Laravel, most CMSes), **Node** (custom apps), **Static HTML** (prebuilt bundles from Astro, Hugo, Eleventy, etc.).
|
||||
- About 5 minutes.
|
||||
|
||||
## Sign in to WHP
|
||||
@@ -24,33 +26,33 @@ import Support from '~/content/partials/support-link.mdx';
|
||||
|
||||
<Steps>
|
||||
|
||||
1. From the sidebar, open **Sites → Add Site**.
|
||||

|
||||
1. In the sidebar, click **Sites**.
|
||||

|
||||
|
||||
2. Pick the **site type**:
|
||||
- **PHP** — best for WordPress, Joomla, Laravel, and most off-the-shelf CMSes.
|
||||
- **Node** — for custom apps you build and deploy (Express, Next.js in standalone mode, Fastify, etc.).
|
||||
- **Static HTML** — for prebuilt site bundles from tools like Astro, Hugo, Eleventy, or Jekyll. No runtime; just files.
|
||||
2. Fill in the **Create New Site** form on the right:
|
||||
- **Site Name** — a friendly label for you to recognise the site later.
|
||||
- **Primary Domain or Subdomain** — pick from the dropdown of domains you've already added.
|
||||
- **Container Type** — PHP, Node, static HTML, etc.
|
||||
- **Number of Containers** — `1` is the right answer for most sites. Bump this up (1–10) if you need to scale a busy site horizontally; WHP load-balances traffic across the replicas.
|
||||
- **Additional Domains/Subdomains (Optional)** — bind extra domains to the same site if you want them to serve the same content.
|
||||
- **CPU per Container (cores)** — defaults to `0.25`. Raise this only if you need to.
|
||||
- **Memory per Container (MB)** — defaults to `256`. Raise this if your app needs more RAM.
|
||||
|
||||
3. Pick the **domain**. The dropdown lists domains you've already added.
|
||||
3. Scroll down to **SSL/HAProxy Configuration**. Before you enable HTTPS, make sure your domain's DNS already points to our server's IP — SSL certificates can't be issued for domains that aren't pointed correctly. Then check **Enable HTTPS** to have us request a Let's Encrypt certificate.
|
||||
|
||||
4. (PHP only) Pick the **PHP version**.
|
||||
|
||||
5. (Node only) Pick the **Node version** and the **start command** (typically `npm run start`).
|
||||
|
||||
6. Click **Create site**. WHP provisions the container — usually under a minute. You'll see the new site in the **Sites** list when it's ready.
|
||||
4. Click **Create Site**. WHP provisions the container(s) — usually under a minute. The new site shows up in the **Manage Sites** list on the left of the page.
|
||||
|
||||
</Steps>
|
||||
|
||||
## Where your files go
|
||||
|
||||
When you connect via SFTP, your account home shows one folder per domain. Inside each domain folder, the layout depends on the site type:
|
||||
When you connect via SFTP, your account home (`/docker/users/<your-user>/`) shows one folder per domain. Inside each domain folder, the layout depends on the container type:
|
||||
|
||||
| Site type | Layout | Docroot is... |
|
||||
| ------------ | ----------------------------------------------------- | ------------------------------------------------------ |
|
||||
| PHP | `public_html/`, `logs/`, `crontab` | `public_html/` |
|
||||
| Node | `app/`, `logs/` | Whatever your start command serves; we run it from `app/` |
|
||||
| Static HTML | files directly (e.g., `index.html`, `assets/`) | The domain folder itself |
|
||||
| Container type | Layout inside the domain folder | Docroot is... |
|
||||
| -------------- | ------------------------------------------ | -------------------------------------------------------- |
|
||||
| PHP | `public_html/`, `logs/`, `crontab` | `public_html/` |
|
||||
| Node | `app/`, `logs/` | Whatever your start command serves; we run it from `app/`|
|
||||
| Static HTML | files directly (e.g., `index.html`, `assets/`) | The domain folder itself |
|
||||
|
||||
Upload your files to the right place and the site picks them up immediately.
|
||||
|
||||
@@ -63,16 +65,18 @@ Upload your files to the right place and the site picks them up immediately.
|
||||
Open your domain in a browser. You should see your site, or the default "no content yet" placeholder if you haven't uploaded files. For Node sites, give it 15–30 seconds after creation for the process to start.
|
||||
|
||||
<Aside type="tip">
|
||||
Static HTML sites are the fastest path if your toolchain produces a bundle (Astro, Hugo, Eleventy, etc.) — you skip the runtime entirely.
|
||||
Static HTML is the fastest path if your toolchain produces a bundle (Astro, Hugo, Eleventy, etc.) — you skip the runtime entirely.
|
||||
</Aside>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**You see a default "no content" page.** Upload your files via SFTP — for PHP into `public_html/`, for Node into `app/`, for static directly into the domain folder.
|
||||
|
||||
**Node site returns 502.** Check that your start command runs successfully locally, and that it binds to the port shown on the site's WHP detail page (we set it via an env var; see the site's environment in WHP).
|
||||
**Node site returns 502.** Check that your start command runs successfully locally, and that it binds to the port WHP exposes via env var to your container.
|
||||
|
||||
**PHP site shows a blank page or 500.** Check your site's error log (sidebar → Logs → pick the site). Common cause: a syntax error in `index.php` or a missing PHP extension — request extensions via a [support ticket](https://secure.anhonesthost.com/submitticket.php) if needed.
|
||||
**PHP site shows a blank page or 500.** Check **Sites → your site → Logs** (or the `logs/` folder in SFTP). Common cause: a syntax error in `index.php` or a missing PHP extension — open a [support ticket](https://secure.anhonesthost.com/submitticket.php) if you need a non-default extension enabled.
|
||||
|
||||
**SSL won't issue.** The "Important: ensure your domain is pointed to our server" warning means DNS hasn't propagated yet, or it's pointed somewhere else. Re-check with `dig` and retry.
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
Reference in New Issue
Block a user