Image Editions

Teable offers both Enterprise Edition (EE) and Community Edition (CE) images. Add the -ee suffix to the image name to switch to the EE.

EE
# Application
ghcr.io/teableio/teable-ee:latest
# Database Migration
ghcr.io/teableio/teable-db-migrate-ee:latest

The EE is now in the preview test, mail to support@teable.io we will give a 1-month trial license

The EE allows free use of all CE features and supports Enterprise-exclusive features through License subscription. You can view Enterprise features on the pricing page. EE data is compatible with the CE, and you can switch between versions.

CE
# Application
ghcr.io/teableio/teable:latest
# Database Migration
ghcr.io/teableio/teable-db-migrate:latest

The CE is built from open-source code and does not include any Enterprise features. Its data is compatible with the EE, and you can switch to the EE at any time.

Docker Compose Deployment

Recommended Scale: 0-1000 users

AdvantagesDisadvantages
Simple deploymentSingle-machine deployment, complex scaling
Full control
Flexible configuration

Server Requirements

Ensure your server meets these basic requirements:

  • Operating System: Recommended Linux distribution, such as Ubuntu 20.04 LTS
  • Memory: Minimum 4GB RAM
  • CPU: At least 2 cores
  • Disk Space: Minimum 40GB available space
  • Network: Stable internet connection with necessary port access

Prerequisites

Before starting, ensure you have:

  • Basic understanding of Docker and containerization principles
  • Docker and Docker Compose installed on your machine. Visit the official Docker documentation for installation guides.

Installing Docker

# Download the latest version of Docker
curl -fsSL https://get.docker.com | bash -s docker

# Verify the installation
docker --version
docker-compose --version

Installing the Application

1. Create docker-compose.yaml File

Access your server, create and enter the teable folder:

mkdir teable

cd teable

Create a docker-compose.yaml and a .env file, then paste the following content:

vim docker-compose.yaml

Minimal Deployment:

docker-compose.yaml
services:
  teable:
    image: ghcr.io/teableio/teable-ee:latest
    restart: always
    ports:
      - '3000:3000'
    volumes:
      - teable-data:/app/.assets:rw
    env_file:
      - .env
    environment:
      - NEXT_ENV_IMAGES_ALL_REMOTE=true
    networks:
      - teable
    depends_on:
      teable-db-migrate:
        condition: service_completed_successfully
      teable-cache:
        condition: service_healthy
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000/health']
      start_period: 5s
      interval: 5s
      timeout: 3s
      retries: 3

  teable-db:
    image: postgres:15.4
    restart: always
    ports:
      - '42345:5432'
    volumes:
      - teable-db:/var/lib/postgresql/data:rw
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    networks:
      - teable
    healthcheck:
      test: ['CMD-SHELL', "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'"]
      interval: 10s
      timeout: 3s
      retries: 3

  teable-db-migrate:
    image: ghcr.io/teableio/teable-db-migrate-ee:latest
    environment:
      - PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
    networks:
      - teable
    depends_on:
      teable-db:
        condition: service_healthy

  teable-cache:
    image: redis:7.2.4
    restart: always
    expose:
      - '6379'
    volumes:
      - teable-cache:/data:rw
    networks:
      - teable
    command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
    healthcheck:
      test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']
      interval: 10s
      timeout: 3s
      retries: 3

networks:
  teable:
    name: teable-network

volumes:
  teable-db: {}
  teable-data: {}
  teable-cache: {}

```bash .env
# Replace the default password below with a strong password (ASCII) of at least 8 characters.
POSTGRES_PASSWORD=replace_this_password
REDIS_PASSWORD=replace_this_password
SECRET_KEY=replace_this_secret_key

# Replace the following with a publicly accessible address
PUBLIC_ORIGIN=http://127.0.0.1:3000

# ---------------------

# Postgres
POSTGRES_HOST=teable-db
POSTGRES_PORT=5432
POSTGRES_DB=teable
POSTGRES_USER=teable

# Redis
REDIS_HOST=teable-cache
REDIS_PORT=6379
REDIS_DB=0

# App
PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
BACKEND_CACHE_PROVIDER=redis
BACKEND_CACHE_REDIS_URI=redis://default:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}

Start the Application

Run the following commands in the current directory to start the application. Once started, you can access the application at 127.0.0.1:3000

HTTPS environment is required for large-scale data copying operations, otherwise asynchronous clipboard access will not be possible

docker-compose pull

docker-compose up -d

Using Managed Databases (Optional)

If you prefer to use managed databases, you can further simplify the deployment process:

  1. Remove services.teable-db
  2. Remove service.teable-db-migrate.depends_on
  3. Remove volumes.teable-db
  4. Update .env with your managed database configuration

Fill in the database parameters with your managed database connection parameters:

.env
POSTGRES_HOST=your-database.com
POSTGRES_PORT=5432
POSTGRES_DB=teable
POSTGRES_USER=teable

Note that 127.0.0.1 is the container’s internal network. If you want to connect to a locally deployed database, use host.docker.internal instead of 127.0.0.1 as the host address, otherwise the connection will fail

Similarly for external managed Redis:

  • Remove service.teable-cache
  • Remove service.teable.depends_on.teable-cache
  • Remove volumes.teable-cache
  • Update .env with your managed Redis configuration

Next Steps

Configure Email Service

Configure External Base Connection

Support and Feedback

If you encounter any issues during deployment, please contact our support team at support@teable.io or submit an issue.

License

Teable CE is open source under the AGPL-3.0 license. For EE, please contact us for commercial licensing.