From 1bbdcbe970175d3d2f51fa487c9352dafd91822d Mon Sep 17 00:00:00 2001 From: Ram Date: Sat, 29 Aug 2026 19:12:01 +0530 Subject: [PATCH 1/3] feat: Add DevContainer and Codespaces support - Add .devcontainer configuration for VS Code and Codespaces - Add xdebug to bewelcome_php_dev stage for local debugging --- .devcontainer/devcontainer.json | 56 ++++++++++++++++++++++++++ Dockerfile | 5 ++- docker/php/conf.d/bewelcome.xdebug.ini | 6 +++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 docker/php/conf.d/bewelcome.xdebug.ini diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..6ff5aa4ae --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,56 @@ +{ + "name": "BeWelcome Rox (Docker Master)", + "dockerComposeFile": [ + "../docker-compose.yml", + "../docker-compose.override.yml.dist" + ], + "service": "php", + "workspaceFolder": "/srv/bewelcome", + "overrideCommand": false, + "forwardPorts": [80, 1080, 9306, 9308], + "portsAttributes": { + "80": { + "label": "BeWelcome App (Nginx)", + "onAutoForward": "openBrowser" + }, + "1080": { + "label": "MailCatcher Web UI", + "onAutoForward": "notify" + }, + "9306": { + "label": "Manticore MySQL protocol", + "onAutoForward": "silent" + }, + "9308": { + "label": "Manticore HTTP API", + "onAutoForward": "silent" + } + }, + "postCreateCommand": "bzip2 -ckd docker/languages.sql.bz2 > docker/db/languages.sql && bzip2 -ckd docker/words.sql.bz2 > docker/db/words.sql", + "customizations": { + "vscode": { + "extensions": [ + "bmewburn.vscode-intelephense-client", + "xdebug.php-debug", + "symfony-vscode.symfony-vscode", + "bradlc.vscode-tailwindcss", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "mikestead.dotenv", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github" + ], + "settings": { + "php.suggest.basic": false, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[php]": { + "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" + }, + "intelephense.environment.phpVersion": "8.4.0", + "intelephense.files.maxSize": 5000000, + "xdebug.remote_enable": true + } + } + } +} diff --git a/Dockerfile b/Dockerfile index 6002873c6..0227b8873 100644 --- a/Dockerfile +++ b/Dockerfile @@ -187,4 +187,7 @@ ARG NODE_ENV=production RUN set -eux; \ apk add --no-cache \ make \ - mysql-client + mysql-client; \ + install-php-extensions xdebug + +COPY docker/php/conf.d/bewelcome.xdebug.ini $PHP_INI_DIR/conf.d/xdebug.ini diff --git a/docker/php/conf.d/bewelcome.xdebug.ini b/docker/php/conf.d/bewelcome.xdebug.ini new file mode 100644 index 000000000..cb05a630c --- /dev/null +++ b/docker/php/conf.d/bewelcome.xdebug.ini @@ -0,0 +1,6 @@ +; Xdebug configuration for development +; Disabled by default for performance. To enable, you can set XDEBUG_MODE=debug +xdebug.mode=off +xdebug.client_host=host.docker.internal +xdebug.start_with_request=yes +xdebug.discover_client_host=1 From 69f69f4ec211e3696e0c03d74e8d04ca9cda3dd4 Mon Sep 17 00:00:00 2001 From: Ram Date: Sat, 29 Aug 2026 19:38:19 +0530 Subject: [PATCH 2/3] chore: explicitly define Codespaces hostRequirements --- .devcontainer/devcontainer.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6ff5aa4ae..5cc64309f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,4 +1,4 @@ -{ +{ "name": "BeWelcome Rox (Docker Master)", "dockerComposeFile": [ "../docker-compose.yml", @@ -27,6 +27,11 @@ } }, "postCreateCommand": "bzip2 -ckd docker/languages.sql.bz2 > docker/db/languages.sql && bzip2 -ckd docker/words.sql.bz2 > docker/db/words.sql", + "hostRequirements": { + "cpus": 2, + "memory": "4gb", + "storage": "32gb" + }, "customizations": { "vscode": { "extensions": [ From 2056b5aae10db014e2b5ff02193ad87f8b9ce7d5 Mon Sep 17 00:00:00 2001 From: Ram Date: Sat, 29 Aug 2026 22:13:57 +0530 Subject: [PATCH 3/3] chore: replace mailcatcher with mailpit for local dev --- .devcontainer/devcontainer.json | 2 +- docker-compose.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 5cc64309f..b4f29cc53 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ "onAutoForward": "openBrowser" }, "1080": { - "label": "MailCatcher Web UI", + "label": "MailPit Web UI", "onAutoForward": "notify" }, "9306": { diff --git a/docker-compose.yml b/docker-compose.yml index 8f8f29efb..6b00322b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,7 +60,10 @@ services: - ./data:/var/lib/manticore mailer: - image: tophfr/mailcatcher + image: axllent/mailpit + environment: + MP_SMTP_BIND_ADDR: "0.0.0.0:25" + MP_UI_BIND_ADDR: "0.0.0.0:80" volumes: db-data: {}