Teable
Collaborate with your team in real-time, and scale to millions of rows
Alternative to: airtable
Collaborate with your team in real-time, and scale to millions of rows
Teable Docker Compose example
Self-host Teable on your own server, homelab, or VPS starting from this Docker Compose example.
It runs Teable in Docker containers using the official ghcr.io/teableio/teable:latest, postgres:15.4, redis:7 images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
teable:
image: ghcr.io/teableio/teable:latest
restart: unless-stopped
volumes:
- teable-data:/app/.assets:rw
environment:
# Postgres
POSTGRES_HOST: "changeme"
POSTGRES_PORT: "5432"
POSTGRES_DB: "changeme"
POSTGRES_USER: "changeme"
POSTGRES_PASSWORD: "changeme"
SECRET_KEY: ""
# Redis
REDIS_HOST: "teable-cache"
REDIS_PORT: "6379"
REDIS_DB: "0"
REDIS_PASSWORD: "ed1818607983ea4ad84a3cdffe"
# App
PUBLIC_ORIGIN: "changeme"
TIMEZONE: "UTC"
PRISMA_DATABASE_URL: "postgresql://changeme:changeme@changeme:5432/changeme"
BACKEND_CACHE_PROVIDER: "redis"
BACKEND_CACHE_REDIS_URI: "redis://default:ed1818607983ea4ad84a3cdffe@:/"
depends_on:
teable-db:
condition: service_healthy
teable-cache:
condition: service_healthy
teable-db:
image: postgres:15.4
restart: unless-stopped
ports:
- '42345:5432'
volumes:
- teable-db:/var/lib/postgresql/data:rw
environment:
- TZ=UTC
- POSTGRES_DB=changeme
- POSTGRES_USER=changeme
- POSTGRES_PASSWORD=changeme
healthcheck:
test: ['CMD-SHELL', "sh -c 'pg_isready -U changeme -d changeme'"]
interval: 10s
timeout: 3s
retries: 3
teable-cache:
image: redis:7
restart: unless-stopped
volumes:
- teable-cache:/data:rw
command: redis-server --appendonly yes --requirepass ed1818607983ea4ad84a3cdffe
healthcheck:
test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']
interval: 10s
timeout: 3s
retries: 3
volumes:
teable-data:
teable-db:
teable-cache:
Values set to changeme are required — replace them with your own
values before starting Teable.
Prefer a managed setup? WinterFlow installs, configures, and updates Teable for you using this same Docker Compose configuration.