From 4d707a335fa0add0f82a9ecc0a8a12cffd32ccf8 Mon Sep 17 00:00:00 2001 From: Harshal Rathore Date: Mon, 26 Jan 2026 12:16:35 +0530 Subject: [PATCH 1/5] feat: add wuzapi template --- blueprints/wuzapi/docker-compose.yml | 45 +++++++++++++++++++++++++++ blueprints/wuzapi/template.toml | 24 ++++++++++++++ blueprints/wuzapi/wuzapi.png | Bin 0 -> 17289 bytes meta.json | 18 +++++++++++ meta_entry.json | 18 +++++++++++ 5 files changed, 105 insertions(+) create mode 100644 blueprints/wuzapi/docker-compose.yml create mode 100644 blueprints/wuzapi/template.toml create mode 100644 blueprints/wuzapi/wuzapi.png create mode 100644 meta_entry.json diff --git a/blueprints/wuzapi/docker-compose.yml b/blueprints/wuzapi/docker-compose.yml new file mode 100644 index 000000000..ced71fa10 --- /dev/null +++ b/blueprints/wuzapi/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.8" +services: + wuzapi-server: + image: asternic/wuzapi:latest + restart: unless-stopped + expose: + - 8080 + environment: + - WUZAPI_ADMIN_TOKEN=${WUZAPI_ADMIN_TOKEN} + - WUZAPI_GLOBAL_ENCRYPTION_KEY=${WUZAPI_GLOBAL_ENCRYPTION_KEY} + - DB_USER=${DB_USER:-wuzapi} + - DB_PASSWORD=${DB_PASSWORD:-wuzapi} + - DB_NAME=${DB_NAME:-wuzapi} + - DB_HOST=db + - DB_PORT=5432 + - TZ=${TZ:-UTC} + depends_on: + db: + condition: service_healthy + networks: + - wuzapi-network + + db: + image: postgres:16 + restart: always + environment: + POSTGRES_USER: ${DB_USER:-wuzapi} + POSTGRES_PASSWORD: ${DB_PASSWORD:-wuzapi} + POSTGRES_DB: ${DB_NAME:-wuzapi} + volumes: + - db_data:/var/lib/postgresql/data + networks: + - wuzapi-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${DB_USER:-wuzapi}"] + interval: 5s + timeout: 5s + retries: 5 + +networks: + wuzapi-network: + driver: bridge + +volumes: + db_data: diff --git a/blueprints/wuzapi/template.toml b/blueprints/wuzapi/template.toml new file mode 100644 index 000000000..43e131c50 --- /dev/null +++ b/blueprints/wuzapi/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" +admin_token = "${password:32}" +encryption_key = "${password:32}" +db_user = "wuzapi" +db_password = "${password:32}" +db_name = "wuzapi" + +[config] +[[config.domains]] +serviceName = "wuzapi-server" +port = 8080 +host = "${main_domain}" + +[config.env] +WUZAPI_ADMIN_TOKEN = "${admin_token}" +WUZAPI_GLOBAL_ENCRYPTION_KEY = "${encryption_key}" +DB_USER = "${db_user}" +DB_PASSWORD = "${db_password}" +DB_NAME = "${db_name}" + +[[config.mounts]] +name = "db_data" +mountPath = "/var/lib/postgresql/data" diff --git a/blueprints/wuzapi/wuzapi.png b/blueprints/wuzapi/wuzapi.png new file mode 100644 index 0000000000000000000000000000000000000000..f48f5d33a3debe97ece8fadc19fa1bfb84b0e402 GIT binary patch literal 17289 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 F{{SA)AAkS= literal 0 HcmV?d00001 diff --git a/meta.json b/meta.json index ffff0e0ba..ef4177df0 100644 --- a/meta.json +++ b/meta.json @@ -6219,6 +6219,24 @@ "cms" ] }, + { + "id": "wuzapi", + "name": "WuzAPI", + "version": "v1.0.0", + "description": "A RESTful API service for WhatsApp with multiple device support and concurrent sessions.", + "logo": "wuzapi.png", + "links": { + "github": "https://github.com/asternic/wuzapi", + "website": "https://www.wuzapi.app/", + "docs": "https://github.com/asternic/wuzapi/blob/main/README.md" + }, + "tags": [ + "api", + "whatsapp", + "messaging", + "automation" + ] + }, { "id": "xsshunter", "name": "XSSHunter", diff --git a/meta_entry.json b/meta_entry.json new file mode 100644 index 000000000..701aed357 --- /dev/null +++ b/meta_entry.json @@ -0,0 +1,18 @@ +{ + "id": "wuzapi", + "name": "WuzAPI", + "version": "v1.0.0", + "description": "A RESTful API service for WhatsApp with multiple device support and concurrent sessions.", + "logo": "wuzapi.png", + "links": { + "github": "https://github.com/asternic/wuzapi", + "website": "https://www.wuzapi.app/", + "docs": "https://github.com/asternic/wuzapi/blob/main/README.md" + }, + "tags": [ + "api", + "whatsapp", + "messaging", + "automation" + ] +} \ No newline at end of file From 62ba8aa76bbf2e9e109d455cda2cdc1836c3c678 Mon Sep 17 00:00:00 2001 From: Harshal Rathore Date: Mon, 26 Jan 2026 12:16:43 +0530 Subject: [PATCH 2/5] chore: remove temporary meta_entry.json --- meta_entry.json | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 meta_entry.json diff --git a/meta_entry.json b/meta_entry.json deleted file mode 100644 index 701aed357..000000000 --- a/meta_entry.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "wuzapi", - "name": "WuzAPI", - "version": "v1.0.0", - "description": "A RESTful API service for WhatsApp with multiple device support and concurrent sessions.", - "logo": "wuzapi.png", - "links": { - "github": "https://github.com/asternic/wuzapi", - "website": "https://www.wuzapi.app/", - "docs": "https://github.com/asternic/wuzapi/blob/main/README.md" - }, - "tags": [ - "api", - "whatsapp", - "messaging", - "automation" - ] -} \ No newline at end of file From 41777b83080b15358fd36fd72004cf1b5e3099b8 Mon Sep 17 00:00:00 2001 From: Harshal Rathore Date: Mon, 26 Jan 2026 12:23:01 +0530 Subject: [PATCH 3/5] fix(wuzapi): remove explicit networks and simplify depends_on for Dokploy compatibility --- blueprints/wuzapi/docker-compose.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/blueprints/wuzapi/docker-compose.yml b/blueprints/wuzapi/docker-compose.yml index ced71fa10..61b234fea 100644 --- a/blueprints/wuzapi/docker-compose.yml +++ b/blueprints/wuzapi/docker-compose.yml @@ -15,10 +15,7 @@ services: - DB_PORT=5432 - TZ=${TZ:-UTC} depends_on: - db: - condition: service_healthy - networks: - - wuzapi-network + - db db: image: postgres:16 @@ -29,17 +26,11 @@ services: POSTGRES_DB: ${DB_NAME:-wuzapi} volumes: - db_data:/var/lib/postgresql/data - networks: - - wuzapi-network healthcheck: test: ["CMD-SHELL", "pg_isready -U $${DB_USER:-wuzapi}"] interval: 5s timeout: 5s retries: 5 -networks: - wuzapi-network: - driver: bridge - volumes: db_data: From 53138dad71473588c1ce6572c8a6bc5e8dd45e28 Mon Sep 17 00:00:00 2001 From: Harshal Rathore Date: Mon, 26 Jan 2026 12:29:23 +0530 Subject: [PATCH 4/5] fix(wuzapi): remove invalid config.mounts from template.toml --- blueprints/wuzapi/template.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/blueprints/wuzapi/template.toml b/blueprints/wuzapi/template.toml index 43e131c50..71d95c497 100644 --- a/blueprints/wuzapi/template.toml +++ b/blueprints/wuzapi/template.toml @@ -18,7 +18,3 @@ WUZAPI_GLOBAL_ENCRYPTION_KEY = "${encryption_key}" DB_USER = "${db_user}" DB_PASSWORD = "${db_password}" DB_NAME = "${db_name}" - -[[config.mounts]] -name = "db_data" -mountPath = "/var/lib/postgresql/data" From 64160559b2da7409e06f7fd5454f96a3f336036e Mon Sep 17 00:00:00 2001 From: Harshal Rathore <76205196+HarshalRathore@users.noreply.github.com> Date: Wed, 28 Jan 2026 13:33:41 +0530 Subject: [PATCH 5/5] Update Docker images for wuzapi and PostgreSQL fixed the version of the wuzapi docker image. --- blueprints/wuzapi/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprints/wuzapi/docker-compose.yml b/blueprints/wuzapi/docker-compose.yml index 61b234fea..87b5b8b82 100644 --- a/blueprints/wuzapi/docker-compose.yml +++ b/blueprints/wuzapi/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.8" services: wuzapi-server: - image: asternic/wuzapi:latest + image: asternic/wuzapi:sha-30c1805 restart: unless-stopped expose: - 8080 @@ -18,7 +18,7 @@ services: - db db: - image: postgres:16 + image: postgres:16-alpine restart: always environment: POSTGRES_USER: ${DB_USER:-wuzapi}