chore: add scheduler deployment hook
Add apps/scheduler/Dockerfile, an optional profile-gated `scheduler` service in docker-compose, and SCHEDULER_IMAGE/PORT/DEMO_MODE examples in portainer.env.example. The service stays off by default (scheduler profile) and SCHEDULER_DEMO_MODE defaults to 0 so the Authentik login is never bypassed in production.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Builds the slim @vynte/scheduler app against the shared Cal workspace packages.
|
||||
FROM node:20 AS builder
|
||||
|
||||
WORKDIR /calcom
|
||||
|
||||
# next build evaluates @calcom/features imports, so provide the same build-time
|
||||
# secrets the root image uses. Real values are injected at runtime by compose.
|
||||
ARG NEXTAUTH_SECRET=secret
|
||||
ARG CALENDSO_ENCRYPTION_KEY=secret
|
||||
ARG DATABASE_URL=postgresql://calcom:calcom@postgres:5432/calcom
|
||||
ARG MAX_OLD_SPACE_SIZE=4096
|
||||
|
||||
ENV NODE_ENV=production \
|
||||
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \
|
||||
CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \
|
||||
DATABASE_URL=${DATABASE_URL} \
|
||||
DATABASE_DIRECT_URL=${DATABASE_URL} \
|
||||
NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE}
|
||||
|
||||
COPY package.json yarn.lock .yarnrc.yml turbo.json i18n.json ./
|
||||
COPY .yarn ./.yarn
|
||||
COPY apps/scheduler ./apps/scheduler
|
||||
COPY packages ./packages
|
||||
|
||||
RUN yarn config set httpTimeout 1200000
|
||||
RUN yarn install
|
||||
RUN yarn workspace @vynte/scheduler build
|
||||
|
||||
EXPOSE 3040
|
||||
|
||||
CMD ["yarn", "workspace", "@vynte/scheduler", "start"]
|
||||
@@ -131,3 +131,28 @@ services:
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
|
||||
# Optional slim scheduler UI. Gated behind the "scheduler" profile so it only
|
||||
# starts with `docker compose --profile scheduler up`.
|
||||
scheduler:
|
||||
profiles: ["scheduler"]
|
||||
image: ${SCHEDULER_IMAGE:-10.0.3.6:4000/zachariahsharma/vynte-scheduler:latest}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: apps/scheduler/Dockerfile
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "${SCHEDULER_PORT:-3040}:3040"
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||
NEXTAUTH_URL: ${NEXTAUTH_URL}
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom}
|
||||
DATABASE_DIRECT_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom}
|
||||
CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY}
|
||||
SCHEDULER_DEMO_MODE: ${SCHEDULER_DEMO_MODE:-0}
|
||||
networks:
|
||||
- cal-diy
|
||||
|
||||
@@ -21,6 +21,13 @@ CALCOM_IMAGE=10.0.3.6:4000/zachariahsharma/cal-diy-oidc:latest
|
||||
CALCOM_API_V2_IMAGE=10.0.3.6:4000/zachariahsharma/cal-diy-oidc-api-v2:latest
|
||||
CALCOM_PORT=3030
|
||||
CAL_API_V2_PORT=3031
|
||||
|
||||
# Optional scheduler service (enable with the "scheduler" compose profile).
|
||||
# Keep SCHEDULER_DEMO_MODE=0 in production: demo mode bypasses Authentik login.
|
||||
SCHEDULER_IMAGE=10.0.3.6:4000/zachariahsharma/vynte-scheduler:latest
|
||||
SCHEDULER_PORT=3040
|
||||
SCHEDULER_DEMO_MODE=0
|
||||
|
||||
POSTGRES_USER=calcom
|
||||
POSTGRES_DB=calcom
|
||||
CALCOM_TELEMETRY_DISABLED=1
|
||||
|
||||
Reference in New Issue
Block a user