* add custom resolvers info and editable row selection info (#9057) * fix system requirements icon * add auth info for webhooks and fix casing * add regex custom validation info (#9068) * [docs]: Marketplace 1.7 updates (#9085) * [docs] Amazon redshift plugin * make minor improvements * add and update docs for marketplace 1.7 * update order of plugins in overview to match sidebar * create new version --------- Co-authored-by: Shubhendra <withshubh@gmail.com> * add the latest version in the versions.json file (#9094) * [docs]: Update PDF component (#9088) * update PDF component * merged with develop and added changes to the new version * update docs favicon: (#9118) * [docs] SSO revamp (#9031) * add method to set default language * update image settings through custom css and update screenshots for getting started and tooljet concepts (#9158) * fix read documentation button * fix formatting for setup icons (#9172) * fix sidebar link for aws lambda * Update static media (#9175) * updated the screenshots * reduced the gif size * reverted the package.json file * edited the zoomed in images and replaced some gifs with screenshots * removed one gif * update static media * update file names * update toolbar * fix file names * fix: dynamodb img path * update media for org management dashboard * fix: casing and formatting * update workspace constant media * update media in workspace settings and github * update github sso * minor change to github sso docs * minor fix * update google sso * change includeCurrentVersion flag to false --------- Co-authored-by: Asjad Ahmed Khan <iitasjad2001@gmail.com> Co-authored-by: Asjad Ahmed Khan <60435499+2001asjad@users.noreply.github.com> Co-authored-by: Karan Rathod <karan.altcampus@gmail.com> * Feature: Engagespot plugin (#9012) * feat(plugins): added engagespot plugin * feat(docs): added engagespot plugin docs * chore(engagespot-plugin): revised copywritings * Feature: Databricks data source (#9174) * plugin-created * Databricks integration * icon, error handling * removed unrelated changes from marketplace and frontend package-lock.json removed runAsync and maxRows timeouts pending * timeout implementation * socket timeout and error handling * resolve comments * resolve comments2 * solved render issue test connection improvements * solved undefined error * fix TJDB not null value fail for is operation (#9055) * fix TJDB not null value fail for is operation * handling not null and null case insenstive values * Support for marketplace plugin deploy on render preview app (#9221) * Fix for marketplace error on render preview app * add marketplace build command * Adding new workflow for building marketplace plugin * removed render app creation * [:docs] Add documentation for Databricks plugin (#9224) * add docs for databricks * update databricks docs * update docs * remove ref to clusters * bump to v2.34.0 * Fixed data source cypress failure (#9227) * updated spec with required text * updated mongodb and import spec * updated import spec --------- Co-authored-by: Karan Rathod <karan.altcampus@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: Midhun G S <gsmithun4@gmail.com> Co-authored-by: Shubhendra <withshubh@gmail.com> Co-authored-by: Aman Regu <amanregu@gmail.com> Co-authored-by: Asjad Ahmed Khan <iitasjad2001@gmail.com> Co-authored-by: Asjad Ahmed Khan <60435499+2001asjad@users.noreply.github.com> Co-authored-by: Jobin Jose <129726530+jobin-logidots@users.noreply.github.com> Co-authored-by: Syed Mohammad Akhtar Rizvi <85864291+ShazanRizvi@users.noreply.github.com> Co-authored-by: blank0537 <111295371+blank0537@users.noreply.github.com> Co-authored-by: Mekhla Asopa <59684099+Mekhla-Asopa@users.noreply.github.com>
5.6 KiB
| id | title |
|---|---|
| docker | Docker |
:::warning The following guide is intended for contributors to set-up ToolJet locally. If you're interested in self-hosting ToolJet, please refer to the Setup section. :::
Docker compose is the easiest way to setup ToolJet server and client locally.
:::info If you rather want to try out ToolJet locally with docker, you can follow the steps here. :::
Prerequisites
Make sure you have the latest version of docker and docker-compose installed.
Official docker installation guide
Official docker-compose installation guide
We recommend:
docker --version
Docker version 19.03.12, build 48a66213fe
docker-compose --version
docker-compose version 1.26.2, build eefe0d31
Setting up
:::warning If you are setting up on a Windows machine, we advise you to setup Docker desktop with WSL2. Please find more information here. :::
-
Clone the repository
git clone https://github.com/tooljet/tooljet.git -
Create a
.envfile by copying.env.example. More information on the variables that can be set is given in the environment variables referencecp .env.example .env cp .env.example .env.test -
Populate the keys in the
.envand.env.testfile :::infoSECRET_KEY_BASErequires a 64 byte key. (If you haveopensslinstalled, runopenssl rand -hex 64to create a 64 byte secure random key)LOCKBOX_MASTER_KEYrequires a 32 byte key. (Runopenssl rand -hex 32to create a 32 byte secure random key) ::: :::warning If you are setting up on a Windows machine. Please make sure that .env file line endings to be LF as it will be CRLF by default unless configured for Windows machine. :::Example:
cat .env TOOLJET_HOST=http://localhost:8082 LOCKBOX_MASTER_KEY=13c9b8364ae71f714774c82498ba328813069e48d80029bb29f49d0ada5a8e40 SECRET_KEY_BASE=ea85064ed42ad02cfc022e66d8bccf452e3fa1142421cbd7a13592d91a2cbb866d6001060b73a98a65be57e65524357d445efae00a218461088a706decd62dcb NODE_ENV=development # DATABASE CONFIG PG_HOST=postgres PG_PORT=5432 PG_USER=postgres PG_PASS=postgres PG_DB=tooljet_development ORM_LOGGING=allcat .env.test TOOLJET_HOST=http://localhost:8082 LOCKBOX_MASTER_KEY=13c9b8364ae71f714774c82498ba328813069e48d80029bb29f49d0ada5a8e40 SECRET_KEY_BASE=ea85064ed42ad02cfc022e66d8bccf452e3fa1142421cbd7a13592d91a2cbb866d6001060b73a98a65be57e65524357d445efae00a218461088a706decd62dcb NODE_ENV=test # DATABASE CONFIG PG_HOST=postgres PG_PORT=5432 PG_USER=postgres PG_PASS=postgres PG_DB=tooljet_test ORM_LOGGING=error -
Build docker images
docker-compose build docker-compose run --rm plugins npm run build:plugins -
Run ToolJet
docker-compose upToolJet should now be served locally at
http://localhost:8082. -
To shut down the containers,
docker-compose stop
Making changes to the codebase
If you make any changes to the codebase/pull the latest changes from upstream, the tooljet server container would hot reload the application without you doing anything.
Caveat:
-
If the changes include database migrations or new npm package additions in the package.json, you would need to restart the ToolJet server container by running
docker-compose restart server. -
If you need to add a new binary or system library to the container itself, you would need to add those dependencies in
docker/server.Dockerfile.devand then rebuild the ToolJet server image. You can do that by runningdocker-compose build server. Once that completes you can start everything normally withdocker-compose up.
Example:
Let's say you need to install the imagemagick binary in your ToolJet server's container. You'd then need to make sure that apt installs imagemagick while building the image. The Dockerfile at docker/server.Dockerfile.dev for the server would then look something like this:
FROM node:18.18.2-buster AS builder
RUN apt update && apt install -y \
build-essential \
postgresql \
freetds-dev \
imagemagick
RUN mkdir -p /app
WORKDIR /app
COPY ./server/package.json ./server/package-lock.json ./
RUN npm install
ENV NODE_ENV=development
COPY ./server/ ./
COPY ./docker/ ./docker/
COPY ./.env ../.env
RUN ["chmod", "755", "entrypoint.sh"]
Once you've updated the Dockerfile, rebuild the image by running docker-compose build server. After building the new image, start the services by running docker-compose up.
Running tests
Test config picks up config from .env.test file at the root of the project.
Run the following command to create and migrate data for test db
docker-compose run --rm -e NODE_ENV=test server npm run db:create
docker-compose run --rm -e NODE_ENV=test server npm run db:migrate
To run the unit tests
docker-compose run --rm server npm run --prefix server test
To run e2e tests
docker-compose run --rm server npm run --prefix server test:e2e
To run a specific unit test
docker-compose run --rm server npm --prefix server run test <path-to-file>
Troubleshooting
Please open a new issue at https://github.com/ToolJet/ToolJet/issues or join our Slack Community if you encounter any issues when trying to run ToolJet locally.