18 Commits

Author SHA1 Message Date
df61f9d5f0 Update .drone.yml 2025-01-08 10:09:12 -08:00
df8a0bd5cd add OIDC (DRAWBRIDGED, NEED A LICENSE KEY) 2023-11-07 15:59:28 +01:00
95ca5bd833 fix typo 2023-11-07 15:25:28 +01:00
3wc
8f36fa7d9e chore: publish 0.4.0+v3.1.4 release 2023-09-05 16:48:52 +02:00
3wc
c042b91c71 Add Microsoft™ Azure™ Office™ 365® Calendar© support 2023-09-05 16:47:25 +02:00
3wc
365bec08ee Fix README
[ci skip]
2023-07-25 16:23:13 +01:00
3wc
c30e63d524 chore: publish 0.3.0+v3.1.4 release 2023-07-25 11:31:56 +01:00
3wc
6c36028ba5 Add DB backups 2023-07-25 11:31:31 +01:00
3wc
7e698fb964 chore: publish 0.2.0+v3.1.4 release 2023-07-25 11:25:25 +01:00
88912b04e2 chore: publish 0.1.0+v3.0.13 release 2023-07-11 17:57:07 +02:00
6ccdfb9a9f remove old var from .env.sample 2023-07-11 17:55:43 +02:00
d60f54c056 disable telemetry 2023-07-11 17:55:22 +02:00
dc1709be06 jank but working 2023-07-11 17:43:23 +02:00
3wc
8f0289e018 WIP 2023-07-11 16:24:12 +01:00
3wc
e759e2e7d3 Switch to self-hosted stack-ssh-deploy image [mass update] 2023-01-21 11:49:55 -08:00
3wc
4008d10055 Fix CI by adding networks: [mass update] 2023-01-20 11:58:41 -08:00
3wc
d35fcee091 Automatically generate catalogue on release [mass update]
Re: coop-cloud/recipes-catalogue-json#4
2023-01-20 10:27:11 -08:00
3wc
a21646fcba Update abra syntax in examples (finally) [mass update] 2023-01-19 16:02:27 -08:00
8 changed files with 113 additions and 40 deletions

View File

@ -3,10 +3,12 @@ kind: pipeline
name: deploy to swarm-test.autonomic.zone name: deploy to swarm-test.autonomic.zone
steps: steps:
- name: deployment - name: deployment
image: decentral1se/stack-ssh-deploy:latest image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings: settings:
host: swarm-test.autonomic.zone host: swarm-test.autonomic.zone
stack: calendso stack: calendso
networks:
- proxy
purge: true purge: true
deploy_key: deploy_key:
from_secret: drone_ssh_swarm_test from_secret: drone_ssh_swarm_test
@ -33,24 +35,17 @@ trigger:
--- ---
kind: pipeline kind: pipeline
name: recipe release name: generate recipe catalogue
steps: steps:
- name: release a new version - name: release a new version
image: decentral1se/drone-abra:latest
settings:
command: recipe calendso release
deploy_key:
from_secret: abra_bot_deploy_key
- name: trigger downstream builds
image: plugins/downstream image: plugins/downstream
settings: settings:
server: https://drone.autonomic.zone server: https://build.coopcloud.tech
token: token:
from_secret: decentral1se_token from_secret: drone_abra-bot_token
fork: true fork: true
repositories: repositories:
- coop-cloud/auto-apps-json - toolshed/auto-recipes-catalogue-json
depends_on:
- release a new version trigger:
version event: tag

View File

@ -1,15 +1,14 @@
TYPE=calendso TYPE=cal
DOMAIN=calendso.example.com DOMAIN=cal.example.com
## Domain aliases ## Domain aliases
#EXTRA_DOMAINS=', `www.calendso.example.com`' #EXTRA_DOMAINS=', `www.calendso.example.com`'
LETS_ENCRYPT_ENV=production LETS_ENCRYPT_ENV=production
SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_PASSWORD_VERSION=v1
SECRET_NEXTAUTH_SECRET_VERSION=v1
## Uncomment this to enable collection of anonymous usage data SECRET_CALENDSO_ENCRYPTION_KEY_VERSION=v1
#NEXT_PUBLIC_TELEMETRY_KEY=js.2pvs2bbpqq1zxna97wcml.oi2jzirnbj1ev4tc57c5r
# This is here so later lines can extend it; you likely don't wanna edit # This is here so later lines can extend it; you likely don't wanna edit
COMPOSE_FILE="compose.yml" COMPOSE_FILE="compose.yml"
@ -45,3 +44,8 @@ COMPOSE_FILE="compose.yml"
#MS_GRAPH_CLIENT_ID= #MS_GRAPH_CLIENT_ID=
#COMPOSE_FILE="$COMPOSE_FILE:compose.microsoft.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.microsoft.yml"
#SECRET_MS_GRAPH_CLIENT_SECRET_VERSION=v1 #SECRET_MS_GRAPH_CLIENT_SECRET_VERSION=v1
## Enable OIDC (jk you need a license key)
#COMPOSE_FILE="${COMPOSE_FILE}:compose.oidc.yml"
#OIDCDB_PASSWORD_VERSION=v1
#SAML_ADMINS=user@example.com

View File

@ -6,7 +6,7 @@ The open-source Calendly alternative.
* **Category**: Apps * **Category**: Apps
* **Status**: 1, alpha * **Status**: 1, alpha
* **Image**: [`3wordchant/calendso`](https://hub.docker.com/r/3wordchant/calendso), 4, own * **Image**: [`calcom/calendso`](https://hub.docker.com/r/calcom/cal.com), 4, upstream
* **Healthcheck**: No * **Healthcheck**: No
* **Backups**: No * **Backups**: No
* **Email**: Yes * **Email**: Yes
@ -21,9 +21,9 @@ The open-source Calendly alternative.
2. Deploy [`coop-cloud/traefik`] 2. Deploy [`coop-cloud/traefik`]
3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like 3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like
to save secrets in `pass`) to save secrets in `pass`)
4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to 4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to
your Docker swarm box your Docker swarm box
5. `abra app YOURAPPDOMAIN deploy` 5. `abra app deploy YOURAPPDOMAIN`
6. Open the configured domain in your browser to finish set-up 6. Open the configured domain in your browser to finish set-up
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra [`abra`]: https://git.coopcloud.tech/coop-cloud/abra

View File

@ -1,5 +1,6 @@
--- ---
# Google calendar, see https://docs.calendso.com/docs/integrations/google # Google calendar, see
# https://github.com/calcom/cal.com#obtaining-the-google-api-credentials
version: "3.8" version: "3.8"
services: services:

17
compose.microsoft.yml Normal file
View File

@ -0,0 +1,17 @@
---
# Microsoft calendar, see
# https://github.com/calcom/cal.com#obtaining-microsoft-graph-client-id-and-secret
version: "3.8"
services:
app:
environment:
- MS_GRAPH_CLIENT_SECRET_FILE=/run/secrets/ms_graph_client_secret
- MS_GRAPH_CLIENT_ID
secrets:
- ms_graph_client_secret
secrets:
ms_graph_client_secret:
external: true
name: ${STACK_NAME}_ms_graph_client_secret_${SECRET_MS_GRAPH_CLIENT_SECRET_VERSION}

40
compose.oidc.yml Normal file
View File

@ -0,0 +1,40 @@
---
version: "3.8"
services:
app:
environment:
- SAML_ADMINS
- OIDCDB_USER=oidc
- OIDCDB_PASSWORD_FILE=/run/secrets/oidcdb_password
- OIDCDB_HOST=oidcdb
- OIDC_DB=oidc
secrets:
- oidcdb_password
oidcdb:
image: "postgres:13-alpine"
networks:
- backend
secrets:
- oidcdb_password
environment:
- POSTGRES_DB=oidc
- POSTGRES_USER=oidc
- POSTGRES_PASSWORD_FILE=/run/secrets/oidcdb_password
volumes:
- "oidc_postgres:/var/lib/postgresql/data"
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: 'bash -c "mkdir -p /tmp/backup/ && PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup/backup.sql"'
backupbot.backup.post-hook: "rm -rf /tmp/backup"
backupbot.backup.path: "/tmp/backup/"
secrets:
oidcdb_password:
external: true
name: ${STACK_NAME}_oidcdb_password_${OIDCDB_PASSWORD_VERSION}
volumes:
oidc_postgres:

View File

@ -3,28 +3,29 @@ version: "3.8"
services: services:
app: app:
image: 3wordchant/calendso:latest image: calcom.docker.scarf.sh/calcom/cal.com:v3.1.4
networks: networks:
- proxy - proxy
- backend - backend
secrets: secrets:
- db_password - db_password
- nextauth_secret
- calendso_encryption_key
environment: environment:
- POSTGRES_USER=calendso - POSTGRES_USER=calendso
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password - POSTGRES_PASSWORD_FILE=/run/secrets/db_password
- POSTGRES_DB=calendso - POSTGRES_DB=calendso
- POSTGRES_HOST=db - POSTGRES_HOST=db
- "BASE_URL=${DOMAIN}" - CALCOM_TELEMETRY_DISABLED=1
- "NEXT_PUBLIC_APP_URL=${DOMAIN}" - "NEXT_PUBLIC_WEBAPP_URL=https://${DOMAIN}"
- "NEXTAUTH_URL=${DOMAIN}" - NEXTAUTH_SECRET_FILE=/run/secrets/nextauth_secret
- NEXT_PUBLIC_TELEMETRY_KEY - CALENDSO_ENCRYPTION_KEY_FILE=/run/secrets/calendso_encryption_key
- MS_GRAPH_CLIENT_ID - MS_GRAPH_CLIENT_ID
- ZOOM_CLIENT_ID - ZOOM_CLIENT_ID
- EMAIL_FROM - EMAIL_FROM
- EMAIL_SERVER_HOST - EMAIL_SERVER_HOST
- EMAIL_SERVER_PORT - EMAIL_SERVER_PORT
- EMAIL_SERVER_USER - EMAIL_SERVER_USER
- NODE_TLS_REJECT_UNAUTHORIZED=0
configs: configs:
- source: entrypoint_conf - source: entrypoint_conf
target: /docker-entrypoint.sh target: /docker-entrypoint.sh
@ -46,6 +47,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.service=${STACK_NAME}" - "traefik.http.routers.${STACK_NAME}.service=${STACK_NAME}"
- "coop-cloud.${STACK_NAME}.version=0.4.0+v3.1.4"
## Redirect from EXTRA_DOMAINS to DOMAIN ## Redirect from EXTRA_DOMAINS to DOMAIN
#- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
@ -63,14 +65,18 @@ services:
- backend - backend
secrets: secrets:
- db_password - db_password
networks:
- backend
environment: environment:
- POSTGRES_DB=calendso - POSTGRES_DB=calendso
- POSTGRES_USER=calendso - POSTGRES_USER=calendso
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password - POSTGRES_PASSWORD_FILE=/run/secrets/db_password
volumes: volumes:
- "postgres:/var/lib/postgresql/data" - "postgres:/var/lib/postgresql/data"
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: 'bash -c "mkdir -p /tmp/backup/ && PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup/backup.sql"'
backupbot.backup.post-hook: "rm -rf /tmp/backup"
backupbot.backup.path: "/tmp/backup/"
networks: networks:
proxy: proxy:
@ -84,6 +90,12 @@ secrets:
db_password: db_password:
external: true external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION} name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
nextauth_secret:
external: true
name: ${STACK_NAME}_nextauth_secret_${SECRET_NEXTAUTH_SECRET_VERSION}
calendso_encryption_key:
external: true
name: ${STACK_NAME}_calendso_encryption_key_${SECRET_CALENDSO_ENCRYPTION_KEY_VERSION}
configs: configs:
entrypoint_conf: entrypoint_conf:

View File

@ -27,23 +27,27 @@ file_env() {
load_vars() { load_vars() {
file_env "POSTGRES_PASSWORD" file_env "POSTGRES_PASSWORD"
file_env "GOOGLE_API_CREDENTIALS"
file_env "ZOOM_CLIENT_SECRET"
file_env "EMAIL_SERVER_PASSWORD" file_env "EMAIL_SERVER_PASSWORD"
file_env "NEXTAUTH_SECRET"
file_env "CALENDSO_ENCRYPTION_KEY"
file_env "GOOGLE_API_CREDENTIALS"
file_env "MS_GRAPH_CLIENT_SECRET"
file_env "ZOOM_CLIENT_SECRET"
file_env "OIDCDB_PASSWORD"
export "DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB" export "DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB"
export "SAML_DATABASE_URL=postgresql://$OIDCDB_USER:$OIDCDB_PASSWORD@$OIDCDB_HOST:5432/$OIDC_DB"
} }
main() { main() {
set -eu set -eu
load_vars load_vars
if [ ! "${1-}" = "-e" ]; then
# 3wc: upstream CMD
# https://github.com/calendso/docker/blob/main/Dockerfile
/app/scripts/start.sh
fi
} }
main main
# 3wc: upstream CMD
# https://github.com/calendso/docker/blob/main/Dockerfile
/calcom/scripts/start.sh