From aaa12a4f37f7f3a53c009de1df9ef6bbcb4fdbb3 Mon Sep 17 00:00:00 2001 From: Ronald Loyko <108372764+ronaldloyko@users.noreply.github.com> Date: Fri, 21 Jul 2023 22:19:24 +0700 Subject: [PATCH] feat: add calcom (#969) --- public/v4/apps/calcom.yml | 104 +++++++++++++++++++++++++++++++++++++ public/v4/logos/calcom.png | Bin 0 -> 11104 bytes 2 files changed, 104 insertions(+) create mode 100644 public/v4/apps/calcom.yml create mode 100644 public/v4/logos/calcom.png diff --git a/public/v4/apps/calcom.yml b/public/v4/apps/calcom.yml new file mode 100644 index 0000000..3e93026 --- /dev/null +++ b/public/v4/apps/calcom.yml @@ -0,0 +1,104 @@ +captainVersion: 4 +services: + $$cap_appname: + caproverExtra: + containerHttpPort: 3000 + image: calcom/cal.com:$$cap_CALCOM_VERSION + environment: + NEXT_PUBLIC_WEBAPP_URL: http://$$cap_appname.$$cap_root_domain + NEXTAUTH_SECRET: $$cap_CALCOM_NEXTAUTH_SECRET + CALENDSO_ENCRYPTION_KEY: $$cap_CALCOM_CALENDSO_ENCRYPTION_KEY + CALCOM_TELEMETRY_DISABLED: $$cap_CALCOM_TELEMETRY_DISABLED + NODE_TLS_REJECT_UNAUTHORIZED: $$cap_CALCOM_NODE_TLS_REJECT_UNAUTHORIZED + DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DATABASE + EMAIL_FROM: $$cap_CALCOM_EMAIL_FROM + EMAIL_SERVER_HOST: $$cap_CALCOM_EMAIL_SERVER_HOST + EMAIL_SERVER_PORT: $$cap_CALCOM_EMAIL_SERVER_PORT + EMAIL_SERVER_USER: $$cap_CALCOM_EMAIL_SERVER_USER + EMAIL_SERVER_PASSWORD: $$cap_CALCOM_EMAIL_SERVER_PASSWORD + $$cap_appname-db: + caproverExtra: + notExposeAsWebApp: 'true' + image: postgres:$$cap_POSTGRES_VERSION + environment: + POSTGRES_DB: $$cap_POSTGRES_DATABASE + POSTGRES_USER: $$cap_POSTGRES_USER + POSTGRES_PASSWORD: $$cap_POSTGRES_PASSWORD + volumes: + - $$cap_appname-db:/var/lib/postgresql/data +caproverOneClickApp: + instructions: + start: |- + The open source Calendly alternative. + You are in charge of your own data, workflow and appearance. + White-label by design. + API-driven and ready to be deployed on your own domain. + Full control of your events and data. + end: |- + Cal.com has been successfully deployed! It might take few moments before it's fully started. + You can access the application at `http://$$cap_appname.$$cap_root_domain`. + + If you enabled HTTPS, you should adjust the `NEXT_PUBLIC_WEBAPP_URL` environment variable accordingly. + displayName: Cal.com + isOfficial: true + description: Scheduling Infrastructure For Everyone + documentation: https://cal.com/docs + variables: + - id: $$cap_CALCOM_VERSION + label: Application | Version + description: Cal.com version. Check out their valid tags at https://hub.docker.com/r/calcom/cal.com/tags + defaultValue: 'v3.1.3' + validRegex: /.{1,}/ + - id: $$cap_CALCOM_NEXTAUTH_SECRET + label: Application | Cookie Secret + description: Cookie Encryption Key + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ + - id: $$cap_CALCOM_CALENDSO_ENCRYPTION_KEY + label: Application | Authentication Secret + description: Authentication Encryption Key + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ + - id: $$cap_CALCOM_TELEMETRY_DISABLED + label: Application | Usage Data Collection + description: Allow cal.com to collect anonymous usage data. Set to `1` to disable + defaultValue: '1' + - id: $$cap_CALCOM_NODE_TLS_REJECT_UNAUTHORIZED + label: Application | Reject Unauthorized Requests + description: Whether to reject unauthorized requests. Set to `0` if running behind a load balancer or reverse proxy + defaultValue: '0' + - id: $$cap_CALCOM_EMAIL_FROM + label: Email | From + description: Sender email address. Optional + - id: $$cap_CALCOM_EMAIL_SERVER_HOST + label: Email | Host + description: SMTP Host. Optional + - id: $$cap_CALCOM_EMAIL_SERVER_PORT + label: Email | Port + description: SMTP Port. Optional + - id: $$cap_CALCOM_EMAIL_SERVER_USER + label: Email | User + description: SMTP User. Optional + - id: $$cap_CALCOM_EMAIL_SERVER_PASSWORD + label: Email | Password + description: SMTP Password. Optional + - id: $$cap_POSTGRES_VERSION + label: Database | Version + description: PostgreSQL version. Check out their valid tags at https://hub.docker.com/_/postgres/tags + defaultValue: '15.0-alpine' + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_DATABASE + label: Database | Name + description: Name of the PostgreSQL database + defaultValue: calcom + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_USER + label: Database | User Name + description: Name of the PostgreSQL user + defaultValue: calcom + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_PASSWORD + label: Database | User Password + description: Password of the PostgreSQL user + defaultValue: $$cap_gen_random_hex(16) + validRegex: /.{1,}/ diff --git a/public/v4/logos/calcom.png b/public/v4/logos/calcom.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f9a4852cc6a82991e11b7868b5e14eb3d6cff4 GIT binary patch literal 11104 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 literal 0 HcmV?d00001