Deploy Teable | (Just Updated) Airtable Alternative, No-Code Postgres Database, Admin And API Token Ready

Teable Airtable alternative on Postgres, admin login generated

Deploy Teable | (Just Updated) Airtable Alternative, No-Code Postgres Database, Admin And API Token Ready

postgres

postgres:15

Just deployed

/var/lib/postgresql

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 the teable service
  • Private URL: http://teable.railway.internal:8080
  • Credentials: TEABLE_ADMIN_EMAIL and TEABLE_ADMIN_PASSWORD on the teable service (browser sign-in at /auth/login). The bundled database password is POSTGRES_PASSWORD on the postgres service.
  • Auth: sign in with POST /api/auth/signin for a session cookie, then create a personal access token with POST /api/access-token and send it as Authorization: Bearer
  • Health: GET /health returns 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/.assets on the Teable service for uploaded files (included in this template).

Deployment Dependencies


Template Content

More templates in this category

View Template
RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set
S3-compatible object store, keys and public URL preset, volume kept

SuperSlowSloth
0
View Template
TimescaleDB
A PostgreSQL-based time-series database for analytics on Railway.

Rakit
1
View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play.

PROJETOS
8