| Core Configuration |
|
|
|
|
| PUBLIC_ORIGIN |
Public origin for generating complete URLs, must be set to your app's access address |
- |
Yes |
https://app.teable.ai |
| SECRET_KEY |
Key for JWT, sessions, and sharing, use a strong password |
defaultSecretKey |
Yes |
yourStrongSecretKey |
| PORT |
Port on which the application runs |
3000 |
- |
3000 |
| LOG_LEVEL |
Log level, options: fatal, error, warn, info, debug, trace |
info |
- |
debug |
| NEXT_ENV_IMAGES_ALL_REMOTE |
Whether to allow loading third-party images |
false |
- |
true |
| Storage Configuration |
|
|
|
|
| BACKEND_STORAGE_PROVIDER |
Storage provider, options: local, minio, s3, aliyun |
local |
- |
s3 |
| BACKEND_STORAGE_LOCAL_PATH |
Local storage path |
.assets/uploads |
- |
.assets/uploads |
| BACKEND_STORAGE_PUBLIC_BUCKET |
Public bucket name |
public |
- |
teable-public |
| BACKEND_STORAGE_PRIVATE_BUCKET |
Private bucket name |
private |
- |
teable-private |
| BACKEND_STORAGE_PUBLIC_URL |
Public URL override for public bucket (optional) |
- |
- |
https://cdn.example.com |
| BACKEND_STORAGE_PRIVATE_BUCKET_ENDPOINT |
Private bucket endpoint override (optional) |
- |
- |
https://private-bucket.endpoint |
| BACKEND_STORAGE_S3_REGION |
S3 storage region, required when BACKEND_STORAGE_PROVIDER is s3 |
- |
- |
us-east-2 |
| BACKEND_STORAGE_S3_ENDPOINT |
S3 storage endpoint, required when BACKEND_STORAGE_PROVIDER is s3 |
- |
- |
https://s3.us-east-2.amazonaws.com |
| BACKEND_STORAGE_S3_INTERNAL_ENDPOINT |
S3 internal endpoint (optional) |
- |
- |
http://s3.internal |
| BACKEND_STORAGE_S3_ACCESS_KEY |
S3 storage access key, required when BACKEND_STORAGE_PROVIDER is s3 |
- |
- |
your_access_key |
| BACKEND_STORAGE_S3_SECRET_KEY |
S3 storage secret key, required when BACKEND_STORAGE_PROVIDER is s3 |
- |
- |
your_secret_key |
| BACKEND_STORAGE_S3_MAX_SOCKETS |
S3 max sockets (optional) |
100 |
- |
100 |
| BACKEND_STORAGE_MINIO_ENDPOINT |
MinIO storage endpoint |
- |
- |
minio.example.com |
| BACKEND_STORAGE_MINIO_PORT |
MinIO port |
9000 |
- |
443 |
| BACKEND_STORAGE_MINIO_USE_SSL |
Whether MinIO uses SSL |
false |
- |
true |
| BACKEND_STORAGE_MINIO_ACCESS_KEY |
MinIO access key |
- |
- |
access-key |
| BACKEND_STORAGE_MINIO_SECRET_KEY |
MinIO secret key |
- |
- |
secret-key |
| BACKEND_STORAGE_MINIO_INTERNAL_ENDPOINT |
MinIO internal endpoint (optional, no HTTPS) |
- |
- |
minio.internal |
| BACKEND_STORAGE_MINIO_INTERNAL_PORT |
MinIO internal port (optional) |
9000 |
- |
9000 |
| BACKEND_STORAGE_MINIO_REGION |
MinIO region (optional) |
- |
- |
us-east-1 |
| BACKEND_STORAGE_UPLOAD_METHOD |
Upload method |
put |
- |
put |
| STORAGE_PREFIX |
Storage prefix, defaults to PUBLIC_ORIGIN |
PUBLIC_ORIGIN |
- |
http://localhost:3000 |
| Cache Configuration |
|
|
|
|
| BACKEND_CACHE_PROVIDER |
Cache provider, options: sqlite, memory, redis |
sqlite |
- |
redis |
| BACKEND_CACHE_REDIS_URI |
Redis cache connection URI, required when BACKEND_CACHE_PROVIDER is redis |
- |
- |
redis://default:teable@127.0.0.1:6379/0 |
| Performance Cache Configuration |
|
|
|
|
| BACKEND_PERFORMANCE_CACHE |
Performance cache Redis URL for query result caching, improves multi-user collaboration efficiency. Recommended to use separate Redis instance from BACKEND_CACHE_REDIS_URI |
- |
- |
redis://default:teable@127.0.0.1:6379/0 |
| Authentication Configuration |
|
|
|
|
| SOCIAL_AUTH_PROVIDERS |
List of social auth providers, comma-separated |
- |
- |
github,google,oidc |
| BACKEND_GITHUB_CLIENT_ID |
GitHub OAuth client ID |
- |
- |
github_client_id |
| BACKEND_GITHUB_CLIENT_SECRET |
GitHub OAuth client secret |
- |
- |
github_client_secret |
| BACKEND_GOOGLE_CLIENT_ID |
Google OAuth client ID |
- |
- |
google_client_id |
| BACKEND_GOOGLE_CLIENT_SECRET |
Google OAuth client secret |
- |
- |
google_client_secret |
| BACKEND_OIDC_CLIENT_ID |
OIDC client ID |
- |
- |
google_client_id |
| BACKEND_OIDC_CLIENT_SECRET |
OIDC client secret |
- |
- |
google_client_secret |
| BACKEND_OIDC_CALLBACK_URL |
OIDC callback URL |
- |
- |
https://app.teable.ai/api/auth/oidc/callback |
| Security & Verification |
|
|
|
|
| TURNSTILE_SITE_KEY |
Cloudflare Turnstile site key for authentication verification |
- |
- |
1x00000000000000000000AA |
| TURNSTILE_SECRET_KEY |
Cloudflare Turnstile secret key for authentication verification |
- |
- |
1x0000000000000000000000000000000AA |
| BACKEND_SIGNUP_VERIFICATION_CODE_RATE_LIMIT_SECONDS |
Rate limit interval (seconds) for sending signup verification emails |
- |
- |
30 |
| Email Configuration (Deprecated - Use Admin Panel Settings) |
|
|
|
|
| BACKEND_MAIL_HOST |
[DEPRECATED] Email server host. Please use Admin Panel > Settings for visual email configuration |
- |
- |
smtp.gmail.com |
| BACKEND_MAIL_PORT |
[DEPRECATED] Email server port. Please use Admin Panel > Settings for visual email configuration |
- |
- |
465 |
| BACKEND_MAIL_AUTH_USER |
[DEPRECATED] Email server authentication username. Please use Admin Panel > Settings for visual email configuration |
- |
- |
username |
| BACKEND_MAIL_AUTH_PASS |
[DEPRECATED] Email server authentication password. Please use Admin Panel > Settings for visual email configuration |
- |
- |
usertoken |
| Session/JWT Configuration |
|
|
|
|
| BACKEND_SESSION_EXPIRES_IN |
Session expiration time |
7d |
- |
7d |
| BACKEND_SESSION_COOKIE_SECURE |
Whether to secure session cookie |
false |
- |
true |
| BACKEND_SESSION_ORIGIN_CHECK_ENABLED |
Enable Origin and Fetch Metadata checks for unsafe browser session-cookie API requests. Enable only when your proxy or CDN preserves these request headers |
false |
- |
true |
| BACKEND_JWT_EXPIRES_IN |
JWT expiration time |
20d |
- |
20d |
| BACKEND_RESET_PASSWORD_EMAIL_EXPIRES_IN |
Reset password email expiration time |
30m |
- |
30m |
| Resource Limits |
|
|
|
|
| MAX_COPY_CELLS |
Maximum number of cells to copy in a single request |
- |
- |
50000 |
| MAX_READ_ROWS |
Maximum number of rows to read in a single request |
- |
- |
10000 |
| MAX_ATTACHMENT_UPLOAD_SIZE |
Maximum attachment upload size (bytes) |
- |
- |
2147483648 |
| Feature Toggles |
|
|
|
|
| RECORD_HISTORY_DISABLED |
Whether to disable record history, defaults to false |
false |
- |
true |
| PASSWORD_LOGIN_DISABLED |
Whether to disable password login (OAuth and OIDC still available) |
false |
- |
true |
| Analytics & Monitoring |
|
|
|
|
| MICROSOFT_CLARITY_ID |
Microsoft Clarity metrics ID, for enabling Microsoft Clarity analytics |
- |
- |
your-metrics-id |
| OTEL_EXPORTER_OTLP_ENDPOINT |
OpenTelemetry OTLP endpoint |
- |
- |
http://jaeger:4317 |
| TELEMETRY_REPORT_DISABLED |
Disable self-hosted telemetry reporting, including license compliance reports from connected instances |
false |
- |
true |
| Database Configuration |
|
|
|
|
| PRISMA_DATABASE_URL |
Database connection URL, must be configured |
- |
Yes |
postgresql://teable:teable@127.0.0.1:5432/teable |
| PRISMA_TRANSACTION_TIMEOUT |
Maximum time (ms) a transaction can run before timing out. Increase for long-running transactions (e.g., bulk updates with many foreign keys) |
5000 |
- |
60000 |
| PRISMA_TRANSACTION_MAX_WAIT |
Maximum time (ms) to wait to acquire a transaction from the pool |
2000 |
- |
5000 |