Golems GABB: Drupal cloud development using devcontainers

Drupal cloud development using devcontainers Editor Fri, 04/11/2025 - 13:38

Hi there! What is the best way to improve Drupal development and encourage teamwork among development groups? This question is important for many developers, especially as remote teams and complex projects become more common. Setting up and maintaining traditional Drupal development environments can take a lot of time, often leading to problems and delays. In this article, your Drupal development company will look at how devcontainers can improve your Drupal cloud development process for the better.

Ryan Szrama: The Moral Imperative to Compensate Free Software Authors

Doesn't exist.

I don't know if this was ever common knowledge, but it's certainly not a new idea. Free software, per the Free Software Foundation, is only free if people are free to redistribute it commercially without having to pay the author. In a sense, every time you build a Drupal site for someone else for a fee, you are charging to distribute free software to them that was authored by other people while providing additional services to tailor it to their needs.

If I had to guess, the more mainstream open source as a development methodology became, the more people adopted it without understanding or appreciating its philosophical origins. Open source as a growth strategy became inevitable while simultaneously kicking against the goads of the four essential freedoms of the movement that birthed it, even though these freedoms are what enabled multi-billion dollar ecosystems like Drupal's to grow.

Read more

Zoocha: DrupalCon Atlanta: Drupal Community & Roadmap Highlights

DrupalCon Atlanta: Drupal Community &... Drupal hannaholeary Wed, 09/04/2025 - 14:59 DrupalCon Atlanta - An Introduction At the end of March I crossed the Atlantic and attended DrupalCon Atlanta. This was my first North American DrupalCon, but not my first DrupalCon ever, having attended DrupalCon Amsterdam 2019 and presented at DrupalCon Prague 2022. It can be a common misconception that DrupalCon attendance is reserved for developers only. Of course…

Balint Pekker: AI Code Review for Drupal

It’s been a while since I’ve posted here. The last few months were packed with projects — shipping features, handling migrations, managing infrastructure, and everything in between. Writing fell by the wayside. But recently, something clicked again. Dries’ recent post on coding with Claude sparked a familiar feeling: curiosity, a bit of wonder, and the urge to build and share again.

DDEV Blog: Exposing a Node.js App Over HTTP / HHTPS on a Subdomain in DDEV

Image removed.Exposing a Node.js App Over 80/443 on a Subdomain in DDEV

Have you ever needed to run a separate Node.js application alongside your main site in DDEV, and serve it securely over ports 80 and 443 on a custom subdomain? While DDEV has built-in mechanisms for exposing additional ports, sometimes you need more control, especially if you want to expos it through a domain like frontend.example.ddev.site instead of a port-specific URL. This is where Traefik, bundled with DDEV, becomes incredibly powerful.

In this post, we’ll walk through how to configure DDEV and Traefik to proxy requests from a subdomain directly to your Node.js app on port 3000 within the DDEV web container.

Why Not Just Use web_extra_exposed_ports?

DDEV's' web_extra_exposed_ports feature is great for making your service accessible via a specific port (e.g., (3000)). However, it doesn’t magically set up a subdomain for you to use on standard web ports (80/443). If you want frontend.example.ddev.site to map to your Node.js app over HTTPS, you need a reverse proxy rule. That’s where Traefik comes in.

Step 1: Update Your .ddev/config.yaml

In your project’s .ddev/config.yaml, define the project name and the additional hostname you want to use. For example:

name: example additional_hostnames: - frontend.example

(Optional) You can still use web_extra_exposed_ports to expose the Node.js port if you want:

web_extra_exposed_ports: - name: node-app container_port: 3000 http_port: 3000 https_port: 3001

However, for a subdomain over standard web ports, the critical part is the next step with Traefik.

Step 2: Create a Project-level Traefik Configuration File

In your project's .ddev/traefik/config folder add a file named frontend.yaml. In frontend.yaml, you’ll define two routers—one for HTTP (port 80) and one for HTTPS (port 443)—and a service that points to the Node.js app on port 3000.

http: routers: # Router for HTTP (port 80) example-web-80-http-frontend: entrypoints: - http-80 rule: Host(`frontend.example.ddev.site`) service: "example-web-3000" ruleSyntax: v3 tls: false priority: 100 # Router for HTTPS (port 443) example-web-80-https-frontend: entrypoints: - http-443 rule: Host(`frontend.example.ddev.site`) service: "example-web-3000" ruleSyntax: v3 tls: true priority: 100 services: # The custom service that routes to your Node app example-web-3000: loadbalancer: servers: - url: http://ddev-example-web:3000

Here’s what’s happening:

  • Routers: Each router inspects incoming requests. If the hostname matches frontend.example.ddev.site, it passes the request to the example-web-3000 service.
  • Service: Defines where to actually send the traffic. In this case, http://ddev-example-web:3000 is the internal address of the web container running on port 3000.

Step 3: Restart DDEV

Run:

ddev restart

DDEV will pick up your new Traefik configuration, and you should now be able to access your Node.js application at:

ddev launch https://frontend.example.ddev.site

No more messing with non-standard port numbers in your URLs!

Wrapping Up

By leveraging Traefik's routing capabilities, you can expose any service running in the web container on standard HTTP/HTTPS ports and map it to a dedicated subdomain. This approach keeps your development environment clean, user-friendly, and closer to production-like URLs.

If you’ve followed these steps, your Node.js application will be served seamlessly over frontend.example.ddev.site.

Further Reading

Do You Have a Favorite DDEV Recipe? Contribute It!

We welcome community contributions to the DDEV blog and would love to have yours. The ddev.com repository has full details, and there's even a training session on how to do it. It's all just Markdown and we'll help!

The Drop Times: UI Suite Is Announcing a New Display Builder: Pierre Dureau

In this in-depth interview with The Drop Times, long-time Drupal contributor and UI Suite founder Pierre Dureau opens up about nearly two decades in the Drupal ecosystem, the philosophy behind UI Patterns 2.0, and the growing complexity of design systems. He shares why Drupal is more than just a CMS, what most teams get wrong about frontend architecture, and drops an exclusive: his team is working on a new Display Builder module that could unify and simplify Drupal’s entire display layer. From SDC to WebAssembly on the server—this conversation goes deep into where Drupal is headed next.