From 455e1914a9eeabb0d38213e056ef3b41bd159784 Mon Sep 17 00:00:00 2001 From: NightVibes33 <214680657+NightVibes33@users.noreply.github.com> Date: Thu, 21 May 2026 15:49:17 +0000 Subject: [PATCH 1/2] feat: add wallabag template --- blueprints/wallabag/docker-compose.yml | 61 ++++++++++++++++++++++++++ blueprints/wallabag/template.toml | 18 ++++++++ blueprints/wallabag/wallabag.svg | 5 +++ meta.json | 18 ++++++++ 4 files changed, 102 insertions(+) create mode 100644 blueprints/wallabag/docker-compose.yml create mode 100644 blueprints/wallabag/template.toml create mode 100644 blueprints/wallabag/wallabag.svg diff --git a/blueprints/wallabag/docker-compose.yml b/blueprints/wallabag/docker-compose.yml new file mode 100644 index 00000000..890758cf --- /dev/null +++ b/blueprints/wallabag/docker-compose.yml @@ -0,0 +1,61 @@ +version: "3.8" + +services: + wallabag: + image: wallabag/wallabag:2.6.14 + restart: unless-stopped + expose: + - "80" + depends_on: + wallabag-db: + condition: service_healthy + wallabag-redis: + condition: service_healthy + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql + - SYMFONY__ENV__DATABASE_HOST=wallabag-db + - SYMFONY__ENV__DATABASE_PORT=3306 + - SYMFONY__ENV__DATABASE_NAME=wallabag + - SYMFONY__ENV__DATABASE_USER=wallabag + - SYMFONY__ENV__DATABASE_PASSWORD=${SYMFONY__ENV__DATABASE_PASSWORD} + - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4 + - SYMFONY__ENV__DATABASE_TABLE_PREFIX=wallabag_ + - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1 + - SYMFONY__ENV__FROM_EMAIL=${SYMFONY__ENV__FROM_EMAIL} + - SYMFONY__ENV__DOMAIN_NAME=${SYMFONY__ENV__DOMAIN_NAME} + - SYMFONY__ENV__SERVER_NAME=${SYMFONY__ENV__SERVER_NAME} + volumes: + - wallabag-images:/var/www/wallabag/web/assets/images + + wallabag-db: + image: mariadb:11.4 + restart: unless-stopped + environment: + - MARIADB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MARIADB_DATABASE=wallabag + - MARIADB_USER=wallabag + - MARIADB_PASSWORD=${SYMFONY__ENV__DATABASE_PASSWORD} + volumes: + - wallabag-db-data:/var/lib/mysql + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 20s + timeout: 5s + retries: 10 + + wallabag-redis: + image: redis:7-alpine + restart: unless-stopped + volumes: + - wallabag-redis-data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 20s + timeout: 5s + retries: 10 + +volumes: + wallabag-images: + wallabag-db-data: + wallabag-redis-data: diff --git a/blueprints/wallabag/template.toml b/blueprints/wallabag/template.toml new file mode 100644 index 00000000..5153ab07 --- /dev/null +++ b/blueprints/wallabag/template.toml @@ -0,0 +1,18 @@ +[variables] +main_domain = "${domain}" +db_root_password = "${password:32}" +db_password = "${password:32}" +from_email = "wallabag@example.com" + +[config] +[[config.domains]] +serviceName = "wallabag" +port = 80 +host = "${main_domain}" + +[config.env] +MYSQL_ROOT_PASSWORD = "${db_root_password}" +SYMFONY__ENV__DATABASE_PASSWORD = "${db_password}" +SYMFONY__ENV__DOMAIN_NAME = "https://${main_domain}" +SYMFONY__ENV__FROM_EMAIL = "${from_email}" +SYMFONY__ENV__SERVER_NAME = "wallabag" diff --git a/blueprints/wallabag/wallabag.svg b/blueprints/wallabag/wallabag.svg new file mode 100644 index 00000000..8d4373b4 --- /dev/null +++ b/blueprints/wallabag/wallabag.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/meta.json b/meta.json index 8be7825d..641572c5 100644 --- a/meta.json +++ b/meta.json @@ -6517,6 +6517,24 @@ "project-management" ] }, + { + "id": "wallabag", + "name": "wallabag", + "version": "2.6.14", + "description": "wallabag is a self-hosted read-it-later application for saving, classifying, and reading web articles.", + "logo": "wallabag.svg", + "links": { + "github": "https://github.com/wallabag/wallabag", + "website": "https://wallabag.org/", + "docs": "https://doc.wallabag.org/" + }, + "tags": [ + "read-it-later", + "bookmarks", + "articles", + "self-hosted" + ] + }, { "id": "wallos", "name": "Wallos", From 65a9a0a5a5f9bb5d626b254f4a65deed78ec2ee9 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Wed, 8 Jul 2026 01:37:02 -0600 Subject: [PATCH 2/2] fix: let wallabag entrypoint provision the database so the install runs The template deployed but returned a persistent HTTP 500: MARIADB_DATABASE pre-created the wallabag database, so the image entrypoint detected an existing database, skipped bin/console wallabag:install and left an empty schema. Only MARIADB_ROOT_PASSWORD is set now, letting the entrypoint create the database/user and run the installer on first boot (matching the official wallabag docker-compose). Also: - build SYMFONY__ENV__DOMAIN_NAME from the generated domain with the http scheme so assets/redirects match how the domain is served - point SYMFONY__ENV__REDIS_HOST at the wallabag-redis service (default is 'redis', which does not resolve here) - randomize SYMFONY__ENV__SECRET instead of relying on the image's hardcoded default Co-Authored-By: Claude Fable 5 --- blueprints/wallabag/docker-compose.yml | 9 ++++++--- blueprints/wallabag/template.toml | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/blueprints/wallabag/docker-compose.yml b/blueprints/wallabag/docker-compose.yml index 890758cf..e4359cf4 100644 --- a/blueprints/wallabag/docker-compose.yml +++ b/blueprints/wallabag/docker-compose.yml @@ -25,6 +25,8 @@ services: - SYMFONY__ENV__FROM_EMAIL=${SYMFONY__ENV__FROM_EMAIL} - SYMFONY__ENV__DOMAIN_NAME=${SYMFONY__ENV__DOMAIN_NAME} - SYMFONY__ENV__SERVER_NAME=${SYMFONY__ENV__SERVER_NAME} + - SYMFONY__ENV__SECRET=${SYMFONY__ENV__SECRET} + - SYMFONY__ENV__REDIS_HOST=wallabag-redis volumes: - wallabag-images:/var/www/wallabag/web/assets/images @@ -32,10 +34,11 @@ services: image: mariadb:11.4 restart: unless-stopped environment: + # Only the root password is set on purpose: the wallabag entrypoint + # creates the database and user and runs `wallabag:install` itself. + # Pre-creating the database (MARIADB_DATABASE) makes the entrypoint + # skip the install, leaving an empty schema and a persistent HTTP 500. - MARIADB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - MARIADB_DATABASE=wallabag - - MARIADB_USER=wallabag - - MARIADB_PASSWORD=${SYMFONY__ENV__DATABASE_PASSWORD} volumes: - wallabag-db-data:/var/lib/mysql healthcheck: diff --git a/blueprints/wallabag/template.toml b/blueprints/wallabag/template.toml index 5153ab07..5094139e 100644 --- a/blueprints/wallabag/template.toml +++ b/blueprints/wallabag/template.toml @@ -2,6 +2,7 @@ main_domain = "${domain}" db_root_password = "${password:32}" db_password = "${password:32}" +app_secret = "${password:32}" from_email = "wallabag@example.com" [config] @@ -13,6 +14,7 @@ host = "${main_domain}" [config.env] MYSQL_ROOT_PASSWORD = "${db_root_password}" SYMFONY__ENV__DATABASE_PASSWORD = "${db_password}" -SYMFONY__ENV__DOMAIN_NAME = "https://${main_domain}" +SYMFONY__ENV__DOMAIN_NAME = "http://${main_domain}" SYMFONY__ENV__FROM_EMAIL = "${from_email}" SYMFONY__ENV__SERVER_NAME = "wallabag" +SYMFONY__ENV__SECRET = "${app_secret}"