If anyone is interested, here is a working setup in coolify:
- create project and add a postgres and redis database
- create a "docker compose empty" service
- Enable Connect To Predefined Network
- add the docker compose and env
- to generate the secrets, use the script on any pc (insert anything when asked for db infos):
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/.env.external.example
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/external.sh && chmod +x external.sh
mv .env.external.example .env && ./external.sh
- you can use the standard postgres db for tooljet, for tooljet db you can use any name, the database will be created on launch
- enter the url you want to use at the service settings (https://example.com:3000)
docker compose:
services:
tooljet:
tty: true
stdin_open: true
container_name: Tooljet-app
image: 'tooljet/tooljet:ee-lts-latest'
restart: always
env_file: .env
deploy:
resources:
limits:
cpus: '2'
memory: 4G
environment:
SERVE_CLIENT: 'true'
PORT: '3000'
command: 'npm run start:prod'
healthcheck:
test:
- CMD-SHELL
- 'wget -qO- http://127.0.0.1:3000/'
interval: 30s
timeout: 50s
retries: 10
postgrest:
image: 'postgrest/postgrest:v12.2.0'
restart: always
env_file: .env
deploy:
resources:
limits:
cpus: '2'
memory: 2G
environment:
- PGRST_SERVER_PORT=80
- PGRST_DB_PRE_CONFIG=postgrest.pre_config
ENV:
TOOLJET_HOST=https://example.com
LOCKBOX_MASTER_KEY=(use env generator)
SECRET_KEY_BASE=(use env generator)
ORM_LOGGING=all
DATABASE_URL=(COPY DB URL FROM COOLIFY)?sslmode=disable
ENABLE_TOOLJET_DB=true
TOOLJET_DB_URL=(COPY DB URL FROM COOLIFY)?sslmode=disable
PGRST_DB_URI=(COPY DB URL FROM COOLIFY)?sslmode=disable
PGRST_HOST=postgrest
PGRST_JWT_SECRET=(use env generator)
REDIS_URL=(COPY REDIS URL FROM COOLIFY)
CHECK_FOR_UPDATES=true
DISABLE_SIGNUPS=true
USER_SESSION_EXPIRY=2880
COMMENT_FEATURE_ENABLE=true
ENABLE_MULTIPLAYER_EDITING=true
ENABLE_MARKETPLACE_FEATURE=true
DISABLE_TELEMETRY=true
DEPLOYMENT_PLATFORM=docker
LANGUAGE=en