Skip to content

feat: update to 1.9.0 release#44

Open
stnguyen90 wants to merge 1 commit intomainfrom
feat-1.9.0
Open

feat: update to 1.9.0 release#44
stnguyen90 wants to merge 1 commit intomainfrom
feat-1.9.0

Conversation

@stnguyen90
Copy link
Copy Markdown
Contributor

What does this PR do?

Upgrade to 1.9.0 release.

Test Plan

Manual

Related PRs and Issues

None

Have you read the Contributing Guidelines on issues?

Yes

@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Apr 2, 2026

Greptile Summary

This PR upgrades the Gitpod integration stack from Appwrite 1.8.1 to 1.9.0, bumping all worker and scheduler images, the console image (7.5.7 → 7.8.26), Traefik (2.11 → 3.6), and Redis (7.2.4 → 7.4.7). It also improves startup reliability by adding health checks to MariaDB and Redis and converting all depends_on entries to condition-based checks.

Key changes:

  • All Appwrite service images updated to 1.9.0
  • New environment variables added: _APP_DB_ADAPTER, _APP_TRUSTED_HEADERS, _APP_GRAPHQL_INTROSPECTION
  • appwrite-assistant service removed (functionality absorbed into core)
  • .env values wrapped in double quotes for consistency
  • Health checks added to mariadb and redis services; all depends_on upgraded to condition: service_healthy

Critical issue found: _APP_DB_ADAPTER is duplicated in the environment block of every single Appwrite service (18 services, 36 total occurrences). The variable is listed once before _APP_DB_HOST and again after _APP_DB_PASS. Depending on the Docker Compose version, this will either silently deduplicate or fail validation at startup.

Confidence Score: 3/5

Not safe to merge without fixing the pervasive _APP_DB_ADAPTER duplication, which can prevent the stack from starting on strict Docker Compose versions.

A P1 defect (duplicate environment variable key in every service's environment block) was introduced systematically across the entire file. While some Docker Compose versions may silently ignore duplicates, others will error at validation time and prevent the stack from starting entirely.

docker-compose.yml — the duplicate _APP_DB_ADAPTER entries must be removed from all 18 service environment blocks before this is merged.

Important Files Changed

Filename Overview
docker-compose.yml Upgrades Appwrite to 1.9.0, Traefik to 3.6, Redis to 7.4.7, and Console to 7.8.26; adds health checks to mariadb/redis and converts all depends_on to condition-based. Critical bug: _APP_DB_ADAPTER is duplicated in the environment list of every service (36 total duplicate entries across 18 services).
.env Wraps all values in double quotes, adds new variables _APP_TRUSTED_HEADERS, _APP_DB_ADAPTER, and _APP_GRAPHQL_INTROSPECTION required by 1.9.0. Changes are clean with no issues.

Reviews (1): Last reviewed commit: "feat: update to 1.9.0 release" | Re-trigger Greptile

Comment on lines +100 to +106
- _APP_DB_ADAPTER
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_ADAPTER
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Duplicate _APP_DB_ADAPTER in every service's environment block

_APP_DB_ADAPTER is listed twice in the environment section of every service — once before _APP_DB_HOST and once after _APP_DB_PASS. This pattern repeats across all 18+ services.

Depending on the Docker Compose version in use, duplicate keys in the environment list either silently deduplicate (harmless but noisy) or produce a validation error that prevents the stack from starting. Either way, the duplicate entries should be removed.

Affected line pairs (first occurrence / duplicate):

  • appwrite: 100 / 106
  • appwrite-realtime: 236 / 242
  • appwrite-worker-audits: 267 / 273
  • appwrite-worker-webhooks: 295 / 301
  • appwrite-worker-deletes: 336 / 342
  • appwrite-worker-databases: 396 / 402
  • appwrite-worker-builds: 433 / 439
  • appwrite-worker-functions: 543 / 549
  • appwrite-worker-mails: 581 / 587
  • appwrite-worker-messaging: 624 / 630
  • appwrite-worker-migrations: 685 / 691
  • appwrite-task-maintenance: 724 / 730
  • appwrite-task-stats-resources: 757 / 763
  • appwrite-worker-stats-resources: 790 / 796
  • appwrite-worker-stats-usage: 822 / 828
  • appwrite-task-scheduler-functions: 858 / 864
  • appwrite-task-scheduler-executions: 887 / 893
  • appwrite-task-scheduler-messages: 916 / 922

The second occurrence in each block (after _APP_DB_PASS) should be removed.

Suggested change
- _APP_DB_ADAPTER
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_ADAPTER
- _APP_DB_ADAPTER
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_PASS
- _APP_SMTP_HOST

services:
traefik:
image: traefik:2.11
image: traefik:3.6
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Traefik major version upgrade (2.11 → 3.6) may require config review

Traefik 3.x introduced several breaking changes from 2.x. The Traefik command flags and service labels in this file haven't changed, so it's worth verifying compatibility:

  • The --providers.docker.constraints=Label(...) syntax is still supported in v3, but the constraint DSL did change for some expressions.
  • PathPrefix router rules: In Traefik v3 the default priority calculation changed — PathPrefix("/") matching against all paths should still work, but if there are any edge cases with path priority across the console/api/realtime routers they may behave differently.
  • Several v2 options (e.g. --api.insecure, some middleware configs) were removed or renamed in v3.

If manual testing verified all routes work correctly this can be ignored, but it is worth documenting the tested scenarios given how large a jump this is.

Comment on lines 983 to 987
- OPR_EXECUTOR_STORAGE_WASABI_BUCKET=$_APP_STORAGE_WASABI_BUCKET

mariadb:
image: mariadb:10.11 # fix issues when upgrading using: mysql_upgrade -u root -p
image: mariadb:10.11
container_name: appwrite-mariadb
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 MariaDB logging config (*x-logging anchor) was removed

The mariadb service no longer includes <<: *x-logging, which means it no longer has the json-file driver with max-size: 10m / max-file: 5 limits. Database logs can grow unboundedly on a long-running Gitpod workspace, potentially consuming significant disk space. All other services still use the anchor.

If this was intentional (e.g. the healthcheck log output needed a different driver), it's worth adding a comment explaining the decision.

@stnguyen90 stnguyen90 requested a review from abnegate April 3, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant