diff --git a/public/images/app/stack/ddev.svg b/public/images/app/stack/ddev.svg new file mode 100644 index 0000000..03abca1 --- /dev/null +++ b/public/images/app/stack/ddev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/app/stack/docker.svg b/public/images/app/stack/docker.svg new file mode 100644 index 0000000..e68a661 --- /dev/null +++ b/public/images/app/stack/docker.svg @@ -0,0 +1 @@ +Docker \ No newline at end of file diff --git a/public/images/app/stack/laragon.svg b/public/images/app/stack/laragon.svg new file mode 100644 index 0000000..92f1b00 --- /dev/null +++ b/public/images/app/stack/laragon.svg @@ -0,0 +1 @@ +Laragon \ No newline at end of file diff --git a/public/images/app/stack/wsl2.svg b/public/images/app/stack/wsl2.svg new file mode 100644 index 0000000..9387b90 --- /dev/null +++ b/public/images/app/stack/wsl2.svg @@ -0,0 +1 @@ +Windows \ No newline at end of file diff --git a/public/images/app/stack/xampp.svg b/public/images/app/stack/xampp.svg new file mode 100644 index 0000000..d240e00 --- /dev/null +++ b/public/images/app/stack/xampp.svg @@ -0,0 +1 @@ +XAMPP \ No newline at end of file diff --git a/public/wsl2.md b/public/wsl2.md index b3b49c8..860c4b6 100644 --- a/public/wsl2.md +++ b/public/wsl2.md @@ -15,16 +15,31 @@ One Ansible playbook installs PHP, Apache, MariaDB, Composer, Node.js and phpMyA - [Read the docs](https://docs.dotkernel.org/development/v2/terminal/) - [View on GitHub](https://github.com/dotkernel/development/tree/alma-linux-10) -| | | -| --- | --- | -| Distro | AlmaLinux 10 | -| Provisioning | Ansible | -| Host | WSL 2 or bare metal | +| | | +|--------------|---------------------| +| Distro | AlmaLinux 10 | +| Provisioning | Ansible | +| Host | WSL 2 or bare metal | ## Terminal to running stack Terminal -> WSL 2 -> AlmaLinux -> Ansible -> Ready. +## Comparison with Popular Stacks + +Here is a direct comparison between WSL2, XAMPP, Laragon, DDEV, and Docker to help you choose the best development environment for your workflow. + +| Feature | WSL2 | XAMPP | Laragon | DDEV | Docker | +|---------------------------|------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Primary Use Case** | Running a real Linux environment on Windows via a managed VM. | Quick all-in-one Apache/MariaDB/PHP/Perl stack for local development. | Fast, portable PHP/Node development stack on Windows. | Per-project PHP/CMS (and Node.js) development environments built on Docker. | General-purpose containerization for any tech stack. | +| **Core Architecture** | Real Linux kernel in a lightweight utility VM; distros run as isolated containers inside it. | Native executables run as host processes (optionally as services). | Portable native Windows binaries; doesn't use Windows Services. | Orchestration layer that generates and runs Docker containers per project, plus a shared router. | Containers sharing the host kernel on Linux; on Windows/macOS, Docker Desktop runs the engine inside a Linux VM (WSL2/Hyper-V or Apple Virtualization). | +| **Depends On** | Windows virtualization support. | Nothing. | Nothing. | A Docker provider (Docker CE, Docker Desktop, OrbStack, Rancher, etc.); on Windows, usually WSL2. | Native on Linux; WSL2 or Hyper-V on Windows; a VM on macOS. | +| **OS Support** | Windows 10 (1903+, build 18362+), Windows 11, Windows Server. | Windows and Linux (PHP up to 8.2.12); macOS build lags (PHP up to 8.2.4); XAMPP-VM unsupported on Apple Silicon. | Windows only. | macOS, Windows (WSL2 or traditional), Linux, GitHub Codespaces. | Windows, macOS, Linux. | +| **Resource Usage** | Low to Medium (small footprint at idle; memory grows dynamically, capped by default at a share of host RAM). | Low (runs directly on host processes). | Very Low (lightweight, no background services). | Medium to High (Docker overhead plus several containers per project; varies by provider). | Low on native Linux; Medium to High with Docker Desktop's VM. | +| **Environment Isolation** | Partial (separate Linux filesystem and kernel, but deliberately integrated with Windows files, networking, and executables). | None (shared global install, ports, and PHP version). | Self-contained install, no per-project isolation (projects share services and the active PHP version). | Container-level per project (own web and DB containers), with a shared router on ports 80/443. | Container-level (process, filesystem, and network namespaces; shared kernel, so weaker than a VM). | +| **Production Parity** | Depends on what you install (it's a Linux OS, not a stack). | Low (Windows paths and config differ from production; vendor states it's not for production). | Low (Windows paths differ from Linux servers). | High if versions are matched (standardized Linux containers, not your production images). | High; identical only if the exact same image is deployed to production. | +| **License / Cost** | Free (part of Windows). | Free, open source. | Laragon 6 free; versions 7+ require a paid license. | Free, open source. | Docker Engine free and open source; Docker Desktop requires a paid subscription for larger businesses. | + ## The same OS family your servers run AlmaLinux is a RHEL-compatible distribution, so the packages, package manager and service conventions you use locally - `dnf`, `systemd` and the rest - are the ones you will see again in staging and production. diff --git a/src/App/assets/images/stack/ddev.svg b/src/App/assets/images/stack/ddev.svg new file mode 100644 index 0000000..03abca1 --- /dev/null +++ b/src/App/assets/images/stack/ddev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App/assets/images/stack/docker.svg b/src/App/assets/images/stack/docker.svg new file mode 100644 index 0000000..e68a661 --- /dev/null +++ b/src/App/assets/images/stack/docker.svg @@ -0,0 +1 @@ +Docker \ No newline at end of file diff --git a/src/App/assets/images/stack/laragon.svg b/src/App/assets/images/stack/laragon.svg new file mode 100644 index 0000000..92f1b00 --- /dev/null +++ b/src/App/assets/images/stack/laragon.svg @@ -0,0 +1 @@ +Laragon \ No newline at end of file diff --git a/src/App/assets/images/stack/wsl2.svg b/src/App/assets/images/stack/wsl2.svg new file mode 100644 index 0000000..9387b90 --- /dev/null +++ b/src/App/assets/images/stack/wsl2.svg @@ -0,0 +1 @@ +Windows \ No newline at end of file diff --git a/src/App/assets/images/stack/xampp.svg b/src/App/assets/images/stack/xampp.svg new file mode 100644 index 0000000..d240e00 --- /dev/null +++ b/src/App/assets/images/stack/xampp.svg @@ -0,0 +1 @@ +XAMPP \ No newline at end of file diff --git a/src/Page/templates/page/wsl2.html.twig b/src/Page/templates/page/wsl2.html.twig index 171df7a..473ea2d 100644 --- a/src/Page/templates/page/wsl2.html.twig +++ b/src/Page/templates/page/wsl2.html.twig @@ -22,6 +22,12 @@ .spec-table tbody tr:last-child th, .spec-table tbody tr:last-child td { border-bottom: 0; } .spec-table tbody th { font-weight: 500; color: var(--text-muted); white-space: nowrap; } .spec-table td { color: var(--text); } + .spec-table--compare { min-width: 1100px; } + .spec-table--compare tbody th { white-space: normal; min-width: 150px; position: sticky; left: 0; background: var(--surface-2); } + .spec-table--compare thead th:first-child { position: sticky; left: 0; } + .spec-table--compare thead th:nth-child(2), .spec-table--compare tbody td:nth-child(2) { background: var(--page-accent-dim, var(--sage-dim)); } + .stack-name { display: inline-flex; align-items: center; gap: 8px; } + .stack-logo { width: 20px; height: 20px; object-fit: contain; flex: none; } .spec-note { margin-top: 14px; font-size: 13.5px; color: var(--text-dim); } .step-cmd { display: block; margin-top: 12px; font-family: var(--mono); font-size: 12.5px; color: var(--teal); overflow-x: auto; } pre.step-cmd { margin-bottom: 0; white-space: pre; } @@ -120,6 +126,98 @@ +
+
+
+ Comparison +

Comparison with Popular Stacks

+

Here is a direct comparison between WSL2, XAMPP, Laragon, DDEV, and Docker to help you choose the best + development environment for your workflow.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureWSL2XAMPPLaragonDDEVDocker
Primary Use CaseRunning a real Linux environment on Windows via a managed VM.Quick all-in-one Apache/MariaDB/PHP/Perl stack for local development.Fast, portable PHP/Node development stack on Windows.Per-project PHP/CMS (and Node.js) development environments built on Docker.General-purpose containerization for any tech stack.
Core ArchitectureReal Linux kernel in a lightweight utility VM; distros run as isolated containers inside it.Native executables run as host processes (optionally as services).Portable native Windows binaries; doesn't use Windows Services.Orchestration layer that generates and runs Docker containers per project, plus a shared router.Containers sharing the host kernel on Linux; on Windows/macOS, Docker Desktop runs the engine inside a Linux VM (WSL2/Hyper-V or Apple Virtualization).
Depends OnWindows virtualization support.Nothing.Nothing.A Docker provider (Docker CE, Docker Desktop, OrbStack, Rancher, etc.); on Windows, usually WSL2.Native on Linux; WSL2 or Hyper-V on Windows; a VM on macOS.
OS SupportWindows 10 (1903+, build 18362+), Windows 11, Windows Server.Windows and Linux (PHP up to 8.2.12); macOS build lags (PHP up to 8.2.4); XAMPP-VM unsupported on Apple Silicon.Windows only.macOS, Windows (WSL2 or traditional), Linux, GitHub Codespaces.Windows, macOS, Linux.
Resource UsageLow to Medium (small footprint at idle; memory grows dynamically, capped by default at a share of host RAM).Low (runs directly on host processes).Very Low (lightweight, no background services).Medium to High (Docker overhead plus several containers per project; varies by provider).Low on native Linux; Medium to High with Docker Desktop's VM.
Environment IsolationPartial (separate Linux filesystem and kernel, but deliberately integrated with Windows files, networking, and executables).None (shared global install, ports, and PHP version).Self-contained install, no per-project isolation (projects share services and the active PHP version).Container-level per project (own web and DB containers), with a shared router on ports 80/443.Container-level (process, filesystem, and network namespaces; shared kernel, so weaker than a VM).
Production ParityDepends on what you install (it's a Linux OS, not a stack).Low (Windows paths and config differ from production; vendor states it's not for production).Low (Windows paths differ from Linux servers).High if versions are matched (standardized Linux containers, not your production images).High; identical only if the exact same image is deployed to production.
License / CostFree (part of Windows).Free, open source.Laragon 6 free; versions 7+ require a paid license.Free, open source.Docker Engine free and open source; Docker Desktop requires a paid subscription for larger businesses.
+
+
+
+