89 lines
2.8 KiB
YAML
89 lines
2.8 KiB
YAML
# documentation: https://help.teable.io/
|
|
# slogan: Teable is a powerful visual interface built on relational databases (PostgreSQL).
|
|
# tags: airtable, teable, database, visual, interface, relational, postgresql
|
|
# logo: svgs/teable.png
|
|
# port: 3000
|
|
|
|
services:
|
|
teable:
|
|
image: ghcr.io/teableio/teable:latest
|
|
volumes:
|
|
- teable_data:/app/.assets:rw
|
|
environment:
|
|
- SERVICE_FQDN_TEABLE_3000
|
|
- PUBLIC_ORIGIN=${SERVICE_FQDN_TEABLE}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- SECRET_KEY=${SERVICE_PASSWORD_64_SECRET}
|
|
- TZ=${TIMEZONE}
|
|
- PRISMA_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@teable-db:${POSTGRES_PORT}/${POSTGRES_DB}
|
|
- NEXT_ENV_IMAGES_ALL_REMOTE=true
|
|
- PORT=3000
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
- BACKEND_CACHE_PROVIDER=redis
|
|
- BACKEND_CACHE_REDIS_URI=redis://default:${SERVICE_PASSWORD_REDIS}@teable-cache:6379/0
|
|
- BACKEND_MAIL_HOST=${BACKEND_MAIL_HOST}
|
|
- BACKEND_MAIL_PORT=${BACKEND_MAIL_PORT}
|
|
- BACKEND_MAIL_SECURE=${BACKEND_MAIL_SECURE}
|
|
- BACKEND_MAIL_SENDER=${BACKEND_MAIL_SENDER}
|
|
- BACKEND_MAIL_SENDER_NAME=${BACKEND_MAIL_SENDER_NAME}
|
|
- BACKEND_MAIL_AUTH_USER=${BACKEND_MAIL_AUTH_USER}
|
|
- BACKEND_MAIL_AUTH_PASS=${BACKEND_MAIL_AUTH_PASS}
|
|
depends_on:
|
|
teable-cache:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- curl
|
|
- '-f'
|
|
- 'http://127.0.0.1:3000'
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
teable-db:
|
|
image: postgres:15.4
|
|
volumes:
|
|
- teable_db_data:/var/lib/postgresql/data:rw
|
|
environment:
|
|
- TZ=${TIMEZONE}
|
|
- POSTGRES_DB=${POSTGRES_DB:-teable}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
teable-db-migrate:
|
|
image: ghcr.io/teableio/teable-db-migrate:latest
|
|
restart: no
|
|
environment:
|
|
- TZ=${TIMEZONE}
|
|
- PRISMA_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@teable-db:${POSTGRES_PORT}/${POSTGRES_DB}
|
|
depends_on:
|
|
teable-db:
|
|
condition: service_healthy
|
|
teable-cache:
|
|
image: redis:7.2.4
|
|
environment:
|
|
- REDIS_PORT=6379
|
|
- REDIS_DB=0
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
volumes:
|
|
- teable_cache_data:/data:rw
|
|
command: redis-server --appendonly yes --requirepass ${SERVICE_PASSWORD_REDIS}
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- redis-cli
|
|
- '--raw'
|
|
- incr
|
|
- ping
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|