From dc20b264722f62a233d860aa559570b99e146cb7 Mon Sep 17 00:00:00 2001 From: Henit Chobisa Date: Mon, 4 Sep 2023 12:03:52 +0000 Subject: [PATCH 1/8] chore: updated space and web dockerfiles --- space/Dockerfile.space | 18 +++++++----------- web/Dockerfile.web | 11 +++++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/space/Dockerfile.space b/space/Dockerfile.space index 34fe42a13f0..c9e591fc57a 100644 --- a/space/Dockerfile.space +++ b/space/Dockerfile.space @@ -1,6 +1,5 @@ FROM node:18-alpine AS builder RUN apk add --no-cache libc6-compat -# Set working directory WORKDIR /app ENV NEXT_PUBLIC_API_BASE_URL=http://NEXT_PUBLIC_API_BASE_URL_PLACEHOLDER @@ -9,37 +8,34 @@ COPY . . RUN turbo prune --scope=space --docker -# Add lockfile and package.json's of isolated subworkspace FROM node:18-alpine AS installer RUN apk add --no-cache libc6-compat WORKDIR /app ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 -# First install the dependencies (as they change less often) COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . COPY --from=builder /app/out/yarn.lock ./yarn.lock RUN yarn install --network-timeout 500000 -# Build the project COPY --from=builder /app/out/full/ . COPY turbo.json turbo.json COPY replace-env-vars.sh /usr/local/bin/ USER root RUN chmod +x /usr/local/bin/replace-env-vars.sh -RUN yarn turbo run build --filter=space - ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL + BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ + NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX + +RUN yarn turbo run build --filter=space RUN /usr/local/bin/replace-env-vars.sh http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER ${NEXT_PUBLIC_API_BASE_URL} space FROM node:18-alpine AS runner WORKDIR /app -# Don't run production as root RUN addgroup --system --gid 1001 plane RUN adduser --system --uid 1001 captain USER captain @@ -47,16 +43,16 @@ USER captain COPY --from=installer /app/space/next.config.js . COPY --from=installer /app/space/package.json . -# Automatically leverage output traces to reduce image sizß -# https://nextjs.org/docs/advanced-features/output-file-tracing COPY --from=installer --chown=captain:plane /app/space/.next/standalone ./ COPY --from=installer --chown=captain:plane /app/space/.next ./space/.next COPY --from=installer --chown=captain:plane /app/space/public ./space/public ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 +ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL + BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ + NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX USER root COPY replace-env-vars.sh /usr/local/bin/ diff --git a/web/Dockerfile.web b/web/Dockerfile.web index 6fac46c2d8d..a171730a384 100644 --- a/web/Dockerfile.web +++ b/web/Dockerfile.web @@ -15,6 +15,7 @@ FROM node:18-alpine AS installer RUN apk add --no-cache libc6-compat WORKDIR /app ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 +ARG NEXT_PUBLIC_DEPLOY_URL=http://localhost/spaces # First install the dependencies (as they change less often) COPY .gitignore .gitignore @@ -29,11 +30,12 @@ COPY replace-env-vars.sh /usr/local/bin/ USER root RUN chmod +x /usr/local/bin/replace-env-vars.sh +ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ + BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ + NEXT_PUBLIC_DEPLOY_URL=$NEXT_PUBLIC_DEPLOY_URL + RUN yarn turbo run build --filter=web -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ENV NEXT_PUBLIC_DEPLOY_URL=${NEXT_PUBLIC_DEPLOY_URL} RUN /usr/local/bin/replace-env-vars.sh http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER ${NEXT_PUBLIC_API_BASE_URL} web FROM node:18-alpine AS runner @@ -55,7 +57,8 @@ COPY --from=installer --chown=captain:plane /app/web/.next ./web/.next ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL + BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ + NEXT_PUBLIC_DEPLOY_URL=$NEXT_PUBLIC_DEPLOY_URL USER root COPY replace-env-vars.sh /usr/local/bin/ From a4b10455d0893482f5a36e07cb9b4bc48d472120 Mon Sep 17 00:00:00 2001 From: Henit Chobisa Date: Mon, 4 Sep 2023 12:04:03 +0000 Subject: [PATCH 2/8] chore: updated compose file params --- docker-compose.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 4fe7f4ab715..e51f88c5568 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,7 @@ services: context: . dockerfile: ./web/Dockerfile.web args: + DOCKER_BUILDKIT: 1 NEXT_PUBLIC_API_BASE_URL: http://localhost:8000 NEXT_PUBLIC_DEPLOY_URL: http://localhost/spaces restart: always @@ -67,6 +68,7 @@ services: dockerfile: ./space/Dockerfile.space args: DOCKER_BUILDKIT: 1 + NEXT_PUBLIC_DEPLOY_WITH_NGINX: 1 NEXT_PUBLIC_API_BASE_URL: http://localhost:8000 restart: always command: /usr/local/bin/start.sh space/server.js space @@ -84,8 +86,12 @@ services: build: context: ./apiserver dockerfile: Dockerfile.api + args: + DOCKER_BUILDKIT: 1 restart: always command: ./bin/takeoff + ports: + - 8000:8000 env_file: - .env environment: @@ -99,6 +105,8 @@ services: build: context: ./apiserver dockerfile: Dockerfile.api + args: + DOCKER_BUILDKIT: 1 restart: always command: ./bin/worker env_file: @@ -115,6 +123,8 @@ services: build: context: ./apiserver dockerfile: Dockerfile.api + args: + DOCKER_BUILDKIT: 1 restart: always command: ./bin/beat env_file: From da8c6eb096e3bcdd0448aabb8475738bae13b589 Mon Sep 17 00:00:00 2001 From: Henit Chobisa Date: Mon, 4 Sep 2023 12:04:29 +0000 Subject: [PATCH 3/8] updated nextjs config for basepath --- space/next.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/space/next.config.js b/space/next.config.js index 712c1c472e8..aba7fb304d0 100644 --- a/space/next.config.js +++ b/space/next.config.js @@ -13,6 +13,7 @@ const nextConfig = { if (parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) { const nextConfigWithNginx = withImages({ basePath: "/spaces", ...nextConfig }); + module.exports = nextConfigWithNginx } else { module.exports = nextConfig; } From 750e1244d937940b33417bc40101c46800dcc5f9 Mon Sep 17 00:00:00 2001 From: Henit Chobisa Date: Mon, 4 Sep 2023 12:04:45 +0000 Subject: [PATCH 4/8] chore: updated package.json with new packages --- space/package.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/space/package.json b/space/package.json index 1c91535678f..768abb8ffc7 100644 --- a/space/package.json +++ b/space/package.json @@ -9,8 +9,15 @@ "lint": "next lint" }, "dependencies": { + "@blueprintjs/core": "^4.16.3", + "@blueprintjs/popover2": "^1.13.3", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@headlessui/react": "^1.7.13", - "@mui/icons-material": "^5.14.7", + "@heroicons/react": "^2.0.12", + "@mui/icons-material": "^5.14.1", + "@mui/material": "^5.14.1", + "@tailwindcss/typography": "^0.5.9", "@tiptap-pro/extension-unique-id": "^2.1.0", "@tiptap/extension-code-block-lowlight": "^2.0.4", "@tiptap/extension-color": "^2.0.4", @@ -33,17 +40,25 @@ "@tiptap/starter-kit": "^2.0.4", "@tiptap/suggestion": "^2.0.4", "axios": "^1.3.4", + "clsx": "^2.0.0", "js-cookie": "^3.0.1", + "lowlight": "^2.9.0", + "lucide-react": "^0.263.1", "mobx": "^6.10.0", "mobx-react-lite": "^4.0.3", "next": "12.3.2", "next-images": "^1.8.5", - "next-theme": "^0.1.5", + "next-themes": "^0.2.1", "nprogress": "^0.2.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.38.0", + "react-moveable": "^0.54.1", "swr": "^2.2.2", + "tailwind-merge": "^1.14.0", + "tiptap-markdown": "^0.8.2", "typescript": "4.9.5", + "use-debounce": "^9.0.4", "uuid": "^9.0.0" }, "devDependencies": { From 4dcec131d0890c090e965935653a905368d32b83 Mon Sep 17 00:00:00 2001 From: Henit Chobisa Date: Mon, 4 Sep 2023 12:41:17 +0000 Subject: [PATCH 5/8] chore: modified space and web dockerfiles --- space/Dockerfile.space | 14 ++++++-------- web/Dockerfile.web | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/space/Dockerfile.space b/space/Dockerfile.space index c9e591fc57a..963dad136e4 100644 --- a/space/Dockerfile.space +++ b/space/Dockerfile.space @@ -12,7 +12,6 @@ FROM node:18-alpine AS installer RUN apk add --no-cache libc6-compat WORKDIR /app -ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . @@ -25,9 +24,10 @@ COPY replace-env-vars.sh /usr/local/bin/ USER root RUN chmod +x /usr/local/bin/replace-env-vars.sh -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 +ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 + +ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX RUN yarn turbo run build --filter=space @@ -49,10 +49,8 @@ COPY --from=installer --chown=captain:plane /app/space/.next ./space/.next COPY --from=installer --chown=captain:plane /app/space/public ./space/public ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 -ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ - NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 +ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX USER root COPY replace-env-vars.sh /usr/local/bin/ diff --git a/web/Dockerfile.web b/web/Dockerfile.web index a171730a384..40946fa2dbd 100644 --- a/web/Dockerfile.web +++ b/web/Dockerfile.web @@ -56,6 +56,8 @@ COPY --from=installer --chown=captain:plane /app/web/.next/standalone ./ COPY --from=installer --chown=captain:plane /app/web/.next ./web/.next ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 +ARG NEXT_PUBLIC_DEPLOY_URL=http://localhost/spaces + ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ BUILT_NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL \ NEXT_PUBLIC_DEPLOY_URL=$NEXT_PUBLIC_DEPLOY_URL From c7097c5a37b00e43163b107c1c04b92a13e9b85b Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Mon, 4 Sep 2023 18:36:49 +0530 Subject: [PATCH 6/8] dev: update deploy configuration for deploy images --- docker-compose-hub.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docker-compose-hub.yml b/docker-compose-hub.yml index fcb93c530dd..7c16eba4657 100644 --- a/docker-compose-hub.yml +++ b/docker-compose-hub.yml @@ -38,7 +38,7 @@ services: container_name: planefrontend image: makeplane/plane-frontend:latest restart: always - command: /usr/local/bin/start.sh apps/app/server.js app + command: /usr/local/bin/start.sh web/server.js app env_file: - .env environment: @@ -56,6 +56,20 @@ services: - plane-api - plane-worker + plane-deploy: + container_name: planedeploy + image: makeplane/plane-deploy:latest + restart: always + command: /usr/local/bin/start.sh space/server.js space + env_file: + - .env + environment: + NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL} + depends_on: + - plane-api + - plane-worker + - plane-web + plane-api: container_name: planebackend image: makeplane/plane-backend:latest From 7f37fd628af65c7779973ffbe1be2aef5abb175e Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Mon, 4 Sep 2023 18:43:40 +0530 Subject: [PATCH 7/8] dev: update docker folder for web --- docker-compose-hub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-hub.yml b/docker-compose-hub.yml index 7c16eba4657..56dbbe670d4 100644 --- a/docker-compose-hub.yml +++ b/docker-compose-hub.yml @@ -38,7 +38,7 @@ services: container_name: planefrontend image: makeplane/plane-frontend:latest restart: always - command: /usr/local/bin/start.sh web/server.js app + command: /usr/local/bin/start.sh web/server.js web env_file: - .env environment: From ba99cc4e0b288d036bdd91019afb7fcf9547a92e Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Mon, 4 Sep 2023 18:45:13 +0530 Subject: [PATCH 8/8] dev: add semi colon for module exports --- space/next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/space/next.config.js b/space/next.config.js index aba7fb304d0..392a4cab9cd 100644 --- a/space/next.config.js +++ b/space/next.config.js @@ -13,7 +13,7 @@ const nextConfig = { if (parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) { const nextConfigWithNginx = withImages({ basePath: "/spaces", ...nextConfig }); - module.exports = nextConfigWithNginx + module.exports = nextConfigWithNginx; } else { module.exports = nextConfig; }