[policy] Adopt an officially supported non-Docker runtime

Created on 25 September 2024, 4 months ago

Problem/Motivation

This is a policy-only issue, so it should not have a merge request.

When people start a project with Drupal CMS, they may need a way to open and work on their site locally. Right now, the only way to do that which we actually support is DDEV, which is Docker-based. Docker is complex, technical, and intimidating to set up, which I think makes it an inappropriate choice for the kind of end users we're targeting.

Over in ✨ Create a FrankenPHP-based launcher so that people who don't have DDEV can run Drupal CMS locally Active , I experimented with having some kind of non-Docker runtime ship with Drupal CMS -- I played with having a FrankenPHP launcher, and I got it to work on my Mac, but it was janky, and it didn't quite work on Linux, to say nothing of Windows, which would at least require the use of the Windows Subsystem for Linux (WSL) -- a technical barrier unto itself that I think would put a locally running copy of Drupal CMS out of reach for a significant portion of our expected end users. So I suspect that building our own bespoke launcher would be too tricky and leave us holding a heavy maintenance burden.

There's no reason for Drupal CMS to require particular runtimes -- we should work with any version of PHP, and any database backend, that fulfills Drupal's system requirements. But I do think there is value in officially standing behind a particular non-Docker runtime and documenting that it's our preferred way to get set up locally with Drupal CMS if you don't have Docker.

So let's talk about that, and come to some sort of decision. What non-Docker runtime should we support?

Some of the requirements (this could be subject to change, but IMHO these are table stakes):

  • GUI-based. No command line needed.
  • No additional external dependencies.
  • Needs to work on macOS and Windows. Linux support would also be good, but Linux folks are in native Docker territory and can probably get set up more easily with DDEV.
πŸ“Œ Task
Status

Active

Component

Infrastructure

Created by

πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @phenaproxima
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    I think Laravel Herd is a really nice option.

    I'm a little biased because I've been using Laravel Valet for years as my development web server. This thing looks like the successor to Valet -- it even offers an automatic migration.

    Pros:

    • GUI-only
    • It works for Windows and Mac. I didn't test it on Windows, but setting it up on my Mac was about as painless as it gets.
    • It's lightweight and the free tier will run Drupal CMS with no problems
    • We could ship some custom configuration for it if we wanted to.

    Cons:

    • This is a freemium product, and you don't get MySQL or Postgres in the free tier. I don't think this is a big deal, though; real projects won't deploy their databases directly, and Drupal works just fine with SQLite.
    • Appears to be closed-source.
    • No Linux support, although that's not maybe the biggest problem since Docker is Linux-native.
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts
  • πŸ‡¨πŸ‡¦Canada mandclu

    I tend to use Colima which is still technically Docker-based at its core, but isn't difficult at all to set up. I've also heard that Rancher Desktop is also popular, but I got started with Colima and have never really had any issues with it.

  • πŸ‡ΊπŸ‡ΈUnited States rfay Palisade, CO, USA

    Docker is complex, technical, and intimidating to set up, which I think makes it an inappropriate choice for the kind of end users we're targeting.

    I don't think most DDEV users would agree, but I might be wrong. Most users set up OrbStack or Docker Desktop or Rancher Desktop in moments using the standard installers. There is no complexity any more than any other app they might install. DDEV users generally don't need to know anything at all about Docker, unless they start to get way out of the box. There are capabilities there, but I'll bet 95% of DDEV users don't add a custom Dockerfile or `docker-compose.*.yaml`

Production build 0.71.5 2024