mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
* refactor(workflows): migrate core modules from Temporal to BullMQ Update main application modules to support BullMQ-based workflow scheduling: - Remove Temporal worker bootstrap code from main.ts - Migrate from @nestjs/bull to @nestjs/bullmq - Add Bull Board dashboard at /jobs with basic auth - Register BullMQ queues in WorkflowsModule - Add IWorkflowScheduler interface for scheduler abstraction - Create CE stubs for WorkflowSchedulerService and ScheduleBootstrapService - Remove workflow dependencies from AppsModule (moved to WorkflowsModule) - Add proper route exclusion for /jobs dashboard - Support WORKER env var for conditional processor registration This commit completes the migration from Temporal to BullMQ for workflow scheduling, enabling simpler deployment and better horizontal scaling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: remove unused Temporal imports and commented code Clean up migration artifacts: - Remove unused imports from main.ts (TOOLJET_EDITIONS, getImportPath, ITemporalService, getTooljetEdition) - Remove commented TemporalService references from WorkflowsModule - Remove temporal.service from getProviders path array - Add missing newlines at EOF for IWorkflowScheduler.ts and schedule-bootstrap.service.ts This cleanup prepares the codebase for complete Temporal code removal in a future commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * build: add BullMQ and Bull Board dependencies Add required packages for BullMQ-based workflow scheduling: - @nestjs/bullmq: NestJS integration for BullMQ - @bull-board/api, @bull-board/express, @bull-board/nestjs: Queue dashboard - bullmq: Core BullMQ library - express-basic-auth: Authentication for Bull Board dashboard Note: @nestjs/bull is kept for backward compatibility during migration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: remove Temporal service files from CE Remove deprecated Temporal-based workflow implementation files: - server/src/modules/workflows/interfaces/ITemporalService.ts - server/src/modules/workflows/services/temporal.service.ts These files are replaced by IWorkflowScheduler interface and BullMQ-based WorkflowSchedulerService implementation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: add comprehensive Redis configuration support for BullMQ * refactor: remove Temporal setup and configuration from entrypoint scripts and Dockerfiles (#14294) * refactor: remove Temporal setup and configuration from entrypoint scripts and Dockerfiles * feat: integrate Redis support for BullMQ in preview environment * remove worker execution logic from setup script * Refactor: Centralise workflow execution through BullMQ (#14321) * refactor: run all workflows through bullmq * refactor: update imports * chore: update subproject commit reference in server/ee * feat: ablity to cancel workflow * feat: implement workflow cancellation functionality with Redis support * feat: add optional timeout parameter to requestCancellation method * refactor: clean up formatting and add maintenance toggle event emission in AppsService * feat: ability to cancel multiple inprogress executions * feat: implement execution state management and display logic * chore: update submodule commit reference --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
87 lines
No EOL
3 KiB
Docker
87 lines
No EOL
3 KiB
Docker
FROM tooljet/tooljet:ee-latest
|
|
|
|
RUN apt-get update && apt-get install -y wget libicu72 libldap-2.5-0 libssl3 || true
|
|
|
|
# Install Postgres
|
|
USER root
|
|
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
|
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
|
|
RUN apt update && apt -y install postgresql-16 postgresql-client-16 supervisor
|
|
USER postgres
|
|
RUN service postgresql start && \
|
|
psql -c "create role tooljet with login superuser password 'postgres';"
|
|
USER root
|
|
|
|
RUN apt update && apt -y install redis
|
|
|
|
# Create appuser home & ensure permission for supervisord and services
|
|
RUN mkdir -p /var/log/supervisor /var/run/postgresql /var/lib/postgresql /var/lib/redis && \
|
|
chown -R appuser:appuser /etc/supervisor /var/log/supervisor /var/lib/redis && \
|
|
chown -R postgres:postgres /var/run/postgresql /var/lib/postgresql
|
|
|
|
# Configure Supervisor to manage PostgREST, ToolJet, and Redis
|
|
RUN echo "[supervisord] \n" \
|
|
"nodaemon=true \n" \
|
|
"user=root \n" \
|
|
"\n" \
|
|
"[program:postgrest] \n" \
|
|
"command=/bin/postgrest \n" \
|
|
"autostart=true \n" \
|
|
"autorestart=true \n" \
|
|
"\n" \
|
|
"[program:tooljet] \n" \
|
|
"user=appuser \n" \
|
|
"command=/bin/bash -c '/app/server/scripts/init-db-boot.sh' \n" \
|
|
"autostart=true \n" \
|
|
"autorestart=true \n" \
|
|
"stderr_logfile=/dev/stdout \n" \
|
|
"stderr_logfile_maxbytes=0 \n" \
|
|
"stdout_logfile=/dev/stdout \n" \
|
|
"stdout_logfile_maxbytes=0 \n" \
|
|
"\n" \
|
|
"[program:redis] \n" \
|
|
"user=appuser \n" \
|
|
"command=/usr/bin/redis-server \n" \
|
|
"autostart=true \n" \
|
|
"autorestart=true \n" \
|
|
"stderr_logfile=/dev/stdout \n" \
|
|
"stderr_logfile_maxbytes=0 \n" \
|
|
"stdout_logfile=/dev/stdout \n" \
|
|
"stdout_logfile_maxbytes=0 \n" | sed 's/ //' > /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
# ENV defaults
|
|
ENV TOOLJET_HOST=http://localhost \
|
|
TOOLJET_SERVER_URL=http://localhost \
|
|
PORT=80 \
|
|
NODE_ENV=production \
|
|
LOCKBOX_MASTER_KEY=replace_with_lockbox_master_key \
|
|
SECRET_KEY_BASE=replace_with_secret_key_base \
|
|
PG_DB=tooljet_production \
|
|
PG_USER=tooljet \
|
|
PG_PASS=postgres \
|
|
PG_HOST=localhost \
|
|
PG_PORT=5432 \
|
|
ENABLE_TOOLJET_DB=true \
|
|
TOOLJET_DB_HOST=localhost \
|
|
TOOLJET_DB_USER=tooljet \
|
|
TOOLJET_DB_PASS=postgres \
|
|
TOOLJET_DB=tooljet_db \
|
|
PGRST_HOST=http://localhost:3000 \
|
|
PGRST_DB_URI=postgres://tooljet:postgres@localhost/tooljet_db \
|
|
PGRST_JWT_SECRET=r9iMKoe5CRMgvJBBtp4HrqN7QiPpUToj \
|
|
PGRST_DB_PRE_CONFIG=postgrest.pre_config \
|
|
ORM_LOGGING=true \
|
|
DEPLOYMENT_PLATFORM=docker:local \
|
|
HOME=/home/appuser \
|
|
REDIS_HOST=localhost \
|
|
REDIS_PORT=6379 \
|
|
REDIS_USER=default \
|
|
REDIS_PASS= \
|
|
ENABLE_MARKETPLACE_FEATURE=true \
|
|
TERM=xterm \
|
|
ENABLE_AI_FEATURES=true
|
|
|
|
# Set the entrypoint
|
|
COPY ./docker/pre-release/ee/ee-try-entrypoint.sh /ee-try-entrypoint.sh
|
|
RUN chmod +x /ee-try-entrypoint.sh
|
|
ENTRYPOINT ["/ee-try-entrypoint.sh"] |