diff --git a/.gitignore b/.gitignore index f2c741028..41786c94c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ firebaseServiceAccount.json tags dump.sql + +__env.js diff --git a/Dockerfile b/Dockerfile index 0f7d4e906..996db1858 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ COPY --from=pruner /app/out/full/ . COPY ./apps/${SCOPE}/.env.docker ./apps/${SCOPE}/.env.production COPY ./apps/${SCOPE}/.env.docker ./apps/${SCOPE}/.env.local RUN apt-get -qy update && apt-get -qy install openssl -RUN yarn turbo run build --scope=${SCOPE} --include-dependencies --no-deps +RUN yarn turbo run build:docker --scope=${SCOPE} --include-dependencies --no-deps RUN find . -name node_modules | xargs rm -rf FROM base AS runner @@ -36,10 +36,10 @@ COPY --from=builder /app/apps/${SCOPE}/.next/static ./.next/static COPY --from=builder /app/apps/${SCOPE}/.env.docker ./.env.production RUN apt-get -qy update && apt-get -qy install openssl -COPY entrypoint.sh ./ +COPY env.sh ./ COPY ${SCOPE}-entrypoint.sh ./ RUN chmod +x ./${SCOPE}-entrypoint.sh -RUN chmod +x ./entrypoint.sh +RUN chmod +x ./env.sh ENTRYPOINT ./${SCOPE}-entrypoint.sh EXPOSE 3000 diff --git a/apps/builder/.env.docker b/apps/builder/.env.docker index cc204ce97..343791d83 100644 --- a/apps/builder/.env.docker +++ b/apps/builder/.env.docker @@ -1,7 +1,7 @@ # Don't edit this file -NEXT_PUBLIC_VIEWER_URL=DOCKER_NEXT_PUBLIC_VIEWER_URL -NEXT_PUBLIC_SMTP_FROM=DOCKER_NEXT_PUBLIC_SMTP_FROM -NEXT_PUBLIC_GOOGLE_API_KEY=DOCKER_NEXT_PUBLIC_GOOGLE_API_KEY -NEXT_PUBLIC_GIPHY_API_KEY=DOCKER_NEXT_PUBLIC_GIPHY_API_KEY -NEXT_PUBLIC_STRIPE_PUBLIC_KEY=DOCKER_NEXT_PUBLIC_STRIPE_PUBLIC_KEY -NEXT_PUBLIC_SENTRY_DSN=DOCKER_NEXT_PUBLIC_SENTRY_DSN +NEXT_PUBLIC_VIEWER_URL= +NEXT_PUBLIC_SMTP_FROM= +NEXT_PUBLIC_GOOGLE_API_KEY= +NEXT_PUBLIC_GIPHY_API_KEY= +NEXT_PUBLIC_STRIPE_PUBLIC_KEY= +NEXT_PUBLIC_SENTRY_DSN= diff --git a/apps/builder/components/share/ShareContent.tsx b/apps/builder/components/share/ShareContent.tsx index 9eeb261fe..709a6ac33 100644 --- a/apps/builder/components/share/ShareContent.tsx +++ b/apps/builder/components/share/ShareContent.tsx @@ -20,6 +20,7 @@ import { isDefined, isNotDefined } from 'utils' import { CustomDomainsDropdown } from './customDomain/CustomDomainsDropdown' import { EditableUrl } from './EditableUrl' import { integrationsList } from './integrations/EmbedButton' +import { env } from 'utils' export const ShareContent = () => { const { workspace } = useWorkspace() @@ -58,9 +59,7 @@ export const ShareContent = () => { {typebot && ( diff --git a/apps/builder/components/share/codeSnippets/Chat/EmbedCode.tsx b/apps/builder/components/share/codeSnippets/Chat/EmbedCode.tsx index c2974d967..cca185279 100644 --- a/apps/builder/components/share/codeSnippets/Chat/EmbedCode.tsx +++ b/apps/builder/components/share/codeSnippets/Chat/EmbedCode.tsx @@ -5,7 +5,7 @@ import { BubbleParams } from 'typebot-js' import { parseInitBubbleCode, typebotJsHtml } from '../params' import { useTypebot } from 'contexts/TypebotContext' import { CodeEditor } from 'components/shared/CodeEditor' -import { isEmpty } from 'utils' +import { env, isEmpty } from 'utils' type ChatEmbedCodeProps = { withStarterVariables?: boolean @@ -21,9 +21,9 @@ export const ChatEmbedCode = ({ const snippet = prettier.format( createSnippet({ url: `${ - isEmpty(process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL) - ? process.env.NEXT_PUBLIC_VIEWER_URL - : process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL + isEmpty(env('VIEWER_INTERNAL_URL')) + ? env('VIEWER_URL') + : env('VIEWER_INTERNAL_URL') }/${typebot?.publicId}`, button, proactiveMessage, diff --git a/apps/builder/components/share/codeSnippets/Container/EmbedCode.tsx b/apps/builder/components/share/codeSnippets/Container/EmbedCode.tsx index d2dd0e094..16d13fb15 100644 --- a/apps/builder/components/share/codeSnippets/Container/EmbedCode.tsx +++ b/apps/builder/components/share/codeSnippets/Container/EmbedCode.tsx @@ -5,7 +5,7 @@ import { parseInitContainerCode, typebotJsHtml } from '../params' import { IframeParams } from 'typebot-js' import { useTypebot } from 'contexts/TypebotContext' import { CodeEditor } from 'components/shared/CodeEditor' -import { isEmpty } from 'utils' +import { env, isEmpty } from 'utils' type ContainerEmbedCodeProps = { widthLabel: string @@ -23,9 +23,9 @@ export const ContainerEmbedCode = ({ const snippet = prettier.format( parseSnippet({ url: `${ - isEmpty(process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL) - ? process.env.NEXT_PUBLIC_VIEWER_URL - : process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL + isEmpty(env('VIEWER_INTERNAL_URL')) + ? env('VIEWER_URL') + : env('VIEWER_INTERNAL_URL') }/${typebot?.publicId}`, heightLabel, widthLabel, diff --git a/apps/builder/components/share/codeSnippets/Iframe/EmbedCode.tsx b/apps/builder/components/share/codeSnippets/Iframe/EmbedCode.tsx index 8656aca81..f9c0f9620 100644 --- a/apps/builder/components/share/codeSnippets/Iframe/EmbedCode.tsx +++ b/apps/builder/components/share/codeSnippets/Iframe/EmbedCode.tsx @@ -1,7 +1,7 @@ import { FlexProps } from '@chakra-ui/react' import { CodeEditor } from 'components/shared/CodeEditor' import { useTypebot } from 'contexts/TypebotContext' -import { isEmpty } from 'utils' +import { env, isEmpty } from 'utils' type Props = { widthLabel: string @@ -14,9 +14,9 @@ export const IframeEmbedCode = ({ }: Props & FlexProps) => { const { typebot } = useTypebot() const src = `${ - isEmpty(process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL) - ? process.env.NEXT_PUBLIC_VIEWER_URL - : process.env.NEXT_PUBLIC_VIEWER_INTERNAL_URL + isEmpty(env('VIEWER_INTERNAL_URL')) + ? env('VIEWER_URL') + : env('VIEWER_INTERNAL_URL') }/${typebot?.publicId}` const code = `