docs(local-dev): add 'Local development' section + PHP 8.5 support
Build and deploy / deploy (push) Successful in 23s

Adds /whp/local-dev/ with three articles documenting the public cloud
container images on repo.anhonesthost.net/cloud-hosting-platform/:

- overview: dev/prod parity pitch, prerequisites, table of images,
  link to the Gitea org, and a note that this is for customers
  comfortable with Docker (the hosted side needs none of this).
- php-apache: cloud-apache-container (cac). PHP 7.4 through 8.5 side
  by side, default 8.3, AlmaLinux 9 + Apache mod_ssl. Documents
  image tags, local-dev.sh flags, manual docker command, bind-mount
  layout, WordPress install, helper scripts (instance_start /
  instance_stop / instance_logs / instance_db_info), and cleanup.
- node: cloud-node-container (cnoc). Node 18/20/22, default 20,
  AlmaLinux 9 + Nginx (SSL + HTTP→HTTPS redirect) + PM2 +
  Memcached. Same shape: tags, flags, manual docker, where code
  goes (user/app/), logs layout, helpers, cleanup.

Sidebar gains a 'Local development' group between Site Builder and
Reference. Section redirect /whp/local-dev/ -> overview added to
the section-landing redirect set.
This commit is contained in:
2026-05-18 12:01:49 -07:00
parent aeb033bae5
commit 69439afe4a
4 changed files with 379 additions and 0 deletions
@@ -0,0 +1,50 @@
---
title: Develop locally with our containers
description: Run the same Apache/PHP and Node containers locally that we use to host your site in production.
sidebar:
order: 1
---
import { Aside } from '@astrojs/starlight/components';
import Support from '~/content/partials/support-link.mdx';
The same container images we use to host your site in production are published as open-source images you can pull and run on your laptop. If you're comfortable with Docker, this gives you a development environment that matches production exactly — same OS, same Apache/Nginx config, same PHP or Node version.
## Why use our containers locally
- **Dev/prod parity.** Anything that runs in the container on your machine will run the same way in production. No "works on my Mac" surprises.
- **Quick start.** Each container ships a `local-dev.sh` script that handles the Docker incantation, volume layout, and helper commands.
- **No account required.** The images are public — pull and run.
<Aside type="note">
This page is for customers who are comfortable with Docker. You don't need to use these images to host with us — the WHP panel handles everything for the hosted version. This is for **local development** only.
</Aside>
## Available containers
| Stack | Image | Use case |
|---|---|---|
| **PHP + Apache** | `repo.anhonesthost.net/cloud-hosting-platform/cac` | WordPress, Laravel, traditional PHP apps |
| **Node + Nginx** | `repo.anhonesthost.net/cloud-hosting-platform/cnoc` | Express, custom Node apps, PM2-managed processes |
Both images live in our public Gitea organisation at [repo.anhonesthost.net/cloud-hosting-platform/](https://repo.anhonesthost.net/cloud-hosting-platform/) — the source Dockerfiles, build configs, and helper scripts are all there too. Issues and PRs welcome.
## Prerequisites
- **Docker** (or a compatible runtime like Podman / OrbStack / Rancher Desktop). Docker Desktop on Mac/Windows or `docker.io` on Linux both work.
- A terminal where you can run `git`, `docker`, and basic shell scripts.
- Ports `80` and `443` free on your machine (the local-dev scripts bind these by default; both can be overridden with flags).
## Pick your stack
- **[PHP + Apache locally](/whp/local-dev/php-apache/)** — for WordPress and any PHP application.
- **[Node + Nginx locally](/whp/local-dev/node/)** — for Express, Next.js standalone, or any Node app.
## Related
- [Create a site](/whp/how-to/create-a-site/) — how the same images run as hosted sites in WHP.
- [What is containerized hosting?](/whp/getting-started/what-is-containerized-hosting/)
## Still stuck?
<Support />