Compare commits

...

61 Commits

Author SHA1 Message Date
actions-user
8772a23697 Auto updated submodule references
All checks were successful
Build and push image to DockerHub / build (push) Successful in 32m1s
2025-06-13 04:01:02 +00:00
0c2562a6d1 Update .github/workflows/docker-build-push-dockerhub.yml
All checks were successful
Build and push image to DockerHub / build (push) Successful in 31m13s
Update Calendso / Submodules Sync (push) Successful in 44s
2025-06-12 15:53:32 +00:00
actions-user
be6595e799 Auto updated submodule references
All checks were successful
Build and push image to DockerHub / build (push) Successful in 29m48s
2025-06-12 04:01:19 +00:00
d269688e8e Update .github/workflows/create-release.yaml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
Update Calendso / Submodules Sync (push) Successful in 1m0s
2025-06-11 13:50:36 +00:00
c94a3bc059 Update .github/workflows/create-release.yaml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-06-11 13:44:09 +00:00
actions-user
a37a3a8ea6 Auto updated submodule references 2025-06-11 04:01:01 +00:00
actions-user
48773914c3 Auto updated submodule references 2025-06-10 15:18:46 +00:00
actions-user
4d25dc387f Auto updated submodule references
All checks were successful
Build and push image to DockerHub / build (push) Successful in 31m48s
2025-06-10 04:01:03 +00:00
actions-user
d680e9dd0c Auto updated submodule references 2025-06-08 04:01:01 +00:00
actions-user
61580b4077 Auto updated submodule references 2025-06-07 04:01:02 +00:00
actions-user
cd1812c018 Auto updated submodule references 2025-06-06 04:01:04 +00:00
actions-user
082c271566 Auto updated submodule references 2025-06-05 04:01:01 +00:00
actions-user
16b6ca1d15 Auto updated submodule references 2025-06-04 04:01:07 +00:00
actions-user
21988157be Auto updated submodule references 2025-06-03 04:01:02 +00:00
actions-user
0da432412d Auto updated submodule references 2025-06-02 09:13:50 +00:00
4126000894 Delete .github/workflows/scarf-data-export.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
Update Calendso / Submodules Sync (push) Successful in 44s
2025-06-01 20:40:48 +00:00
3f2e980576 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Successful in 29m40s
Update Calendso / Submodules Sync (push) Successful in 54s
Export Scarf data / export-scarf-data (push) Has been cancelled
2025-05-31 21:30:53 +00:00
ad677f7578 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 20:32:43 +00:00
7a2cdfbdc6 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 34m4s
2025-05-31 19:26:12 +00:00
429870e999 Update .github/workflows/update-submodules.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 19:21:41 +00:00
683bda9917 Update .github/workflows/create-release.yaml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 19:21:12 +00:00
512dc4c961 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 4m5s
2025-05-31 18:21:20 +00:00
77736a4016 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 1m4s
2025-05-31 17:38:08 +00:00
292fe3e3b7 Update .github/workflows/docker-build-push-dockerhub.yml 2025-05-31 17:37:31 +00:00
4218914507 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 8s
2025-05-31 17:12:24 +00:00
d21ff3e22a Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 9s
2025-05-31 17:03:12 +00:00
4349a7061c Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 49s
2025-05-31 17:00:46 +00:00
139f2ab9e7 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Failing after 2m21s
2025-05-31 16:55:18 +00:00
2844760af0 Update .github/workflows/create-release.yaml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 16:55:05 +00:00
f3fe888ff2 Update .github/workflows/scarf-data-export.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 16:54:47 +00:00
c8b8d1dd0c Update .github/workflows/update-submodules.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 16:54:34 +00:00
86d3bcd1eb Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 14:06:22 +00:00
361262a9da Update Dockerfile
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 13:56:57 +00:00
3f405451b8 Update .github/workflows/docker-build-push-dockerhub.yml
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
2025-05-31 13:55:56 +00:00
actions-user
f1971aae35 Auto updated submodule references 2025-05-31 04:06:56 +00:00
Peer Richelsen
cf5b0b1fef Merge pull request #433 from kevinkupski/fix-policy-and-term-links 2025-05-30 17:45:47 +02:00
actions-user
8d0298a0fa Auto updated submodule references 2025-05-30 04:07:42 +00:00
actions-user
20728bc165 Auto updated submodule references 2025-05-29 04:08:38 +00:00
actions-user
590daea528 Auto updated submodule references 2025-05-28 04:07:54 +00:00
actions-user
82b90f66d9 Auto updated submodule references 2025-05-27 04:09:27 +00:00
actions-user
3b7e2c24fb Auto updated submodule references 2025-05-26 04:09:46 +00:00
actions-user
8a335a518c Auto updated submodule references 2025-05-25 04:09:55 +00:00
actions-user
4c389a68de Auto updated submodule references 2025-05-24 04:06:06 +00:00
actions-user
a6cdd9e644 Auto updated submodule references 2025-05-23 04:06:53 +00:00
actions-user
765de200f9 Auto updated submodule references 2025-05-22 04:08:05 +00:00
actions-user
7d29b6fde2 Auto updated submodule references 2025-05-21 04:07:21 +00:00
actions-user
6ed56fcc1f Auto updated submodule references 2025-05-20 04:07:09 +00:00
actions-user
54db06f0a1 Auto updated submodule references 2025-05-19 04:10:47 +00:00
actions-user
7330873692 Auto updated submodule references 2025-05-18 04:09:23 +00:00
actions-user
42e26b039a Auto updated submodule references 2025-05-17 04:06:17 +00:00
actions-user
bce3e9145b Auto updated submodule references 2025-05-16 04:07:43 +00:00
actions-user
2c2e303667 Auto updated submodule references 2025-05-15 04:06:43 +00:00
actions-user
566b205545 Auto updated submodule references 2025-05-14 04:06:53 +00:00
actions-user
2d9e617da7 Auto updated submodule references 2025-05-13 04:07:12 +00:00
actions-user
9fdd9b5043 Auto updated submodule references 2025-05-11 04:07:06 +00:00
actions-user
95344d5b8e Auto updated submodule references 2025-05-10 04:05:51 +00:00
actions-user
66479ad7e3 Auto updated submodule references 2025-05-09 04:06:39 +00:00
actions-user
6eba41e7ad Auto updated submodule references 2025-05-08 04:07:03 +00:00
actions-user
d7b9851d29 Auto updated submodule references 2025-05-07 04:06:28 +00:00
actions-user
9ccc13f524 Auto updated submodule references 2025-05-06 04:06:24 +00:00
Kevin Kupski
6ec69e18b9 Fix configuration for privacy policy and terms URLs 2025-05-05 19:28:19 +02:00
7 changed files with 199 additions and 189 deletions

View File

@@ -1,60 +1,77 @@
name: "Create Release" name: "Create Gitea Release"
on: # yamllint disable-line rule:truthy # This workflow is triggered manually from the Gitea Actions UI
on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
RELEASE_TAG: RELEASE_TAG:
description: 'v{Major}.{Minor}.{Patch}' description: 'The release tag to create, formatted as v{Major}.{Minor}.{Patch}'
required: true
jobs: jobs:
release: release:
name: "Release" name: "Release"
permissions:
contents: write
runs-on: "ubuntu-latest" runs-on: "ubuntu-latest"
steps: steps:
# Step 1: Check out the repository source code and its submodules.
# The TOKEN_GITEA is used here to grant permission for the later 'git push'.
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: "actions/checkout@v4"
with: with:
token: ${{ secrets.ACTIONS_ACCESS_TOKEN }} token: ${{ secrets.TOKEN_GITEA }}
submodules: true submodules: true
- name: Create branch and tag submodule # Step 2: Create a new release branch, update the submodule to the specified tag,
# and push the new branch to the Gitea repository.
- name: Create Branch and Update Submodule
run: | run: |
git config user.email "actions@github.com" # Configure git user for the commit
git config user.name "actions-user" git config user.email "actions@gitea.local"
git submodule update --init --remote git config user.name "Gitea Actions"
# Create the new release branch
git checkout -b 'release-${{ inputs.RELEASE_TAG }}' git checkout -b 'release-${{ inputs.RELEASE_TAG }}'
# Enter the submodule directory, fetch the latest tags, and check out the correct one.
# This points the submodule to the specific commit associated with the release tag.
(cd calcom && git fetch --tags origin && git checkout 'refs/tags/${{ inputs.RELEASE_TAG }}') (cd calcom && git fetch --tags origin && git checkout 'refs/tags/${{ inputs.RELEASE_TAG }}')
# Stage and commit the change to the submodule pointer
git add calcom git add calcom
git commit -m "tag version Cal.com version ${{ inputs.RELEASE_TAG }}" git commit -m "Update submodule to Cal.com version ${{ inputs.RELEASE_TAG }}"
# Push the newly created release branch to the remote Gitea repository
git push origin 'release-${{ inputs.RELEASE_TAG }}' git push origin 'release-${{ inputs.RELEASE_TAG }}'
# note: instead of secrets.GITHUB_TOKEN here, we need to use a PAT # Step 3: Call the Gitea API to create the official release object.
# so that the release creation triggers the image build workflow # This uses the same API token to authorize the action.
- name: "Create release" - name: "Create Gitea Release"
uses: "actions/github-script@v6" env:
with: GITEA_TOKEN: ${{ secrets.TOKEN_GITEA }}
github-token: "${{ secrets.ACTIONS_ACCESS_TOKEN }}" GITEA_API_URL: https://git.nethery.dev/api/v1
script: | OWNER: ${{ gitea.repository_owner }}
const isPreRelease = '${{ inputs.RELEASE_TAG }}'.includes('-rc'); REPO: ${{ gitea.repository_name }}
try { run: |
const response = await github.rest.repos.createRelease({ # Determine if the tag indicates a pre-release
draft: false, is_prerelease=false
generate_release_notes: true, if [[ "${{ inputs.RELEASE_TAG }}" == *"-rc"* || "${{ inputs.RELEASE_TAG }}" == *"-beta"* ]]; then
body: 'For Cal.com release details, see: https://github.com/calcom/cal.com/releases/tag/${{ inputs.RELEASE_TAG }}', is_prerelease=true
name: '${{ inputs.RELEASE_TAG }}', fi
target_commitish: 'release-${{ inputs.RELEASE_TAG }}',
owner: context.repo.owner,
prerelease: isPreRelease,
repo: context.repo.repo,
tag_name: '${{ inputs.RELEASE_TAG }}',
});
core.exportVariable('RELEASE_ID', response.data.id); echo "Creating release ${{ inputs.RELEASE_TAG }}..."
core.exportVariable('RELEASE_UPLOAD_URL', response.data.upload_url); echo "Is prerelease: $is_prerelease"
} catch (error) {
core.setFailed(error.message); # Use curl to send a POST request to the Gitea API's 'create release' endpoint
} curl --fail --silent --show-error -L -X POST \
-H "accept: application/json" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${GITEA_API_URL}/repos/${OWNER}/${REPO}/releases" \
-d '{
"tag_name": "${{ inputs.RELEASE_TAG }}",
"target_commitish": "release-${{ inputs.RELEASE_TAG }}",
"name": "${{ inputs.RELEASE_TAG }}",
"body": "For Cal.com release details, see: https://github.com/calcom/cal.com/releases/tag/${{ inputs.RELEASE_TAG }}",
"prerelease": '${is_prerelease}'
}'

View File

@@ -49,6 +49,11 @@ jobs:
# with: # with:
# ref: ${{ github.event.inputs.version }} # ref: ${{ github.event.inputs.version }}
- name: Base requirements
run: |
# packages
apk update && apk add --no-cache git docker docker-compose nodejs gpg openssh npm ansible
- name: checkout - name: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -59,29 +64,23 @@ jobs:
- name: Log in to the Docker Hub registry - name: Log in to the Docker Hub registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
# Username used to log against the Docker registry
username: ${{ secrets.DOCKER_HUB_USERNAME }} username: ${{ secrets.DOCKER_HUB_USERNAME }}
# Password or personal access token used to log against the Docker registry
password: ${{ secrets.DOCKER_HUB_TOKEN }} password: ${{ secrets.DOCKER_HUB_TOKEN }}
# Log out from the Docker registry at the end of a job
logout: true # optional, default is true
- name: Log in to the Github Container registry - name: Log in to the Github Container registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: nnethery
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GHCR_TOKEN }}
- name: Docker meta - name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/calendso/calendso ghcr.io/nnethery/cal.com
docker.io/calcom/cal.com nnethery/cal.com
ghcr.io/calcom/cal.com
# Add flavor latest only on full releases, not on pre-releases
flavor: | flavor: |
latest=${{ !github.event.release.prerelease }} latest=${{ !github.event.release.prerelease }}
@@ -93,8 +92,6 @@ jobs:
eval $(sed -e '/^#/d' -e 's/^/export /' -e 's/$/;/' .env) ; eval $(sed -e '/^#/d' -e 's/^/export /' -e 's/$/;/' .env) ;
# Temporarily disable ARM build due to runner performance issues # Temporarily disable ARM build due to runner performance issues
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v2
- name: Start database - name: Start database
run: | run: |
@@ -107,9 +104,9 @@ jobs:
network=container:database network=container:database
buildkitd-flags: | buildkitd-flags: |
--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
# config-inline: | # config-inline: |
# [worker.oci] # [worker.oci]
# max-parallelism = 1 # max-parallelism = 1
- name: Build image - name: Build image
id: docker_build id: docker_build
@@ -118,8 +115,8 @@ jobs:
context: ./ context: ./
file: ./Dockerfile file: ./Dockerfile
load: true # Load the image into the Docker daemon load: true # Load the image into the Docker daemon
push: false # Do not push the image at this stage push: false # Do not push the image at this stage
platforms: linux/amd64 platforms: linux/arm64 # Changed from linux/amd64
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}
build-args: | build-args: |
@@ -130,47 +127,49 @@ jobs:
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }} DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }} DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
- name: Test runtime # - name: Test runtime
run: | # run: |
tags="${{ steps.meta.outputs.tags }}" # tags="${{ steps.meta.outputs.tags }}"
IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter # IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
tag=${ADDR[0]} # Get the first tag # tag=${ADDR[0]} # Get the first tag
docker run --rm --network stack \ # docker run --rm --network stack \
-p 3000:3000 \ # -p 3000:3000 \
-e DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \ # -e DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \
-e DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \ # -e DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \
-e NEXTAUTH_SECRET=${{ env.NEXTAUTH_SECRET }} \ # -e NEXTAUTH_SECRET=${{ env.NEXTAUTH_SECRET }} \
-e CALENDSO_ENCRYPTION_KEY=${{ env.CALENDSO_ENCRYPTION_KEY }} \ # -e CALENDSO_ENCRYPTION_KEY=${{ env.CALENDSO_ENCRYPTION_KEY }} \
$tag & # $tag &
server_pid=$! # server_pid=$!
echo "Waiting for the server to start..." # echo "Waiting for the server to start..."
sleep 120 # sleep 120
echo ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login # echo ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login
for i in {1..60}; do # apk add curl
echo "Checking server health ($i/60)..."
response=$(curl -o /dev/null -s -w "%{http_code}" ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login)
echo "HTTP Status Code: $response"
if [[ "$response" == "200" ]] || [[ "$response" == "307" ]]; then
echo "Server is healthy"
# Now, shutdown the server
kill $server_pid
exit 0
fi
sleep 1
done
echo "Server health check failed" # for i in {1..60}; do
kill $server_pid # echo "Checking server health ($i/60)..."
exit 1 # response=$(curl -o /dev/null -s -w "%{http_code}" ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login)
env: # echo "HTTP Status Code: $response"
NEXTAUTH_SECRET: 'EI4qqDpcfdvf4A+0aQEEx8JjHxHSy4uWiZw/F32K+pA=' # if [[ "$response" == "200" ]] || [[ "$response" == "307" ]]; then
CALENDSO_ENCRYPTION_KEY: '0zfLtY99wjeLnsM7qsa8xsT+Q0oSgnOL' # echo "Server is healthy"
# # Now, shutdown the server
# kill $server_pid
# exit 0
# fi
# sleep 1
# done
# echo "Server health check failed"
# kill $server_pid
# exit 1
# env:
# NEXTAUTH_SECRET: 'EI4qqDpcfdvf4A+0aQEEx8JjHxHSy4uWiZw/F32K+pA='
# CALENDSO_ENCRYPTION_KEY: '0zfLtY99wjeLnsM7qsa8xsT+Q0oSgnOL'
- name: Push image - name: Push image
id: docker_push id: docker_push
@@ -179,7 +178,7 @@ jobs:
context: ./ context: ./
file: ./Dockerfile file: ./Dockerfile
push: true push: true
platforms: linux/amd64 platforms: linux/arm64 # Changed from linux/amd64
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}
build-args: | build-args: |
@@ -196,4 +195,4 @@ jobs:
- name: Cleanup - name: Cleanup
run: | run: |
docker compose down docker compose down

View File

@@ -1,14 +0,0 @@
name: Export Scarf data
on:
schedule:
- cron: '0 0 * * *'
jobs:
export-scarf-data:
runs-on: ubuntu-latest
steps:
- uses: docker://scarf.docker.scarf.sh/scarf-sh/scarf-postgres-exporter:latest
env:
SCARF_API_TOKEN: ${{ secrets.SCARF_API_TOKEN }}
SCARF_ENTITY_NAME: Calcom
PSQL_CONN_STRING: ${{ secrets.PSQL_CONN_STRING }}

View File

@@ -1,83 +1,87 @@
FROM node:18 AS builder FROM node:18 AS builder
WORKDIR /calcom WORKDIR /calcom
ARG NEXT_PUBLIC_LICENSE_CONSENT ARG NEXT_PUBLIC_LICENSE_CONSENT
ARG CALCOM_TELEMETRY_DISABLED ARG NEXT_PUBLIC_WEBSITE_TERMS_URL
ARG DATABASE_URL ARG NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL
ARG NEXTAUTH_SECRET=secret ARG CALCOM_TELEMETRY_DISABLED
ARG CALENDSO_ENCRYPTION_KEY=secret ARG DATABASE_URL
ARG MAX_OLD_SPACE_SIZE=4096 ARG NEXTAUTH_SECRET=secret
ARG NEXT_PUBLIC_API_V2_URL ARG CALENDSO_ENCRYPTION_KEY=secret
ARG MAX_OLD_SPACE_SIZE=4096
ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \ ARG NEXT_PUBLIC_API_V2_URL
NEXT_PUBLIC_API_V2_URL=$NEXT_PUBLIC_API_V2_URL \
NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \ ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \
CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \ NEXT_PUBLIC_API_V2_URL=$NEXT_PUBLIC_API_V2_URL \
DATABASE_URL=$DATABASE_URL \ NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \
DATABASE_DIRECT_URL=$DATABASE_URL \ NEXT_PUBLIC_WEBSITE_TERMS_URL=$NEXT_PUBLIC_WEBSITE_TERMS_URL \
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \ NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL=$NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL \
CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \ CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \
NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE} \ DATABASE_URL=$DATABASE_URL \
BUILD_STANDALONE=true DATABASE_DIRECT_URL=$DATABASE_URL \
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \
COPY calcom/package.json calcom/yarn.lock calcom/.yarnrc.yml calcom/playwright.config.ts calcom/turbo.json calcom/git-init.sh calcom/git-setup.sh calcom/i18n.json ./ CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \
COPY calcom/.yarn ./.yarn NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE} \
COPY calcom/apps/web ./apps/web BUILD_STANDALONE=true
COPY calcom/apps/api/v2 ./apps/api/v2
COPY calcom/packages ./packages COPY calcom/package.json calcom/yarn.lock calcom/.yarnrc.yml calcom/playwright.config.ts calcom/turbo.json calcom/i18n.json ./
COPY calcom/tests ./tests COPY calcom/.yarn ./.yarn
COPY calcom/apps/web ./apps/web
RUN yarn config set httpTimeout 1200000 COPY calcom/apps/api/v2 ./apps/api/v2
RUN npx turbo prune --scope=@calcom/web --scope=@calcom/trpc --docker COPY calcom/packages ./packages
RUN yarn install COPY calcom/tests ./tests
RUN yarn db-deploy
RUN yarn --cwd packages/prisma seed-app-store RUN yarn config set httpTimeout 1200000
# Build and make embed servable from web/public/embed folder RUN npx turbo prune --scope=@calcom/web --scope=@calcom/trpc --docker
RUN yarn workspace @calcom/trpc run build RUN yarn install
RUN yarn --cwd packages/embeds/embed-core workspace @calcom/embed-core run build RUN yarn db-deploy
RUN yarn --cwd apps/web workspace @calcom/web run build RUN yarn --cwd packages/prisma seed-app-store
# Build and make embed servable from web/public/embed folder
# RUN yarn plugin import workspace-tools && \ RUN yarn workspace @calcom/trpc run build
# yarn workspaces focus --all --production RUN yarn --cwd packages/embeds/embed-core workspace @calcom/embed-core run build
RUN rm -rf node_modules/.cache .yarn/cache apps/web/.next/cache RUN yarn --cwd apps/web workspace @calcom/web run build
FROM node:18 AS builder-two # RUN yarn plugin import workspace-tools && \
# yarn workspaces focus --all --production
WORKDIR /calcom RUN rm -rf node_modules/.cache .yarn/cache apps/web/.next/cache
ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
FROM node:18 AS builder-two
ENV NODE_ENV=production
WORKDIR /calcom
COPY calcom/package.json calcom/.yarnrc.yml calcom/turbo.json calcom/i18n.json ./ ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
COPY calcom/.yarn ./.yarn
COPY --from=builder /calcom/yarn.lock ./yarn.lock ENV NODE_ENV=production
COPY --from=builder /calcom/node_modules ./node_modules
COPY --from=builder /calcom/packages ./packages COPY calcom/package.json calcom/.yarnrc.yml calcom/turbo.json calcom/i18n.json ./
COPY --from=builder /calcom/apps/web ./apps/web COPY calcom/.yarn ./.yarn
COPY --from=builder /calcom/packages/prisma/schema.prisma ./prisma/schema.prisma COPY --from=builder /calcom/yarn.lock ./yarn.lock
COPY scripts scripts COPY --from=builder /calcom/node_modules ./node_modules
COPY --from=builder /calcom/packages ./packages
# Save value used during this build stage. If NEXT_PUBLIC_WEBAPP_URL and BUILT_NEXT_PUBLIC_WEBAPP_URL differ at COPY --from=builder /calcom/apps/web ./apps/web
# run-time, then start.sh will find/replace static values again. COPY --from=builder /calcom/packages/prisma/schema.prisma ./prisma/schema.prisma
ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \ COPY scripts scripts
BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL
# Save value used during this build stage. If NEXT_PUBLIC_WEBAPP_URL and BUILT_NEXT_PUBLIC_WEBAPP_URL differ at
RUN scripts/replace-placeholder.sh http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER ${NEXT_PUBLIC_WEBAPP_URL} # run-time, then start.sh will find/replace static values again.
ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \
FROM node:18 AS runner BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL
RUN scripts/replace-placeholder.sh http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER ${NEXT_PUBLIC_WEBAPP_URL}
WORKDIR /calcom
COPY --from=builder-two /calcom ./ FROM node:18 AS runner
ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \
BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL WORKDIR /calcom
COPY --from=builder-two /calcom ./
ENV NODE_ENV=production ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
EXPOSE 3000 ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \
BUILT_NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL
HEALTHCHECK --interval=30s --timeout=30s --retries=5 \
CMD wget --spider http://localhost:3000 || exit 1 ENV NODE_ENV=production
EXPOSE 3000
CMD ["/calcom/scripts/start.sh"]
HEALTHCHECK --interval=30s --timeout=30s --retries=5 \
CMD wget --spider http://localhost:3000 || exit 1
CMD ["/calcom/scripts/start.sh"]

View File

@@ -219,6 +219,8 @@ Updating these variables is not required for evaluation, but is required for run
| --- | --- | --- | --- | | --- | --- | --- | --- |
| NEXT_PUBLIC_WEBAPP_URL | Base URL injected into static files | optional | `http://localhost:3000` | | NEXT_PUBLIC_WEBAPP_URL | Base URL injected into static files | optional | `http://localhost:3000` |
| NEXT_PUBLIC_LICENSE_CONSENT | license consent - true/false | | | | NEXT_PUBLIC_LICENSE_CONSENT | license consent - true/false | | |
| NEXT_PUBLIC_WEBSITE_TERMS_URL | custom URL for terms and conditions website | optional | `https://cal.com/terms` |
| NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL | custom URL for privacy policy website | optional | `https://cal.com/privacy` |
| CALCOM_TELEMETRY_DISABLED | Allow cal.com to collect anonymous usage data (set to `1` to disable) | | | | CALCOM_TELEMETRY_DISABLED | Allow cal.com to collect anonymous usage data (set to `1` to disable) | | |
| DATABASE_URL | database url with credentials - if using a connection pooler, this setting should point there | required | `postgresql://unicorn_user:magical_password@database:5432/calendso` | | DATABASE_URL | database url with credentials - if using a connection pooler, this setting should point there | required | `postgresql://unicorn_user:magical_password@database:5432/calendso` |
| DATABASE_DIRECT_URL | direct database url with credentials if using a connection pooler (e.g. PgBouncer, Prisma Accelerate, etc.) | optional | | | DATABASE_DIRECT_URL | direct database url with credentials if using a connection pooler (e.g. PgBouncer, Prisma Accelerate, etc.) | optional | |

2
calcom

Submodule calcom updated: 446c780d85...e6497c87ca

View File

@@ -28,6 +28,8 @@ services:
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL} NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
NEXT_PUBLIC_API_V2_URL: ${NEXT_PUBLIC_API_V2_URL} NEXT_PUBLIC_API_V2_URL: ${NEXT_PUBLIC_API_V2_URL}
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT} NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
NEXT_PUBLIC_WEBSITE_TERMS_URL: ${EXT_PUBLIC_WEBSITE_TERMS_URL}
NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL: ${NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL}
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED} CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY} CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY}