ToolJet
Low-code internal tools with 50+ connectors - one container on a managed Postgres, no app caps, no seat pricing.
One-click deploy, from $25/mo on a Miget plan.
ToolJet is the modern entry in the internal-tools race: a visual app builder with 50+ datasource connectors, JavaScript and Python in queries, workflow automation, and a built-in spreadsheet-style database (PostgREST-backed) for when you have no datasource at all yet.
This is the cleanest deployment in the Internal Tools category: the ToolJet server respects PORT, so it listens on :5000 directly - no proxy - and all state lives in Postgres, which Miget provisions as a managed service and auto-wires. The app container itself is stateless.
Three generated secrets and you are building. ToolJet Cloud caps the free and Pro tiers by apps and end users; CE self-hosted has neither cap, which is exactly the property you want in a tool whose whole job is to multiply across your org.
Upstream project: ToolJet CE
#what you get
- Visual builder with 45+ UI components and responsive layouts
- 50+ connectors: Postgres, MySQL, Mongo, REST, GraphQL, S3, Stripe, …
- JS and Python inside queries and transformations
- ToolJet Database: built-in PostgREST-backed tables, no setup
- Stateless app container on a managed Postgres - clean ops story
- No app caps or seat pricing in CE
#topology
| Service | Role | Public |
|---|---|---|
| tooljet | server + builder UI (:5000); bundles PostgREST | yes |
| db | Postgres - managed service on Miget, container locally | no |
#miget sizing
// this stack needs
3.5 GiB RAM · 6 GB disk · 2 services
2 GiB for the server (official minimum is 2 GB / 1 vCPU) plus the managed Postgres. Note: the ToolJet image is x86_64-only.
Hobby - recommended fit
$25/mo
2 vCPU · 4 GiB · 80 GiB disk
Headroom for your own apps: 8 GiB at $49/mo
Professional - production
$43/mo
2 vCPU · 4 GiB · 25 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| ToolJet on Miget ★ | 4 GiB plan | $25 | this whole stack, flat - no usage meters, and room left for your own apps |
| Retool | Team | ~$150 | for 5 builders + 20 end users, billed annually |
| ToolJet Cloud | Pro | ~$79 | flat: unlimited builders, 100 end users, capped at 5 apps; Team tier $199/mo lifts the caps |
Self-hosted ToolJet CE has no app or user caps; the meter that matters is just the RAM it runs on.
#vs. other PaaS
Estimated monthly cost of running this exact stack (3.5 GiB RAM, 6 GB disk, 2 containers) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $25 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$175 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$47 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$45 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$36 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$22 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
tooljet -
Set the required variables:
SECRET_KEY_BASE, session cookies (openssl rand -hex 64)LOCKBOX_MASTER_KEY, datasource credential encryption (openssl rand -hex 32) - losing it orphans saved datasourcesPGRST_JWT_SECRET, ToolJet Database JWT (openssl rand -hex 32)TOOLJET_HOST, set to the app’s https domain after first deploy
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/tooljet
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
How does self-hosted ToolJet compare to ToolJet Cloud and Retool?
ToolJet Cloud Pro is $79/month flat but caps you at 5 apps and 100 end users; Retool Team lands ~$150/month for a small team and grows per seat. This stack is $25/month flat with no app or user caps - CE gates enterprise features (SSO, audit logs), not scale.
What is the ToolJet Database and do I need to set anything up?
A built-in, spreadsheet-style data store backed by PostgREST (bundled in the image). It uses its own database (tooljet_db) on the same Postgres server, created automatically on first boot - you just provide PGRST_JWT_SECRET.
Where does ToolJet store its state?
Entirely in Postgres - apps, queries, users, encrypted datasource credentials. The container is stateless and needs no volume, so redeploys are clean and the managed database carries the persistence story.
What happens if I lose LOCKBOX_MASTER_KEY?
Saved datasource credentials become undecryptable and must be re-entered. Apps and queries survive. Store the key in a password manager the day you generate it, same discipline as n8n’s encryption key.
Ship ToolJet today
One compose stack, 3.5 GiB of RAM, from $25/month flat, and it runs on your laptop with the same files.