Merge pull request #104 from calcom/rework
This commit is contained in:
commit
f78d40d2e7
10 changed files with 114 additions and 87 deletions
3
.dockerignore
Normal file
3
.dockerignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
.git
|
||||
.github
|
||||
.env.example
|
17
.env.example
17
.env.example
|
@ -8,8 +8,18 @@
|
|||
NEXT_PUBLIC_LICENSE_CONSENT=
|
||||
LICENSE=
|
||||
|
||||
BASE_URL=http://localhost:3000
|
||||
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
||||
# BASE_URL and NEXT_PUBLIC_APP_URL are both deprecated. Both are replaced with one variable, NEXT_PUBLIC_WEBAPP_URL
|
||||
# BASE_URL=http://localhost:3000
|
||||
# NEXT_PUBLIC_APP_URL=http://localhost:3000
|
||||
|
||||
NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
|
||||
|
||||
# It is highly recommended that the NEXTAUTH_SECRET must be overridden and very unique
|
||||
# Use `openssl rand -base64 32` to generate a key
|
||||
NEXTAUTH_SECRET=secret
|
||||
|
||||
# Deprecation note: JWT_SECRET is no longer used
|
||||
# JWT_SECRET=secret
|
||||
|
||||
POSTGRES_USER=unicorn_user
|
||||
POSTGRES_PASSWORD=magical_password
|
||||
|
@ -42,7 +52,4 @@ EMAIL_SERVER_PASSWORD=email_password
|
|||
# Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`
|
||||
CALENDSO_ENCRYPTION_KEY=
|
||||
|
||||
# It is highly recommended that the JWT secret must be overridden and very unique
|
||||
JWT_SECRET=secret
|
||||
|
||||
NODE_ENV=production
|
||||
|
|
|
@ -33,9 +33,12 @@ jobs:
|
|||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Git submodule update
|
||||
run: |
|
||||
git submodule update --init
|
||||
|
||||
- name: Docker Login
|
||||
# You may pin to the exact commit or the version.
|
||||
|
|
4
.gitmodules
vendored
4
.gitmodules
vendored
|
@ -1,4 +1,4 @@
|
|||
[submodule "calendso"]
|
||||
path = calendso
|
||||
[submodule "calcom"]
|
||||
path = calcom
|
||||
url = https://github.com/calcom/cal.com.git
|
||||
branch = main
|
||||
|
|
89
Dockerfile
89
Dockerfile
|
@ -3,40 +3,40 @@ FROM node:14 as deps
|
|||
WORKDIR /calcom
|
||||
|
||||
# Copy rootand all workspace package.json files
|
||||
COPY calendso/package.json calendso/yarn.lock calendso/turbo.json ./
|
||||
COPY calendso/apps/web/package.json calendso/apps/web/yarn.lock ./apps/web/
|
||||
COPY calendso/packages/ui/package.json ./packages/ui/package.json
|
||||
COPY calendso/packages/types/package.json ./packages/types/package.json
|
||||
COPY calendso/packages/core/package.json ./packages/core/package.json
|
||||
COPY calendso/packages/config/package.json ./packages/config/package.json
|
||||
COPY calendso/packages/ee/package.json ./packages/ee/package.json
|
||||
COPY calendso/packages/tsconfig/package.json ./packages/tsconfig/package.json
|
||||
COPY calendso/packages/prisma/package.json ./packages/prisma/package.json
|
||||
COPY calendso/packages/app-store/googlevideo/package.json ./packages/app-store/googlevideo/package.json
|
||||
COPY calendso/packages/app-store/caldavcalendar/package.json ./packages/app-store/caldavcalendar/package.json
|
||||
COPY calendso/packages/app-store/zoomvideo/package.json ./packages/app-store/zoomvideo/package.json
|
||||
COPY calendso/packages/app-store/huddle01video/package.json ./packages/app-store/huddle01video/package.json
|
||||
COPY calendso/packages/app-store/jitsivideo/package.json ./packages/app-store/jitsivideo/package.json
|
||||
COPY calendso/packages/app-store/stripepayment/package.json ./packages/app-store/stripepayment/package.json
|
||||
COPY calendso/packages/app-store/office365video/package.json ./packages/app-store/office365video/package.json
|
||||
COPY calendso/packages/app-store/office365calendar/package.json ./packages/app-store/office365calendar/package.json
|
||||
COPY calendso/packages/app-store/slackmessaging/package.json ./packages/app-store/slackmessaging/package.json
|
||||
COPY calendso/packages/app-store/tandemvideo/package.json ./packages/app-store/tandemvideo/package.json
|
||||
COPY calendso/packages/app-store/wipemycalother/package.json ./packages/app-store/wipemycalother/package.json
|
||||
COPY calendso/packages/app-store/package.json ./packages/app-store/package.json
|
||||
COPY calendso/packages/app-store/_example/package.json ./packages/app-store/_example/package.json
|
||||
COPY calendso/packages/app-store/googlecalendar/package.json ./packages/app-store/googlecalendar/package.json
|
||||
COPY calendso/packages/app-store/dailyvideo/package.json ./packages/app-store/dailyvideo/package.json
|
||||
COPY calendso/packages/app-store/applecalendar/package.json ./packages/app-store/applecalendar/package.json
|
||||
COPY calendso/packages/app-store/hubspotothercalendar/package.json ./packages/app-store/hubspotothercalendar/package.json
|
||||
COPY calendso/packages/lib/package.json ./packages/lib/package.json
|
||||
COPY calendso/packages/embeds/embed-snippet/package.json ./packages/embeds/embed-snippet/package.json
|
||||
COPY calendso/packages/embeds/embed-react/package.json ./packages/embeds/embed-react/package.json
|
||||
COPY calendso/packages/embeds/embed-core/package.json ./packages/embeds/embed-core/package.json
|
||||
COPY calendso/packages/stripe/package.json ./packages/stripe/package.json
|
||||
COPY calcom/package.json calcom/yarn.lock calcom/turbo.json ./
|
||||
COPY calcom/apps/web/package.json calcom/apps/web/yarn.lock ./apps/web/
|
||||
COPY calcom/packages/ui/package.json ./packages/ui/package.json
|
||||
COPY calcom/packages/types/package.json ./packages/types/package.json
|
||||
COPY calcom/packages/core/package.json ./packages/core/package.json
|
||||
COPY calcom/packages/config/package.json ./packages/config/package.json
|
||||
COPY calcom/packages/ee/package.json ./packages/ee/package.json
|
||||
COPY calcom/packages/tsconfig/package.json ./packages/tsconfig/package.json
|
||||
COPY calcom/packages/prisma/package.json ./packages/prisma/package.json
|
||||
COPY calcom/packages/app-store/googlevideo/package.json ./packages/app-store/googlevideo/package.json
|
||||
COPY calcom/packages/app-store/caldavcalendar/package.json ./packages/app-store/caldavcalendar/package.json
|
||||
COPY calcom/packages/app-store/zoomvideo/package.json ./packages/app-store/zoomvideo/package.json
|
||||
COPY calcom/packages/app-store/huddle01video/package.json ./packages/app-store/huddle01video/package.json
|
||||
COPY calcom/packages/app-store/jitsivideo/package.json ./packages/app-store/jitsivideo/package.json
|
||||
COPY calcom/packages/app-store/stripepayment/package.json ./packages/app-store/stripepayment/package.json
|
||||
COPY calcom/packages/app-store/office365video/package.json ./packages/app-store/office365video/package.json
|
||||
COPY calcom/packages/app-store/office365calendar/package.json ./packages/app-store/office365calendar/package.json
|
||||
COPY calcom/packages/app-store/slackmessaging/package.json ./packages/app-store/slackmessaging/package.json
|
||||
COPY calcom/packages/app-store/tandemvideo/package.json ./packages/app-store/tandemvideo/package.json
|
||||
COPY calcom/packages/app-store/wipemycalother/package.json ./packages/app-store/wipemycalother/package.json
|
||||
COPY calcom/packages/app-store/package.json ./packages/app-store/package.json
|
||||
COPY calcom/packages/app-store/_example/package.json ./packages/app-store/_example/package.json
|
||||
COPY calcom/packages/app-store/googlecalendar/package.json ./packages/app-store/googlecalendar/package.json
|
||||
COPY calcom/packages/app-store/dailyvideo/package.json ./packages/app-store/dailyvideo/package.json
|
||||
COPY calcom/packages/app-store/applecalendar/package.json ./packages/app-store/applecalendar/package.json
|
||||
COPY calcom/packages/app-store/hubspotothercalendar/package.json ./packages/app-store/hubspotothercalendar/package.json
|
||||
COPY calcom/packages/lib/package.json ./packages/lib/package.json
|
||||
COPY calcom/packages/embeds/embed-snippet/package.json ./packages/embeds/embed-snippet/package.json
|
||||
COPY calcom/packages/embeds/embed-react/package.json ./packages/embeds/embed-react/package.json
|
||||
COPY calcom/packages/embeds/embed-core/package.json ./packages/embeds/embed-core/package.json
|
||||
COPY calcom/packages/stripe/package.json ./packages/stripe/package.json
|
||||
|
||||
# Prisma schema is required by a post-install script
|
||||
COPY calendso/packages/prisma/schema.prisma ./packages/prisma/schema.prisma
|
||||
COPY calcom/packages/prisma/schema.prisma ./packages/prisma/schema.prisma
|
||||
|
||||
# Install dependencies
|
||||
RUN yarn install --frozen-lockfile
|
||||
|
@ -44,20 +44,24 @@ RUN yarn install --frozen-lockfile
|
|||
FROM node:14 as builder
|
||||
|
||||
WORKDIR /calcom
|
||||
ARG BASE_URL
|
||||
ARG NEXT_PUBLIC_APP_URL
|
||||
ARG NEXT_PUBLIC_WEBAPP_URL
|
||||
ARG NEXT_PUBLIC_LICENSE_CONSENT
|
||||
ARG NEXT_PUBLIC_TELEMETRY_KEY
|
||||
ENV BASE_URL=$BASE_URL \
|
||||
# DEPRECATED
|
||||
ARG BASE_URL
|
||||
ARG NEXT_PUBLIC_APP_URL
|
||||
|
||||
ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \
|
||||
BASE_URL=$BASE_URL \
|
||||
NEXT_PUBLIC_APP_URL=$NEXT_PUBLIC_APP_URL \
|
||||
NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \
|
||||
NEXT_PUBLIC_TELEMETRY_KEY=$NEXT_PUBLIC_TELEMETRY_KEY
|
||||
|
||||
COPY calendso/package.json calendso/yarn.lock calendso/turbo.json ./
|
||||
COPY calendso/apps/web ./apps/web
|
||||
COPY calendso/packages ./packages
|
||||
COPY calcom/package.json calcom/yarn.lock calcom/turbo.json ./
|
||||
COPY calcom/apps/web ./apps/web
|
||||
COPY calcom/packages ./packages
|
||||
COPY --from=deps /calcom/node_modules ./node_modules
|
||||
RUN yarn build && yarn install --ignore-scripts --prefer-offline
|
||||
RUN yarn build
|
||||
|
||||
FROM node:14 as runner
|
||||
WORKDIR /calcom
|
||||
|
@ -67,16 +71,17 @@ RUN apt-get update && \
|
|||
rm -rf /var/lib/apt/lists/* && \
|
||||
npm install --global prisma
|
||||
|
||||
COPY calendso/package.json calendso/yarn.lock calendso/turbo.json ./
|
||||
COPY --from=builder /calcom/node_modules ./node_modules
|
||||
COPY calcom/package.json calcom/yarn.lock calcom/turbo.json ./
|
||||
COPY --from=deps /calcom/node_modules ./node_modules
|
||||
COPY --from=builder /calcom/packages ./packages
|
||||
COPY --from=builder /calcom/apps/web/node_modules ./apps/web/node_modules
|
||||
COPY --from=deps /calcom/apps/web/node_modules ./apps/web/node_modules
|
||||
COPY --from=builder /calcom/apps/web/scripts ./apps/web/scripts
|
||||
COPY --from=builder /calcom/apps/web/next.config.js ./apps/web/next.config.js
|
||||
COPY --from=builder /calcom/apps/web/next-i18next.config.js ./apps/web/next-i18next.config.js
|
||||
COPY --from=builder /calcom/apps/web/public ./apps/web/public
|
||||
COPY --from=builder /calcom/apps/web/.next ./apps/web/.next
|
||||
COPY --from=builder /calcom/apps/web/package.json ./apps/web/package.json
|
||||
COPY --from=builder calcom/packages/prisma/schema.prisma ./prisma/schema.prisma
|
||||
COPY scripts scripts
|
||||
|
||||
EXPOSE 3000
|
||||
|
|
70
README.md
70
README.md
|
@ -1,22 +1,24 @@
|
|||
<!-- PROJECT LOGO -->
|
||||
<div align="right">
|
||||
<a href="https://github.com/calendso/calendso">
|
||||
<a href="https://github.com/calcom/cal.com">
|
||||
<img src="https://cal.com/logo.svg" alt="Logo" width="160" height="65">
|
||||
</a><br/>
|
||||
<a href="https://cal.com">Website</a>
|
||||
·
|
||||
<a href="https://github.com/calendso/calendso-docker/issues">Community Support</a>
|
||||
<a href="https://github.com/calcom/docker/issues">Community Support</a>
|
||||
</div>
|
||||
|
||||
# Docker
|
||||
|
||||
NOTE: DockerHub organization has not yet been renamed.
|
||||
|
||||
This image can be found on DockerHub at [https://hub.docker.com/r/calendso/calendso](https://hub.docker.com/r/calendso/calendso)
|
||||
|
||||
The Docker configuration for Calendso is an effort powered by people within the community. Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.
|
||||
The Docker configuration for Cal.com is an effort powered by people within the community. Cal.com, Inc. does not yet provide official support for Docker, but we will accept fixes and documentation at this time. Use at your own risk.
|
||||
|
||||
## Important Notes
|
||||
|
||||
This Docker Image is managed by the Calendso Community. Support for this image can be found via the repository, located at [https://github.com/calendso/docker](https://github.com/calcom/docker)
|
||||
This Docker Image is managed by the Cal.com Community. Support for this image can be found via the repository, located at [https://github.com/calcom/docker](https://github.com/calcom/docker)
|
||||
|
||||
Currently, this image is intended for local development/evaluation use only, as there are specific requirements for providing environmental variables at build-time in order to specify a non-localhost BASE_URL. (this is due to the nature of the static site compilation, which embeds the variable values). The ability to update these variables at runtime is in-progress and will be available in the future.
|
||||
|
||||
|
@ -24,61 +26,69 @@ For Production, for the time being, please checkout the repository and build/pus
|
|||
|
||||
## Requirements
|
||||
|
||||
Make sure you have `docker` & `docker-compose` installed on the server / system.
|
||||
Make sure you have `docker` & `docker compose` installed on the server / system.
|
||||
|
||||
Note: `docker compose` without the hyphen is now the primary method of using docker-compose, per the Docker documentation.
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. Clone calendso-docker
|
||||
1. Clone calcom-docker
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/calendso/docker.git calendso-docker
|
||||
git clone --recursive https://github.com/calcom/docker.git calcom-docker
|
||||
```
|
||||
|
||||
2. Change into the directory
|
||||
|
||||
```bash
|
||||
cd calendso-docker
|
||||
cd calcom-docker
|
||||
```
|
||||
|
||||
3. Rename `.env.example` to `.env` and update `.env` if needed.
|
||||
|
||||
4. Build and start calendso
|
||||
3. Update the calcom submodule
|
||||
|
||||
```bash
|
||||
docker-compose up --build
|
||||
git submodule update --remote --init
|
||||
```
|
||||
|
||||
5. Start prisma studio
|
||||
4. Rename `.env.example` to `.env` and then update `.env`
|
||||
|
||||
5. Build and start Cal.com via docker compose
|
||||
|
||||
```bash
|
||||
docker-compose exec calendso npx prisma studio
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
6. Open a browser to [http://localhost:5555](http://localhost:5555) to look at or modify the database content.
|
||||
6. (First Run) Open a browser to [http://localhost:5555](http://localhost:5555) to look at or modify the database content.
|
||||
|
||||
7. Click on the `User` model to add a new user record.
|
||||
a. Click on the `User` model to add a new user record.
|
||||
|
||||
8. Fill out the fields (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
|
||||
b. Fill out the fields (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
|
||||
|
||||
9. Open a browser to [http://localhost:3000](http://localhost:3000) and login with your just created, first user.
|
||||
7. Open a browser to [http://localhost:3000](http://localhost:3000) and login with your just created, first user.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Build-time variables
|
||||
|
||||
These variables must be provided at the time of the docker build, and can be provided by updating the .env file. Changing these is not required for evaluation, but may be required for running in production. Currently, if you require changes to these variables, you must follow the instructions to build and publish your own image.
|
||||
|
||||
* NEXT_PUBLIC_WEBAPP_URL
|
||||
* NEXT_PUBLIC_LICENSE_CONSENT
|
||||
* NEXT_PUBLIC_TELEMETRY_KEY
|
||||
|
||||
### Important Run-time variables
|
||||
|
||||
* NEXTAUTH_SECRET
|
||||
|
||||
## Git Submodules
|
||||
|
||||
This repository uses a git submodule.
|
||||
|
||||
If you cloned the repository without using `--recursive`, then you can initialize and clone the submodule with the following steps.
|
||||
To update the calcom submodule, use the following command:
|
||||
|
||||
1. Init the submodule
|
||||
|
||||
```bash
|
||||
git submodule init
|
||||
```
|
||||
|
||||
2. Update the submodule
|
||||
|
||||
```bash
|
||||
git submodule update --remote
|
||||
```
|
||||
```bash
|
||||
git submodule update --remote --init
|
||||
```
|
||||
|
||||
For more advanced usage, please refer to the git documentation: [https://git-scm.com/book/en/v2/Git-Tools-Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
|
||||
|
||||
|
|
1
calcom
Submodule
1
calcom
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit a0057911c1e2b7753e98b80bce7157764ee39a29
|
1
calendso
1
calendso
|
@ -1 +0,0 @@
|
|||
Subproject commit c22b6ca6703cb3b300ccff57c55b6c744ac3e49d
|
|
@ -18,13 +18,12 @@ services:
|
|||
networks:
|
||||
- stack
|
||||
|
||||
calendso:
|
||||
calcom:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
- BASE_URL=${BASE_URL}
|
||||
- NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL}
|
||||
- NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL}
|
||||
- NEXT_PUBLIC_LICENSE_CONSENT=${NEXT_PUBLIC_LICENSE_CONSENT}
|
||||
- NEXT_PUBLIC_TELEMETRY_KEY=${NEXT_PUBLIC_TELEMETRY_KEY}
|
||||
restart: always
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -x
|
||||
|
||||
/calcom/scripts/wait-for-it.sh ${DATABASE_HOST} -- echo "database is up"
|
||||
scripts/wait-for-it.sh ${DATABASE_HOST} -- echo "database is up"
|
||||
npx prisma migrate deploy --schema /calcom/packages/prisma/schema.prisma
|
||||
yarn start
|
||||
|
|
Loading…
Reference in a new issue