diff --git a/.env.example b/.env.example index e022c9c32..6edcc1b75 100644 --- a/.env.example +++ b/.env.example @@ -65,3 +65,8 @@ NODE_ENV=production # Set this to 'non-strict' to enable CSP for support pages. 'strict' isn't supported yet. Also, check the README for details. # Content Security Policy CSP_POLICY= + +# Used to allow browser push notifications +# You can use: 'npx web-push generate-vapid-keys' to generate these keys +NEXT_PUBLIC_VAPID_PUBLIC_KEY= +VAPID_PRIVATE_KEY= diff --git a/Dockerfile b/Dockerfile index 0f91d9022..7c34bfff7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,16 +12,18 @@ ARG NEXTAUTH_SECRET=secret ARG CALENDSO_ENCRYPTION_KEY=secret ARG MAX_OLD_SPACE_SIZE=4096 ARG NEXT_PUBLIC_API_V2_URL - +ARG NEXT_PUBLIC_VAPID_PUBLIC_KEY +ARG VAPID_PRIVATE_KEY ## We need these variables as required by Next.js build to create rewrites ARG NEXT_PUBLIC_SINGLE_ORG_SLUG ARG ORGANIZATIONS_ENABLED - ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \ NEXT_PUBLIC_API_V2_URL=$NEXT_PUBLIC_API_V2_URL \ NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \ NEXT_PUBLIC_WEBSITE_TERMS_URL=$NEXT_PUBLIC_WEBSITE_TERMS_URL \ NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL=$NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL \ + NEXT_PUBLIC_VAPID_PUBLIC_KEY=$NEXT_PUBLIC_VAPID_PUBLIC_KEY \ + VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY \ CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \ DATABASE_URL=$DATABASE_URL \ DATABASE_DIRECT_URL=$DATABASE_URL \ @@ -56,6 +58,8 @@ FROM node:18 AS builder-two WORKDIR /calcom ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000 +ARG NEXT_PUBLIC_VAPID_PUBLIC_KEY +ARG VAPID_PRIVATE_KEY ENV NODE_ENV=production @@ -71,8 +75,10 @@ COPY scripts scripts # Save value used during this build stage. If NEXT_PUBLIC_WEBAPP_URL and BUILT_NEXT_PUBLIC_WEBAPP_URL differ at # run-time, then start.sh will find/replace static values again. ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \ - BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL - + BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \ + NEXT_PUBLIC_VAPID_PUBLIC_KEY=$NEXT_PUBLIC_VAPID_PUBLIC_KEY \ + VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY + RUN scripts/replace-placeholder.sh http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER ${NEXT_PUBLIC_WEBAPP_URL} FROM node:18 AS runner @@ -81,8 +87,12 @@ FROM node:18 AS runner WORKDIR /calcom COPY --from=builder-two /calcom ./ ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000 +ARG NEXT_PUBLIC_VAPID_PUBLIC_KEY +ARG VAPID_PRIVATE_KEY ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \ - BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL + BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \ + NEXT_PUBLIC_VAPID_PUBLIC_KEY=$NEXT_PUBLIC_VAPID_PUBLIC_KEY \ + VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY ENV NODE_ENV=production EXPOSE 3000 @@ -92,3 +102,4 @@ HEALTHCHECK --interval=30s --timeout=30s --retries=5 \ CMD ["/calcom/scripts/start.sh"] +