File storage service must be accessible from the public internet (directly accessible by end users)
Two buckets need to be created in advance for file storage.
Public readable bucket, configured with public read permissions
Copy
BACKEND_STORAGE_PUBLIC_BUCKET=teable-pub
Private bucket, no special permission configuration needed
Copy
BACKEND_STORAGE_PRIVATE_BUCKET=teable-pvt
Teable MinIO Environment Variables Overview
Copy
# Fixed valueBACKEND_STORAGE_PROVIDER=minio# Public bucketBACKEND_STORAGE_PUBLIC_BUCKET=teable-pub# Private bucketBACKEND_STORAGE_PRIVATE_BUCKET=teable-pvt# Public endpoint, important! Must be accessible by end usersBACKEND_STORAGE_MINIO_ENDPOINT=minio.example.com# Same as above but with protocolSTORAGE_PREFIX=https://minio.example.com# Internal network endpointBACKEND_STORAGE_MINIO_INTERNAL_ENDPOINT=internal.network# Public port, typically 443 or 9000BACKEND_STORAGE_MINIO_PORT=443# Internal network port, typically 80 or 9000BACKEND_STORAGE_MINIO_INTERNAL_PORT=80# Enable HTTPS, note: if Teable uses HTTPS, MinIO must also use HTTPS to avoid CORS issuesBACKEND_STORAGE_MINIO_USE_SSL="true"# Admin accountBACKEND_STORAGE_MINIO_ACCESS_KEY=root# Admin passwordBACKEND_STORAGE_MINIO_SECRET_KEY=rootPassword
Teable only needs the internal network address for Redis cache configuration. (Note: Redis manages both cache and queues, it’s essential. Data should be backed up regularly)
Environment variables example:
apiVersion: v1kind: ConfigMapmetadata: name: teable-configdata: # Application base configuration, public access domain PUBLIC_ORIGIN: "https://your-domain.com" # Storage configuration BACKEND_STORAGE_PROVIDER: "minio" # Public endpoint, important! Must be accessible by end users BACKEND_STORAGE_MINIO_ENDPOINT: "minio.example.com" # Same as above but with protocol STORAGE_PREFIX: "https://minio.example.com" # Internal endpoint BACKEND_STORAGE_MINIO_INTERNAL_ENDPOINT: "minio.namespace.svc" # Public port, typically 443 or 9000 BACKEND_STORAGE_MINIO_PORT: "443" # Internal port, typically 80 or 9000 BACKEND_STORAGE_MINIO_INTERNAL_PORT: "80" # Enable HTTPS, note: if Teable uses HTTPS, MinIO must also use HTTPS to avoid CORS issues BACKEND_STORAGE_MINIO_USE_SSL: "true" # Cache configuration, fixed value BACKEND_CACHE_PROVIDER: "redis" # Other configurations, fixed values NEXT_ENV_IMAGES_ALL_REMOTE: "true" PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING: "1" # Keep this when using self-signed certificates NODE_TLS_REJECT_UNAUTHORIZED: '0'