<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Teable]]></title><description><![CDATA[<p dir="auto"><img src="https://github.com/teableio/teable/raw/develop/static/assets/images/teable-vertical-light.png" alt="Teable" class=" img-fluid img-markdown" /></p>
<hr />
<h3>What is <a href="https://github.com/teableio/teable" target="_blank" rel="noopener noreferrer nofollow ugc">Teable</a>?</h3>
<p dir="auto">Teable uses a simple, spreadsheet-like interface to create powerful database applications. Collaborate with your team in real-time, and scale to millions of rows</p>
<h3>LISCENSE</h3>
<p dir="auto"><a href="https://github.com/teableio/teable/blob/develop/LICENSE" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/teableio/teable/blob/develop/LICENSE</a></p>
<hr />
<h3><img src="https://forum.sumisu.xyz/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e6.png?v=e98e1c9ec1b" class="not-responsive emoji emoji-android emoji--package" style="height:23px;width:auto;vertical-align:middle" title=":package:" alt="📦" /> Docker Compose</h3>
<pre><code>services:
  teable:
    image: ghcr.io/teableio/teable:latest
    restart: always
    ports:
      - '4095:3000'
    volumes:
      - teable-data:/app/.assets:rw
      # you may use a bind-mounted host directory instead,
      # so that it is harder to accidentally remove the volume and lose all your data!
      # - ./docker/teable/data:/app/.assets:rw
    environment:
      - TZ=${TIMEZONE}
      - NEXT_ENV_IMAGES_ALL_REMOTE=true
      - PUBLIC_ORIGIN=${PUBLIC_ORIGIN}
      - PRISMA_DATABASE_URL=${PRISMA_DATABASE_URL}
      - PUBLIC_DATABASE_PROXY=${PUBLIC_DATABASE_PROXY}
      - TEMPLATE_SITE_LINK=${TEMPLATE_SITE_LINK}
    networks:
      - teable-standalone
    depends_on:
      teable-db-migrate:
        condition: service_completed_successfully

  teable-db:
    image: postgres:15.4
    restart: always
    ports:
      - '42345:5432'
    volumes:
      - teable-db:/var/lib/postgresql/data:rw
      # you may use a bind-mounted host directory instead,
      # so that it is harder to accidentally remove the volume and lose all your data!
      # - ./docker/db/data:/var/lib/postgresql/data:rw
    environment:
      - TZ=${TIMEZONE}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    networks:
      - teable-standalone
    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:latest
    environment:
      - TZ=${TIMEZONE}
      - PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
    networks:
      - teable-standalone
    depends_on:
      teable-db:
        condition: service_healthy

networks:
  teable-standalone:
    name: teable-standalone-network
    driver: bridge

volumes:
  teable-data: {}
  teable-db: {}
</code></pre>
<h3>.env</h3>
<pre><code class="language-.env">TIMEZONE=UTC
POSTGRES_HOST=teable-db
POSTGRES_PORT=5432
POSTGRES_DB=teable #Database Name
POSTGRES_USER=teable_username #Database Username
POSTGRES_PASSWORD=teable_password #Database Password
PUBLIC_ORIGIN=https://teable.example.com #Public Url
PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
PUBLIC_DATABASE_PROXY=1.2.3.4:42345 #Database Public IP
TEMPLATE_SITE_LINK=https://template.teable.io #Optional Template URL
</code></pre>
]]></description><link>https://forum.sumisu.xyz/topic/43/teable</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 23:15:27 GMT</lastBuildDate><atom:link href="https://forum.sumisu.xyz/topic/43.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Dec 2024 01:31:29 GMT</pubDate><ttl>60</ttl></channel></rss>