Self-Hosted ToolJet: Internal Dashboards When Engineering Has No Bandwidth

Your support team still copies order IDs from Shopify into a spreadsheet, then into Postgres, then into Slack. Someone asked for a "quick internal dashboard" in Q1. It's Q3 and the Jira ticket is tagged "won't fix — no bandwidth."

ToolJet is another credible answer to that backlog. ~38k GitHub stars, open-source community edition (AGPL), visual app builder with 60+ components and 80+ data source connectors. Drag tables, forms, and charts onto a canvas, wire them to your database or API, ship something your ops team can actually click — without a six-week React sprint.

What it actually does

ToolJet builds internal tools and dashboards: order lookup screens, inventory editors, approval workflows, admin panels. Same category as Retool or Appsmith — not your marketing website.

Visual builder with real code. Tables, charts, forms, lists, progress bars, maps — bind to queries, run JavaScript or Python inside the app when the visual layer isn't enough. Multi-page apps, inline comments, multiplayer editing when two people are fixing the same broken filter at once.

80+ data sources. PostgreSQL, MySQL, MongoDB, Redis, Snowflake, S3, Airtable, Stripe, REST, GraphQL — the usual suspects. One screen can join your warehouse and a SaaS API without writing a custom integration layer first.

Built-in ToolJet Database. A no-code database inside the platform for apps that don't need to touch prod on day one — prototypes, internal registries, scratch data. Handy for MVPs; know when to graduate to real Postgres instead.

Security-minded defaults. AES-256-GCM encryption for stored credentials, proxy-only data flow so browser clients don't hit your DB directly, SSO support for teams that won't manage another password store.

AI app generation, agent builders, and GitSync CI/CD live in ToolJet AI (enterprise). Community edition is the solid visual builder — don't expect natural-language "build me a CRM" magic on CE, and that's fine for most self-hosters.

ToolJet vs Appsmith — quick honest take

We covered Appsmith earlier — same problem space, different tradeoffs:

  • ToolJet — built-in database, multiplayer editing, Python in apps, plugin CLI for custom connectors
  • Appsmith — mature MongoDB-backed stack, strong Git workflow, slightly different widget model

Both self-host on Docker. Pick whichever UI clicks for your team after a 30-minute trial — or run one, not both, unless you enjoy maintaining duplicate low-code platforms.

Why self-host?

Admin tools touch sensitive data. Customer PII, refund buttons, employee records — that traffic shouldn't route through a US multi-tenant SaaS if you can put the builder on your own Canadian VPS.

Flat server cost. Per-seat low-code pricing adds up. Self-hosted ToolJet on one box serves ten editors or fifty read-only viewers — you pay for RAM and Postgres, not seats.

Reach private databases. ToolJet on your VPN can query internal Postgres instances that will never get a public connection string.

What running it takes

Docker Compose is the documented path. ToolJet needs PostgreSQL (version 16.x recommended) and Redis 7.x for caching and sessions.

Two databases, not one. ToolJet requires separate DB names: PG_DB for core app data (users, apps, permissions) and TOOLJET_DB for the internal ToolJet Database feature. Using the same name for both breaks deployment — read the env docs before first boot.

Hardware: ToolJet's docs suggest minimum 4 GB RAM, 1 vCPU, 8 GB disk for the app VM on x86_64 Linux (ARM not supported). Postgres separately wants 2 vCPU and 8 GB RAM at scale. Ubuntu 22.04+ is the usual target.

Download the official docker-compose.yaml and .env generator from ToolJet's docs — internal.sh spits out LOCKBOX_MASTER_KEY and SECRET_KEY_BASE. Set TOOLJET_HOST to your public HTTPS URL.

Quick local try: docker run -p 80:80 tooljet/try:ee-lts-latest — fine for a spin, not your production architecture.

HTTPS via reverse proxy, lock down signup, use read-only DB credentials where possible. Back up both Postgres databases before upgrades.

License: Community edition is AGPL v3. Self-hosting for your organization is standard; read the license if you're offering hosted ToolJet as a service to clients.

Who it's for (and who should skip it)

Good fit: ops and support teams needing dashboards yesterday, agencies gluing client stacks without custom React for every job, Canadian businesses wanting internal tools on infrastructure they control.

Maybe skip it: if Appsmith already works and nobody's complaining — you don't need two low-code platforms. If you need AI-generated apps from prompts on day one, that's ToolJet AI enterprise territory. If you're on ARM-only hardware (Apple Silicon VPS, Graviton), ToolJet's x86-only images won't run natively.

Hosting it in Canada

We deploy ToolJet on Canadian Docker hosting — dual Postgres backups, Redis, TLS, and read-only database users configured before anyone wires a "delete order" button. Pair with n8n when a dashboard action should trigger a workflow, not just display a row.

Tell us which databases you're connecting and how many builders — we'll size Postgres and Redis honestly so your internal tool doesn't become the thing that needs an internal tool to monitor.

Tags:
  • ToolJet
  • Low-Code
  • Internal Tools
  • Self-Hosted
  • Docker

Need Help With Your Hosting?

Tell us about your application — we respond within 1 hour with honest recommendations.