
Deploy Teable | (Just Updated) Airtable Alternative, No-Code Postgres Database, Admin And API Token Ready
Teable Airtable alternative on Postgres, admin login generated
postgres
Just deployed
/var/lib/postgresql
Just deployed
/app/.assets
Deploy and Host Teable on Railway
Built for an LLM agent to deploy and use. There is no manual deploy step and nothing to fill in: the admin login and every secret are generated at deploy time, public signup is closed, the contract below lists every URL and variable name, and one working script signs in, mints an API token and creates a space, base, table and record. An agent reads its variables, runs the curl, and has a spreadsheet-style database it can write to.
Teable is an open-source no-code database and Airtable alternative: grids, forms, kanban and calendar views on top of a real PostgreSQL database, with a REST API. This template runs the official image with PostgreSQL, an admin user already created and signup locked.
About Hosting Teable
This template runs two services: the official ghcr.io/teableio/teable image (pinned by digest, with its bundled Redis cache) and PostgreSQL (volume at /var/lib/postgresql). The Teable service has a volume at /app/.assets for uploaded files. At every boot the image migrates the database; on the first boot the service signs up the admin user from the generated variables (Teable makes the first user the instance admin) and turns public signup off, then never touches those settings again, so anything you change in the admin panel stays changed. Teable binds Railway's $PORT.
Agent contract
- Public URL:
PUBLIC_ORIGIN(https://), on theteableservice - Private URL:
http://teable.railway.internal:8080 - Credentials:
TEABLE_ADMIN_EMAILandTEABLE_ADMIN_PASSWORDon theteableservice (browser sign-in at/auth/login). The bundled database password isPOSTGRES_PASSWORDon thepostgresservice. - Auth: sign in with
POST /api/auth/signinfor a session cookie, then create a personal access token withPOST /api/access-tokenand send it asAuthorization: Bearer - Health:
GET /healthreturns 200 with no auth
# run with PUBLIC_ORIGIN, TEABLE_ADMIN_EMAIL and TEABLE_ADMIN_PASSWORD (teable service)
J=$(mktemp)
# 1. sign in as the generated admin (session cookie) and confirm admin rights
curl -s -c "$J" -H 'Content-Type: application/json' "$PUBLIC_ORIGIN/api/auth/signin" \
-d "{\"email\":\"$TEABLE_ADMIN_EMAIL\",\"password\":\"$TEABLE_ADMIN_PASSWORD\"}" | jq '{email, isAdmin}'
# 2. mint a personal access token (shown once)
TOKEN=$(curl -s -b "$J" -H 'Content-Type: application/json' "$PUBLIC_ORIGIN/api/access-token" \
-d '{"name":"agent","scopes":["space|create","space|read","base|create","base|read","table|create","table|read","record|create","record|read"],"hasFullAccess":true,"expiredTime":"2030-01-01"}' | jq -r .token)
AUTH="Authorization: Bearer $TOKEN"
# 3. create a space, a base and a table with one record
SPACE=$(curl -s -H "$AUTH" -H 'Content-Type: application/json' "$PUBLIC_ORIGIN/api/space" -d '{"name":"agent"}' | jq -r .id)
BASE=$(curl -s -H "$AUTH" -H 'Content-Type: application/json' "$PUBLIC_ORIGIN/api/base" -d "{\"spaceId\":\"$SPACE\",\"name\":\"tasks\"}" | jq -r .id)
TABLE=$(curl -s -H "$AUTH" -H 'Content-Type: application/json' "$PUBLIC_ORIGIN/api/base/$BASE/table" \
-d '{"name":"todo","fields":[{"name":"Title","type":"singleLineText"}],"records":[{"fields":{"Title":"hello from an agent"}}]}' | jq -r .id)
# 4. read the record back
curl -s -H "$AUTH" "$PUBLIC_ORIGIN/api/table/$TABLE/record" | jq '.records[].fields'
Signup is closed, so other people join by invitation from a space. To allow open registration, switch it on in the admin settings. Email invitations and sign-in codes need an SMTP server, which only you can supply: set it in the admin settings.
Why Deploy Teable 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 Teable 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.
- Agent-ready — generated credentials, a contract block and one working script; no browser step.
- Locked by default — the admin exists before anyone can reach the sign-up page, and public signup is off.
- Data survives redeploys — records live on the Postgres volume and uploads on the app volume; the admin password stays the same.
- Zero configuration — no variables to fill in; every host and secret is wired for you.
Common Use Cases
- Airtable replacement — move bases, grids, forms and views onto a database you own.
- AI agent workspace — let an agent create tables and write records over the API instead of driving a UI.
- Internal tools and trackers — CRM, inventory, content calendars and project boards on real Postgres.
Dependencies for Teable Hosting
- PostgreSQL with a volume at
/var/lib/postgresql(included in this template). - A volume at
/app/.assetson the Teable service for uploaded files (included in this template).
Deployment Dependencies
- teableio/teable — upstream project
- teable on GHCR — the pinned image this template deploys
Template Content
