# Download the latest version of Dockercurl -fsSL https://get.docker.com | bash -s docker# Verify the installationdocker --versiondocker-compose --version
# Replace the default password below with a strong password (ASCII) of at least 8 characters.POSTGRES_PASSWORD=replace_this_passwordREDIS_PASSWORD=replace_this_passwordSECRET_KEY=replace_this_secret_key# Replace the following with a publicly accessible addressPUBLIC_ORIGIN=http://127.0.0.1:3000# ---------------------# PostgresPOSTGRES_HOST=teable-dbPOSTGRES_PORT=5432POSTGRES_DB=teablePOSTGRES_USER=teable# RedisREDIS_HOST=teable-cacheREDIS_PORT=6379REDIS_DB=0# AppPRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}BACKEND_CACHE_PROVIDER=redisBACKEND_CACHE_REDIS_URI=redis://default:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}
# Replace the default passwords below with strong passwords (ASCII) of at least 8 characters.POSTGRES_PASSWORD=replace_this_passwordREDIS_PASSWORD=replace_this_passwordSECRET_KEY=replace_this_secret_key# If you enable HTTPS, set PROTOCOL to https.PROTOCOL=http# Set PUBLIC_HOST to the IP or domain name of your deployment. Cannot use localhost or 127.0.0.1.PUBLIC_HOST=192.168.x.x# Modify the final port to match your access port, or remove :port if using standard ports (80/443).PUBLIC_ORIGIN=${PROTOCOL}://${PUBLIC_HOST}:3000# ---------------------# PostgresPOSTGRES_HOST=teable-dbPOSTGRES_PORT=5432POSTGRES_DB=teablePOSTGRES_USER=teable# RedisREDIS_HOST=teable-cacheREDIS_PORT=6379REDIS_DB=0# MinioMINIO_ACCESS_KEY=teable_minio_accessMINIO_SECRET_KEY=${SECRET_KEY}# AppPRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}BACKEND_CACHE_PROVIDER=redisBACKEND_CACHE_REDIS_URI=redis://default:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}BACKEND_STORAGE_PROVIDER=minioBACKEND_STORAGE_PUBLIC_BUCKET=publicBACKEND_STORAGE_PRIVATE_BUCKET=privateBACKEND_STORAGE_MINIO_USE_SSL=false # If you enable HTTPS, modify this value to trueBACKEND_STORAGE_MINIO_ENDPOINT=${PUBLIC_HOST}BACKEND_STORAGE_MINIO_PORT=9000BACKEND_STORAGE_MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}BACKEND_STORAGE_MINIO_SECRET_KEY=${MINIO_SECRET_KEY}STORAGE_PREFIX=${PROTOCOL}://${PUBLIC_HOST}:${BACKEND_STORAGE_MINIO_PORT}
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
Teable CE is open source under the AGPL-3.0 license. For EE license subscription, please visit our pricing page to learn more about our enterprise offerings.
The ghcr.io/teableio/teable:latest image contains all features of both enterprise and community editions, and is free to use.If you need to use only the community edition, you can choose the ghcr.io/teableio/teable-community:latest image.
Why can't I import CSV/xlsx or upload images after installation
File import issues are typically due to incorrect configuration of the PUBLIC_ORIGIN environment variable. You need to set PUBLIC_ORIGIN to the currently accessible address:
Copy
# For local developmentPUBLIC_ORIGIN=http://127.0.0.1:3000# For local network accessPUBLIC_ORIGIN=http://192.168.1.100:3000# For domain name accessPUBLIC_ORIGIN=https://teable.example.com
After changing this configuration, you’ll need to restart your Teable instance for the changes to take effect.
How to enable HTTPS
Enabling HTTPS requires the following steps:
Obtain a valid SSL certificate
Set PROTOCOL=https in your configuration file
If using MinIO, remember to set BACKEND_STORAGE_MINIO_USE_SSL to true
It’s recommended to use a reverse proxy (like Nginx or Traefik) to handle SSL termination.