From d4ea8b270980dc8c0b0dcefa718e00b5168e6ddd Mon Sep 17 00:00:00 2001 From: memarius Date: Tue, 16 Jan 2024 15:36:43 +0100 Subject: [PATCH 01/10] local dev setup --- .gitignore | 5 +++- dev.Dockerfile | 5 ++++ docker-compose.prod.yml | 32 ++++++++++++++++++++ docker-compose.yml | 65 ++++++++++++++++++++++++++--------------- package.json | 2 ++ 5 files changed, 85 insertions(+), 24 deletions(-) create mode 100644 dev.Dockerfile create mode 100644 docker-compose.prod.yml diff --git a/.gitignore b/.gitignore index fa52735cf88..19fce858744 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -node_modules +*/node_modules +*node_modules .next .env.local workspace.code-workspace @@ -39,3 +40,5 @@ snapshots .env .typebot-build + +/.pnpm-store diff --git a/dev.Dockerfile b/dev.Dockerfile new file mode 100644 index 00000000000..1ef07837db8 --- /dev/null +++ b/dev.Dockerfile @@ -0,0 +1,5 @@ + +FROM node:20 +WORKDIR /app + +RUN curl -sL https://unpkg.com/@pnpm/self-installer | node \ No newline at end of file diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 00000000000..fbaede9778e --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,32 @@ +version: '3.3' + +volumes: + db-data: + +services: + typebot-db: + image: postgres:14-alpine + restart: always + volumes: + - db-data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=typebot + - POSTGRES_PASSWORD=typebot + + typebot-builder: + image: baptistearno/typebot-builder:latest + restart: always + depends_on: + - typebot-db + ports: + - '8080:3000' + extra_hosts: + - 'host.docker.internal:host-gateway' + env_file: .env + + typebot-viewer: + image: baptistearno/typebot-viewer:latest + restart: always + ports: + - '8081:3000' + env_file: .env diff --git a/docker-compose.yml b/docker-compose.yml index fbaede9778e..d313b24f405 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,32 +1,51 @@ version: '3.3' - -volumes: - db-data: - services: typebot-db: - image: postgres:14-alpine + image: postgres:13 + ports: + - '5432:5432' restart: always volumes: - - db-data:/var/lib/postgresql/data + - db_data:/var/lib/postgresql/data environment: - - POSTGRES_DB=typebot - - POSTGRES_PASSWORD=typebot - - typebot-builder: - image: baptistearno/typebot-builder:latest - restart: always + POSTGRES_DB: 'typebot' + POSTGRES_PASSWORD: 'typebot' + minio: + image: minio/minio + command: server /data --console-address ":9001" + ports: + - '9000:9000' + - '9001:9001' + environment: + MINIO_ROOT_USER: minio + MINIO_ROOT_PASSWORD: minio123 + volumes: + - s3_data:/data + # This service just make sure a bucket with the right policies is created + createbuckets: + image: minio/mc depends_on: - - typebot-db + - minio + entrypoint: > + /bin/sh -c " + sleep 10; + /usr/bin/mc config host add minio http://minio:9000 minio minio123; + /usr/bin/mc mb minio/typebot; + /usr/bin/mc anonymous set public minio/typebot/public; + exit 0; + " + node: + build: + context: ./ + dockerfile: dev.Dockerfile + volumes: + - ./:/app + entrypoint: ["pnpm", "devlight"] ports: - - '8080:3000' - extra_hosts: - - 'host.docker.internal:host-gateway' - env_file: .env + - 3000:3000 + - 3001:3001 + - 5555:5555 - typebot-viewer: - image: baptistearno/typebot-viewer:latest - restart: always - ports: - - '8081:3000' - env_file: .env +volumes: + db_data: + s3_data: diff --git a/package.json b/package.json index af873e5f03a..5e2c15cb349 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "docker:nuke": "docker compose -f docker-compose.dev.yml down --volumes --remove-orphans", "lint": "turbo run lint", "dev": "pnpm docker:up && turbo build --filter=@typebot.io/nextjs... && turbo run dev --filter=builder... --filter=viewer... --parallel --no-cache", + "devlight": "turbo build --filter=@typebot.io/nextjs... && turbo run dev --filter=builder... --filter=viewer... --parallel --no-cache", "build": "pnpm docker:up && turbo run build", + "buildlight": "turbo run build", "build:apps": "turbo run build --filter=builder... --filter=viewer...", "db:migrate": "cd packages/prisma && pnpm run db:migrate", "generate-change-log": "git fetch --all && pnpx gitmoji-changelog", From 84e8e02f34d8fe43eeea3f508a844a0665457955 Mon Sep 17 00:00:00 2001 From: memarius Date: Tue, 16 Jan 2024 15:36:54 +0100 Subject: [PATCH 02/10] local dev setup 2 --- .husky/pre-commit | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 7f05dd71282..bbad1fdebad 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" +#. "$(dirname -- "$0")/_/husky.sh" -pnpm lint && pnpm format:fix +#pnpm lint && pnpm format:fix From bdbd184d5b696d83956400e3f696d3a50be7fd5d Mon Sep 17 00:00:00 2001 From: memarius Date: Tue, 16 Jan 2024 15:37:16 +0100 Subject: [PATCH 03/10] Add Location Messages to WhatsApp Incoming --- packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts | 2 ++ packages/schemas/features/whatsapp.ts | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts index ba87ab17936..ba1dc776572 100644 --- a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts +++ b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts @@ -153,6 +153,8 @@ const getIncomingMessageContent = async ({ env.NEXTAUTH_URL + `/api/typebots/${typebotId}/whatsapp/media/${mediaId}` ) + case 'location': + return `Location: ${message.location.latitude},${message.location.longitude}` } } diff --git a/packages/schemas/features/whatsapp.ts b/packages/schemas/features/whatsapp.ts index a01777e9b86..8acf6ff396b 100644 --- a/packages/schemas/features/whatsapp.ts +++ b/packages/schemas/features/whatsapp.ts @@ -137,6 +137,15 @@ export const incomingMessageSchema = z.discriminatedUnion('type', [ document: z.object({ id: z.string() }), timestamp: z.string(), }), + z.object({ + from: z.string(), + type: z.literal('location'), + location: z.object({ + latitude: z.number(), + longitude: z.number() + }), + timestamp: z.string(), + }), ]) export const whatsAppWebhookRequestBodySchema = z.object({ From 7e8cbcf76f7fee55a21bc4b4d8d4609adc842043 Mon Sep 17 00:00:00 2001 From: memarius Date: Wed, 17 Jan 2024 08:33:07 +0100 Subject: [PATCH 04/10] undo local dev changes --- .gitignore | 7 ++--- .husky/pre-commit | 4 +-- dev.Dockerfile | 5 ---- docker-compose.prod.yml | 32 -------------------- docker-compose.yml | 65 +++++++++++++++-------------------------- package.json | 2 -- 6 files changed, 27 insertions(+), 88 deletions(-) delete mode 100644 dev.Dockerfile delete mode 100644 docker-compose.prod.yml diff --git a/.gitignore b/.gitignore index 19fce858744..dd249dae6ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -*/node_modules -*node_modules +node_modules .next .env.local workspace.code-workspace @@ -39,6 +38,4 @@ typebotsToFix.json snapshots .env -.typebot-build - -/.pnpm-store +.typebot-build \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index bbad1fdebad..7f05dd71282 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh -#. "$(dirname -- "$0")/_/husky.sh" +. "$(dirname -- "$0")/_/husky.sh" -#pnpm lint && pnpm format:fix +pnpm lint && pnpm format:fix diff --git a/dev.Dockerfile b/dev.Dockerfile deleted file mode 100644 index 1ef07837db8..00000000000 --- a/dev.Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ - -FROM node:20 -WORKDIR /app - -RUN curl -sL https://unpkg.com/@pnpm/self-installer | node \ No newline at end of file diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml deleted file mode 100644 index fbaede9778e..00000000000 --- a/docker-compose.prod.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3.3' - -volumes: - db-data: - -services: - typebot-db: - image: postgres:14-alpine - restart: always - volumes: - - db-data:/var/lib/postgresql/data - environment: - - POSTGRES_DB=typebot - - POSTGRES_PASSWORD=typebot - - typebot-builder: - image: baptistearno/typebot-builder:latest - restart: always - depends_on: - - typebot-db - ports: - - '8080:3000' - extra_hosts: - - 'host.docker.internal:host-gateway' - env_file: .env - - typebot-viewer: - image: baptistearno/typebot-viewer:latest - restart: always - ports: - - '8081:3000' - env_file: .env diff --git a/docker-compose.yml b/docker-compose.yml index d313b24f405..96279942c72 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,51 +1,32 @@ version: '3.3' + +volumes: + db-data: + services: typebot-db: - image: postgres:13 - ports: - - '5432:5432' + image: postgres:14-alpine restart: always volumes: - - db_data:/var/lib/postgresql/data + - db-data:/var/lib/postgresql/data environment: - POSTGRES_DB: 'typebot' - POSTGRES_PASSWORD: 'typebot' - minio: - image: minio/minio - command: server /data --console-address ":9001" - ports: - - '9000:9000' - - '9001:9001' - environment: - MINIO_ROOT_USER: minio - MINIO_ROOT_PASSWORD: minio123 - volumes: - - s3_data:/data - # This service just make sure a bucket with the right policies is created - createbuckets: - image: minio/mc + - POSTGRES_DB=typebot + - POSTGRES_PASSWORD=typebot + + typebot-builder: + image: baptistearno/typebot-builder:latest + restart: always depends_on: - - minio - entrypoint: > - /bin/sh -c " - sleep 10; - /usr/bin/mc config host add minio http://minio:9000 minio minio123; - /usr/bin/mc mb minio/typebot; - /usr/bin/mc anonymous set public minio/typebot/public; - exit 0; - " - node: - build: - context: ./ - dockerfile: dev.Dockerfile - volumes: - - ./:/app - entrypoint: ["pnpm", "devlight"] + - typebot-db ports: - - 3000:3000 - - 3001:3001 - - 5555:5555 + - '8080:3000' + extra_hosts: + - 'host.docker.internal:host-gateway' + env_file: .env -volumes: - db_data: - s3_data: + typebot-viewer: + image: baptistearno/typebot-viewer:latest + restart: always + ports: + - '8081:3000' + env_file: .env \ No newline at end of file diff --git a/package.json b/package.json index 5e2c15cb349..af873e5f03a 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,7 @@ "docker:nuke": "docker compose -f docker-compose.dev.yml down --volumes --remove-orphans", "lint": "turbo run lint", "dev": "pnpm docker:up && turbo build --filter=@typebot.io/nextjs... && turbo run dev --filter=builder... --filter=viewer... --parallel --no-cache", - "devlight": "turbo build --filter=@typebot.io/nextjs... && turbo run dev --filter=builder... --filter=viewer... --parallel --no-cache", "build": "pnpm docker:up && turbo run build", - "buildlight": "turbo run build", "build:apps": "turbo run build --filter=builder... --filter=viewer...", "db:migrate": "cd packages/prisma && pnpm run db:migrate", "generate-change-log": "git fetch --all && pnpx gitmoji-changelog", From 70a51d64482165da72577b09541be8ce5c5f17d1 Mon Sep 17 00:00:00 2001 From: memarius Date: Wed, 17 Jan 2024 08:36:03 +0100 Subject: [PATCH 05/10] Undo local dev changes 2 --- .gitignore | 3 +-- docker-compose.yml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index dd249dae6ca..759a3d5e622 100644 --- a/.gitignore +++ b/.gitignore @@ -37,5 +37,4 @@ typebotsToFix.json snapshots -.env -.typebot-build \ No newline at end of file +.env \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 96279942c72..5c5143197e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,5 +28,4 @@ services: image: baptistearno/typebot-viewer:latest restart: always ports: - - '8081:3000' - env_file: .env \ No newline at end of file + - '8081:3000' \ No newline at end of file From 808d97c4bbb02a68464b535a6b048293f0bdf63d Mon Sep 17 00:00:00 2001 From: memarius Date: Wed, 17 Jan 2024 08:38:52 +0100 Subject: [PATCH 06/10] Undo local dev changes 3 --- .gitignore | 3 ++- docker-compose.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 759a3d5e622..dd249dae6ca 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,5 @@ typebotsToFix.json snapshots -.env \ No newline at end of file +.env +.typebot-build \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5c5143197e2..96279942c72 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,4 +28,5 @@ services: image: baptistearno/typebot-viewer:latest restart: always ports: - - '8081:3000' \ No newline at end of file + - '8081:3000' + env_file: .env \ No newline at end of file From 6d62a77e554b7e543a44a5adb5978b5c0a1930b4 Mon Sep 17 00:00:00 2001 From: memarius <14908727+memarius@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:03:14 +0100 Subject: [PATCH 07/10] .gitignore add NL to EOF --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd249dae6ca..fa52735cf88 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,4 @@ typebotsToFix.json snapshots .env -.typebot-build \ No newline at end of file +.typebot-build From 36ab8621c957811489d73f23338fdf4c4472d846 Mon Sep 17 00:00:00 2001 From: memarius <14908727+memarius@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:04:16 +0100 Subject: [PATCH 08/10] docker-compose.yml add NL to EoF --- docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 96279942c72..5efa62a0834 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,4 +29,5 @@ services: restart: always ports: - '8081:3000' - env_file: .env \ No newline at end of file + env_file: .env + From 8f4016f931ceab803cedcd27537576293ef480c8 Mon Sep 17 00:00:00 2001 From: memarius <14908727+memarius@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:05:34 +0100 Subject: [PATCH 09/10] Update docker-compose.yml --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5efa62a0834..fbaede9778e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,4 +30,3 @@ services: ports: - '8081:3000' env_file: .env - From 43263912deba4ba8da53fc944af91916d224c3a6 Mon Sep 17 00:00:00 2001 From: memarius <14908727+memarius@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:07:18 +0100 Subject: [PATCH 10/10] Simplify location parsing --- packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts index ba1dc776572..0b00827c595 100644 --- a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts +++ b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts @@ -154,7 +154,7 @@ const getIncomingMessageContent = async ({ `/api/typebots/${typebotId}/whatsapp/media/${mediaId}` ) case 'location': - return `Location: ${message.location.latitude},${message.location.longitude}` + return `${message.location.latitude}, ${message.location.longitude}` } }