Deploy ToolJet
Low-code internal tools builder with ToolJet Database and PostgREST
Just deployed
Just deployed
/var/lib/postgresql/data
PostgREST
Just deployed
Deploy and Host ToolJet on Railway
ToolJet is an open-source low-code platform for building internal tools such as admin panels, dashboards and approval apps. You drag components onto a canvas, connect them to databases and APIs, and add logic in JavaScript or Python. It also includes its own table store, ToolJet Database, and workflows. The Community Edition is AGPL-3.0.
About Hosting ToolJet
Hosting ToolJet means running its Node.js server, which also serves the web app, next to a PostgreSQL database and a PostgREST server that powers ToolJet Database. This template runs the official tooljet/tooljet-ce v3.20.256 LTS image, pinned by digest, with Railway's PostgreSQL 18 on a volume and PostgREST 12.2 on the private network. Redis is bundled inside the ToolJet image. On the first boot ToolJet creates its two databases, runs its migrations and creates the administrator from the email you enter and a generated password. Secrets are generated at deploy time, and a /api/health check gates every deploy.
Common Use Cases
- Admin panels and back-office tools on top of PostgreSQL, MySQL, MongoDB, REST or GraphQL APIs
- Internal dashboards, approval flows and CRUD apps for operations, support and finance teams
- Small apps that keep their own data in ToolJet Database, with no separate database to manage
Dependencies for ToolJet Hosting
- PostgreSQL 18 (Railway's
postgres-sslimage, with a volume) for the app database and ToolJet Database - PostgREST 12.2.12 (
postgrest/postgrest, private network only) for ToolJet Database queries
Deployment Dependencies
- ToolJet v3.20.256-lts release
- ToolJet Docker setup guide
- ToolJet environment variables
- ToolJet Database and PostgREST
tooljet/tooljet-ceimage on Docker Hub- PostgREST v12.2.12 release
Implementation Details
First sign-in. Open your Railway domain and sign in with ADMIN_EMAIL and the generated ADMIN_PASSWORD (ToolJet service → Variables), then change the password under your profile. The first boot takes two to four minutes. ToolJet's setup screen is never open on the public URL: the start command creates the administrator through ToolJet's own setup API on a temporary server bound to 127.0.0.1, before the public server starts. If that step fails, the service stops instead of serving an unclaimed instance. The admin is created only once, so changing ADMIN_PASSWORD later has no effect.
Sign-ups. Public sign-up is off (DISABLE_SIGNUPS=true). Add people from Workspace settings → Users.
Settings. The start command sets these defaults, and you can override any of them with a service variable of the same name: PG_DB=tooljet_production, TOOLJET_DB=tooljet_db, ENABLE_TOOLJET_DB=true, DISABLE_SIGNUPS=true, ENABLE_MULTIPLAYER_EDITING=true, USER_SESSION_EXPIRY=2880 (minutes) and SLOW_QUERY_LOGGING_THRESHOLD=1000 (ms, keeps the logs quiet).
Email. No mail server is configured, so invite and password-reset emails aren't sent. To send them, set SMTP_DOMAIN, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD and DEFAULT_FROM_EMAIL on the ToolJet service.
PostgREST version. ToolJet's Docker Compose file still names PostgREST 12.0.2, but that version can stay disconnected after PostgreSQL restarts. This template uses 12.2.12, the line ToolJet bundles in its own Enterprise image, which reconnects by itself.
Why Deploy ToolJet on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying ToolJet on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
ADMIN_EMAIL
PostgREST
postgrest/postgrest:v12.2.12