feat: add Drupal Site app with second healthcheck indicator#41
Merged
Conversation
Adds a second app icon alongside DDEV Web: - DDEV Web: lights up when ddev starts (any 2xx/3xx from port 80) - Drupal Site: lights up only when Drupal returns non-5xx from /user/login — dim during setup (500 from missing DB), bright after drush si completes Uses Iconify API for a white check-circle icon visible on dark backgrounds. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a second app icon Drupal Site (white check-circle) alongside the existing DDEV Web icon, giving two distinct health indicators with different semantics.
How Coder app healthchecks work
Each
coder_appresource can have ahealthcheckblock that polls a URL on a configurable interval. The app icon appears dim when unhealthy and bright when healthy.What counts as healthy: any HTTP response that is not a connection failure and not 5xx. This means 2xx, 3xx, and 4xx all pass. There is no way to require specifically 200, check response body content, or apply any custom logic — status code only.
Key limitation: the health indicator is only visible in the individual workspace detail view. The main workspaces list shows only the agent status (Running/Stopped), not per-app health.
Docs: https://registry.terraform.io/providers/coder/coder/latest/docs/resources/app
The two indicators
http://localhost:80ddev startcompletes — nginx responds with anythinghttp://localhost:80/user/loginWhy
/user/login: beforedrush sicompletes, Drupal returns 500 (no database). After install it returns 200. This makes the Drupal Site icon dim through the entire setup process and bright only once the site is serving.Known limitations
ddev drush sql-drop -y, Drupal redirects/user/login→/install.php(302). Coder treats 302 as healthy, so the icon stays bright. A customhealth.phpthat tests DB connectivity directly would be needed to catch this.index.phpgives 403 — icon stays bright.display_errors=On), PHP parse errors can return 200 with error text in the body rather than 500.The icon is a best-effort indicator, not a guarantee of a fully functioning site.
🤖 Generated with Claude Code