Sets new users to trial by default and docs improvements (#1536)
* Sets new users to trial by default * Update README.md * Update README.md * Docs improvements * Adds migration
This commit is contained in:
parent
55f25d9194
commit
103877737e
5 changed files with 78 additions and 45 deletions
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
|
@ -1,10 +1,12 @@
|
||||||
{
|
{
|
||||||
"recommendations": [
|
"recommendations": [
|
||||||
|
"DavidAnson.vscode-markdownlint", // markdown linting
|
||||||
"yzhang.markdown-all-in-one", // nicer markdown support
|
"yzhang.markdown-all-in-one", // nicer markdown support
|
||||||
"esbenp.prettier-vscode", // prettier plugin
|
"esbenp.prettier-vscode", // prettier plugin
|
||||||
"dbaeumer.vscode-eslint", // eslint plugin
|
"dbaeumer.vscode-eslint", // eslint plugin
|
||||||
"bradlc.vscode-tailwindcss", // hinting / autocompletion for tailwind
|
"bradlc.vscode-tailwindcss", // hinting / autocompletion for tailwind
|
||||||
"heybourn.headwind", // automatically sort tailwind classes in predictable order, kinda like "prettier for tailwind",
|
"heybourn.headwind", // automatically sort tailwind classes in predictable order, kinda like "prettier for tailwind",
|
||||||
|
"ban.spellright", // Spell check for docs
|
||||||
"stripe.vscode-stripe" // stripe VSCode extension
|
"stripe.vscode-stripe" // stripe VSCode extension
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
|
@ -6,5 +6,7 @@
|
||||||
"source.fixAll.eslint": true
|
"source.fixAll.eslint": true
|
||||||
},
|
},
|
||||||
"eslint.run": "onSave",
|
"eslint.run": "onSave",
|
||||||
"typescript.preferences.importModuleSpecifier": "non-relative"
|
"typescript.preferences.importModuleSpecifier": "non-relative",
|
||||||
|
"spellright.language": ["en"],
|
||||||
|
"spellright.documentTypes": ["markdown"]
|
||||||
}
|
}
|
||||||
|
|
105
README.md
105
README.md
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
<img width="100%" alt="booking-screen" src="https://user-images.githubusercontent.com/8019099/134363898-4b29e18f-3e61-42b7-95bc-10891056249d.gif">
|
<img width="100%" alt="booking-screen" src="https://user-images.githubusercontent.com/8019099/134363898-4b29e18f-3e61-42b7-95bc-10891056249d.gif">
|
||||||
|
|
||||||
# Scheduling infrastructure for absolutely everyone.
|
# Scheduling infrastructure for absolutely everyone
|
||||||
|
|
||||||
The open source Calendly alternative. You are in charge
|
The open source Calendly alternative. You are in charge
|
||||||
of your own data, workflow and appearance.
|
of your own data, workflow and appearance.
|
||||||
|
@ -48,7 +48,7 @@ Calendly and other scheduling tools are awesome. It made our lives massively eas
|
||||||
|
|
||||||
That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.
|
That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.
|
||||||
|
|
||||||
### Product of the Month: April
|
## Product of the Month: April
|
||||||
|
|
||||||
#### Support us on [Product Hunt](https://www.producthunt.com/posts/calendso?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-calendso)
|
#### Support us on [Product Hunt](https://www.producthunt.com/posts/calendso?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-calendso)
|
||||||
|
|
||||||
|
@ -81,45 +81,55 @@ Here is what you need to be able to run Cal.
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- Yarn _(recommended)_
|
- Yarn _(recommended)_
|
||||||
|
|
||||||
You will also need Google API credentials. You can get this from the [Google API Console](https://console.cloud.google.com/apis/dashboard). More details on this can be found below under the [Obtaining the Google API Credentials section](#Obtaining-the-Google-API-Credentials).
|
> If you want to enable any of the available integrations, you may want to obtain additional credentials for each one. More details on this can be found below under the [integrations section](#integrations).
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
|
1. Clone the repo
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/calendso/calendso.git
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Go to the project folder
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd calendso
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Copy `.env.example` to `.env`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Install packages with yarn
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn
|
||||||
|
```
|
||||||
|
|
||||||
#### Quick start with `yarn dx`
|
#### Quick start with `yarn dx`
|
||||||
|
|
||||||
> - **Requires Docker and Docker Compose to be installed**
|
> - **Requires Docker and Docker Compose to be installed**
|
||||||
> - Will start a local Postgres instance with a few test users - the credentials will be logged in the console
|
> - Will start a local Postgres instance with a few test users - the credentials will be logged in the console
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
git clone git@github.com:calendso/calendso.git
|
|
||||||
cd calendso
|
|
||||||
yarn
|
|
||||||
cp .env.example .env
|
|
||||||
yarn dx
|
yarn dx
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Manual
|
#### Manual setup
|
||||||
|
|
||||||
1. Clone the repo
|
1. Configure environment variables in the .env file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
|
||||||
```sh
|
|
||||||
git clone https://github.com/calendso/calendso.git
|
|
||||||
```
|
|
||||||
2. Install packages with yarn
|
|
||||||
```sh
|
|
||||||
yarn install
|
|
||||||
```
|
|
||||||
3. Copy `.env.example` to `.env`
|
|
||||||
4. Configure environment variables in the .env file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
|
|
||||||
|
|
||||||
```
|
```
|
||||||
DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>'
|
DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>'
|
||||||
GOOGLE_API_CREDENTIALS='secret'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>If you don't know how to configure the DATABASE_URL, then follow the steps here</summary>
|
<summary>If you don't know how to configure the DATABASE_URL, then follow the steps here to create a quick DB using Heroku</summary>
|
||||||
|
|
||||||
1. Create a free account with [Heroku](https://www.heroku.com/).
|
1. Create a free account with [Heroku](https://www.heroku.com/).
|
||||||
|
|
||||||
|
@ -145,26 +155,35 @@ yarn dx
|
||||||
8. To view your DB, once you add new data in Prisma, you can use [Heroku Data Explorer](https://heroku-data-explorer.herokuapp.com/).
|
8. To view your DB, once you add new data in Prisma, you can use [Heroku Data Explorer](https://heroku-data-explorer.herokuapp.com/).
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
5. Set up the database using the Prisma schema (found in `prisma/schema.prisma`)
|
1. Set a 32 character random string in your .env file for the `CALENDSO_ENCRYPTION_KEY` (You can use a command like `openssl rand -base64 24` to generate one).
|
||||||
|
1. Set up the database using the Prisma schema (found in `prisma/schema.prisma`)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npx prisma migrate deploy
|
npx prisma migrate deploy
|
||||||
```
|
```
|
||||||
6. Run (in development mode)
|
|
||||||
|
1. Run (in development mode)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
yarn dev
|
yarn dev
|
||||||
```
|
```
|
||||||
7. Open [Prisma Studio](https://www.prisma.io/studio) to look at or modify the database content:
|
|
||||||
```
|
#### Setting up your first user
|
||||||
|
|
||||||
|
1. Open [Prisma Studio](https://www.prisma.io/studio) to look at or modify the database content:
|
||||||
|
|
||||||
|
```sh
|
||||||
npx prisma studio
|
npx prisma studio
|
||||||
```
|
```
|
||||||
8. Click on the `User` model to add a new user record.
|
|
||||||
9. Fill out the fields `email`, `username`, `password`, and set `metadata` to empty `{}` (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
|
1. Click on the `User` model to add a new user record.
|
||||||
10. Open a browser to [http://localhost:3000](http://localhost:3000) and login with your just created, first user.
|
1. Fill out the fields `email`, `username`, `password`, and set `metadata` to empty `{}` (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
|
||||||
11. Set a 32 character random string in your .env file for the CALENDSO_ENCRYPTION_KEY.
|
> New users are set on a `TRIAL` plan by default. You might want to adjust this behavior to your needs in the `prisma/schema.prisma` file.
|
||||||
|
1. Open a browser to [http://localhost:3000](http://localhost:3000) and login with your just created, first user.
|
||||||
|
|
||||||
### E2E-Testing
|
### E2E-Testing
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
# In first terminal
|
# In first terminal
|
||||||
yarn dx
|
yarn dx
|
||||||
# In second terminal
|
# In second terminal
|
||||||
|
@ -174,14 +193,16 @@ yarn test-playwright
|
||||||
### Upgrading from earlier versions
|
### Upgrading from earlier versions
|
||||||
|
|
||||||
1. Pull the current version:
|
1. Pull the current version:
|
||||||
```
|
|
||||||
|
```sh
|
||||||
git pull
|
git pull
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Apply database migrations by running <b>one of</b> the following commands:
|
2. Apply database migrations by running <b>one of</b> the following commands:
|
||||||
|
|
||||||
In a development environment, run:
|
In a development environment, run:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
npx prisma migrate dev
|
npx prisma migrate dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -189,7 +210,7 @@ yarn test-playwright
|
||||||
|
|
||||||
In a production environment, run:
|
In a production environment, run:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
npx prisma migrate deploy
|
npx prisma migrate deploy
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -203,14 +224,18 @@ yarn test-playwright
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Start the server. In a development environment, just do:
|
4. Start the server. In a development environment, just do:
|
||||||
```
|
|
||||||
|
```sh
|
||||||
yarn dev
|
yarn dev
|
||||||
```
|
```
|
||||||
|
|
||||||
For a production build, run for example:
|
For a production build, run for example:
|
||||||
```
|
|
||||||
|
```sh
|
||||||
yarn build
|
yarn build
|
||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Enjoy the new version.
|
5. Enjoy the new version.
|
||||||
<!-- DEPLOYMENT -->
|
<!-- DEPLOYMENT -->
|
||||||
|
|
||||||
|
@ -249,7 +274,9 @@ Contributions are what make the open source community such an amazing place to b
|
||||||
5. Push to the branch (`git push origin feature/AmazingFeature`)
|
5. Push to the branch (`git push origin feature/AmazingFeature`)
|
||||||
6. Open a pull request
|
6. Open a pull request
|
||||||
|
|
||||||
## Obtaining the Google API Credentials
|
## Integrations
|
||||||
|
|
||||||
|
### Obtaining the Google API Credentials
|
||||||
|
|
||||||
1. Open [Google API Console](https://console.cloud.google.com/apis/dashboard). If you don't have a project in your Google Cloud subscription, you'll need to create one before proceeding further. Under Dashboard pane, select Enable APIS and Services.
|
1. Open [Google API Console](https://console.cloud.google.com/apis/dashboard). If you don't have a project in your Google Cloud subscription, you'll need to create one before proceeding further. Under Dashboard pane, select Enable APIS and Services.
|
||||||
2. In the search box, type calendar and select the Google Calendar API search result.
|
2. In the search box, type calendar and select the Google Calendar API search result.
|
||||||
|
@ -263,7 +290,7 @@ Contributions are what make the open source community such an amazing place to b
|
||||||
10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
|
10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
|
||||||
11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.
|
11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.
|
||||||
|
|
||||||
## Obtaining Microsoft Graph Client ID and Secret
|
### Obtaining Microsoft Graph Client ID and Secret
|
||||||
|
|
||||||
1. Open [Azure App Registration](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) and select New registration
|
1. Open [Azure App Registration](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) and select New registration
|
||||||
2. Name your application
|
2. Name your application
|
||||||
|
@ -272,7 +299,7 @@ Contributions are what make the open source community such an amazing place to b
|
||||||
5. Use **Application (client) ID** as the **MS_GRAPH_CLIENT_ID** attribute value in .env
|
5. Use **Application (client) ID** as the **MS_GRAPH_CLIENT_ID** attribute value in .env
|
||||||
6. Click **Certificates & secrets** create a new client secret and use the value as the **MS_GRAPH_CLIENT_SECRET** attribute
|
6. Click **Certificates & secrets** create a new client secret and use the value as the **MS_GRAPH_CLIENT_SECRET** attribute
|
||||||
|
|
||||||
## Obtaining Zoom Client ID and Secret
|
### Obtaining Zoom Client ID and Secret
|
||||||
|
|
||||||
1. Open [Zoom Marketplace](https://marketplace.zoom.us/) and sign in with your Zoom account.
|
1. Open [Zoom Marketplace](https://marketplace.zoom.us/) and sign in with your Zoom account.
|
||||||
2. On the upper right, click "Develop" => "Build App".
|
2. On the upper right, click "Develop" => "Build App".
|
||||||
|
@ -288,7 +315,7 @@ Contributions are what make the open source community such an amazing place to b
|
||||||
12. Click "Done".
|
12. Click "Done".
|
||||||
13. You're good to go. Now you can easily add your Zoom integration in the Cal.com settings.
|
13. You're good to go. Now you can easily add your Zoom integration in the Cal.com settings.
|
||||||
|
|
||||||
## Obtaining Daily API Credentials
|
### Obtaining Daily API Credentials
|
||||||
|
|
||||||
1. Open [Daily](https://www.daily.co/) and sign into your account.
|
1. Open [Daily](https://www.daily.co/) and sign into your account.
|
||||||
2. From within your dashboard, go to the [developers](https://dashboard.daily.co/developers) tab.
|
2. From within your dashboard, go to the [developers](https://dashboard.daily.co/developers) tab.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "users" ALTER COLUMN "plan" SET DEFAULT E'TRIAL';
|
|
@ -121,7 +121,7 @@ model User {
|
||||||
identityProvider IdentityProvider @default(CAL)
|
identityProvider IdentityProvider @default(CAL)
|
||||||
identityProviderId String?
|
identityProviderId String?
|
||||||
invitedTo Int?
|
invitedTo Int?
|
||||||
plan UserPlan @default(PRO)
|
plan UserPlan @default(TRIAL)
|
||||||
Schedule Schedule[]
|
Schedule Schedule[]
|
||||||
webhooks Webhook[]
|
webhooks Webhook[]
|
||||||
brandColor String @default("#292929")
|
brandColor String @default("#292929")
|
||||||
|
|
Loading…
Reference in a new issue