| Змінна середовища | Опис | Стандартне значення | Обов’язкова | Приклад |
|---|---|---|---|---|
| Основні налаштування | ||||
| PUBLIC_ORIGIN | Загальнодоступне джерело для створення повних URL-адрес; має відповідати адресі доступу до вашого застосунку | - | Так | https://app.teable.ai |
| SECRET_KEY | Кореневий секрет для JWT, сеансів і спільного доступу. Згенеруйте надійне випадкове значення | - | Так | openssl rand -base64 32 |
| BACKEND_JWT_SECRET | Підписує JWT автентифікації, спільного доступу та плагінів. Резервне значення — SECRET_KEY | SECRET_KEY | - | openssl rand -base64 32 |
| BACKEND_SESSION_SECRET | Підписує файли cookie сеансу входу. Резервне значення — SECRET_KEY | SECRET_KEY | - | openssl rand -base64 32 |
| BACKEND_STORAGE_ENCRYPTION_KEY | Шифрує токени доступу до вкладень. Обов’язкова, коли BACKEND_STORAGE_PROVIDER має значення local | - | Так | випадковий рядок із 16 символів |
| BACKEND_STORAGE_ENCRYPTION_IV | Вектор ініціалізації шифрування, що використовується з BACKEND_STORAGE_ENCRYPTION_KEY | - | Так | випадковий рядок із 16 символів |
| BACKEND_ACCESS_TOKEN_ENCRYPTION_KEY | Шифрує персональні токени доступу | - | Так | випадковий рядок із 16 символів |
| BACKEND_ACCESS_TOKEN_ENCRYPTION_IV | Вектор ініціалізації шифрування, що використовується з BACKEND_ACCESS_TOKEN_ENCRYPTION_KEY | - | Так | випадковий рядок із 16 символів |
| PORT | Порт, на якому працює застосунок | 3000 | - | 3000 |
| LOG_LEVEL | Рівень журналювання, варіанти: fatal, error, warn, info, debug, trace | info | - | debug |
| Налаштування сховища | ||||
| BACKEND_STORAGE_PROVIDER | Постачальник сховища, варіанти: local, minio, s3, aliyun | local | - | s3 |
| BACKEND_STORAGE_LOCAL_PATH | Шлях до локального сховища | .assets/uploads | - | .assets/uploads |
| BACKEND_STORAGE_PUBLIC_BUCKET | Назва загальнодоступного бакета | public | - | teable-public |
| BACKEND_STORAGE_PRIVATE_BUCKET | Назва приватного бакета для вкладень, файлів застосунків, архівних даних та іншого захищеного вмісту | private | - | teable-private |
| BACKEND_STORAGE_PUBLIC_URL | Перевизначення загальнодоступної URL-адреси для загальнодоступного бакета (необов’язково) | - | - | https://cdn.example.com |
| BACKEND_STORAGE_PRIVATE_BUCKET_ENDPOINT | Перевизначення кінцевої точки приватного бакета (необов’язково) | - | - | https://private-bucket.endpoint |
| BACKEND_STORAGE_S3_REGION | Регіон сховища S3; обов’язковий, коли BACKEND_STORAGE_PROVIDER має значення s3 | - | - | us-east-2 |
| BACKEND_STORAGE_S3_ENDPOINT | Кінцева точка сховища S3; обов’язкова, коли BACKEND_STORAGE_PROVIDER має значення s3 | - | - | https://s3.us-east-2.amazonaws.com |
| BACKEND_STORAGE_S3_INTERNAL_ENDPOINT | Внутрішня кінцева точка S3 (необов’язково) | - | - | http://s3.internal |
| BACKEND_STORAGE_S3_FORCE_PATH_STYLE | Використовувати URL-адреси у форматі шляху (endpoint/bucket/key) для звернених до браузера запитів S3. Увімкніть, якщо загальнодоступна кінцева точка не може обслуговувати піддомени бакетів. Не можна поєднувати з BACKEND_STORAGE_PRIVATE_BUCKET_ENDPOINT | false | - | true |
| BACKEND_STORAGE_S3_INTERNAL_FORCE_PATH_STYLE | Перевизначає адресацію у форматі шляху для внутрішніх запитів S3. Якщо значення не задано, успадковує загальнодоступне налаштування, коли обидва клієнти спільно використовують одну кінцеву точку; окрема внутрішня кінцева точка зберігає адресацію на основі віртуального хоста | - | - | true |
| BACKEND_STORAGE_S3_ACCESS_KEY | Ключ доступу до сховища S3; обов’язковий, коли BACKEND_STORAGE_PROVIDER має значення s3 | - | - | your_access_key |
| BACKEND_STORAGE_S3_SECRET_KEY | Секретний ключ сховища S3; обов’язковий, коли BACKEND_STORAGE_PROVIDER має значення s3 | - | - | your_secret_key |
| BACKEND_STORAGE_S3_MAX_SOCKETS | Максимальна кількість сокетів S3 (необов’язково) | 100 | - | 100 |
| BACKEND_STORAGE_MINIO_ENDPOINT | Кінцева точка сховища MinIO | - | - | minio.example.com |
| BACKEND_STORAGE_MINIO_PORT | Порт MinIO | 9000 | - | 443 |
| BACKEND_STORAGE_MINIO_USE_SSL | Чи використовує MinIO SSL | false | - | true |
| BACKEND_STORAGE_MINIO_ACCESS_KEY | Ключ доступу MinIO | - | - | access-key |
| BACKEND_STORAGE_MINIO_SECRET_KEY | Секретний ключ MinIO | - | - | secret-key |
| BACKEND_STORAGE_MINIO_INTERNAL_ENDPOINT | Внутрішня кінцева точка MinIO (необов’язково, без HTTPS) | - | - | minio.internal |
| BACKEND_STORAGE_MINIO_INTERNAL_PORT | Внутрішній порт MinIO (необов’язково) | 9000 | - | 9000 |
| BACKEND_STORAGE_MINIO_REGION | Регіон MinIO (необов’язково) | - | - | us-east-1 |
| BACKEND_STORAGE_UPLOAD_METHOD | Спосіб завантаження | put | - | put |
| STORAGE_PREFIX | Префікс сховища; стандартне значення — PUBLIC_ORIGIN | PUBLIC_ORIGIN | - | http://localhost:3000 |
| Налаштування кешу | ||||
| BACKEND_CACHE_PROVIDER | Постачальник кешу, варіанти: sqlite, memory, redis | sqlite | - | redis |
| BACKEND_CACHE_REDIS_URI | Обов’язковий URI підключення Redis для доставлення обчислюваних завдань; також використовується для кешу, коли BACKEND_CACHE_PROVIDER має значення redis | - | Так | redis://default:teable@127.0.0.1:6379/0 |
| Налаштування кешу продуктивності | ||||
| BACKEND_PERFORMANCE_CACHE | URL-адреса Redis для кешування результатів запитів, яка підвищує ефективність спільної роботи кількох користувачів. Рекомендуємо використовувати окремий від BACKEND_CACHE_REDIS_URI екземпляр Redis | - | - | redis://default:teable@127.0.0.1:6379/0 |
| Налаштування автентифікації | ||||
| SOCIAL_AUTH_PROVIDERS | Список постачальників соціальної автентифікації через кому | - | - | github,google,oidc |
| BACKEND_GITHUB_CLIENT_ID | Ідентифікатор клієнта GitHub OAuth | - | - | github_client_id |
| BACKEND_GITHUB_CLIENT_SECRET | Секрет клієнта GitHub OAuth | - | - | github_client_secret |
| BACKEND_GOOGLE_CLIENT_ID | Ідентифікатор клієнта Google OAuth | - | - | google_client_id |
| BACKEND_GOOGLE_CLIENT_SECRET | Секрет клієнта Google OAuth | - | - | google_client_secret |
| BACKEND_OIDC_CLIENT_ID | Ідентифікатор клієнта OIDC | - | - | google_client_id |
| BACKEND_OIDC_CLIENT_SECRET | Секрет клієнта OIDC | - | - | google_client_secret |
| BACKEND_OIDC_CALLBACK_URL | URL-адреса зворотного виклику OIDC | - | - | https://app.teable.ai/api/auth/oidc/callback |
| Безпека та перевірка | ||||
| TURNSTILE_SITE_KEY | Ключ сайту Cloudflare Turnstile для перевірки автентифікації | - | - | 1x00000000000000000000AA |
| TURNSTILE_SECRET_KEY | Секретний ключ Cloudflare Turnstile для перевірки автентифікації | - | - | 1x0000000000000000000000000000000AA |
| TEABLE_SSRF_PROTECTION_DISABLED | Вимикає захист, який блокує вихідні запити до loopback-адрес, приватних, локальних для каналу та інших зарезервованих мережевих адрес. Установлюйте true лише в надійних самостійно розміщених розгортаннях, яким потрібен доступ до внутрішніх кінцевих точок | false | - | true |
| BACKEND_SIGNUP_VERIFICATION_CODE_RATE_LIMIT_SECONDS | Інтервал обмеження частоти (у секундах) для надсилання листів із кодом підтвердження реєстрації | - | - | 30 |
| BACKEND_TRUST_PROXY | Налаштування довіри до зворотного проксі-сервера, яке використовується для визначення IP-адреси клієнта за проксі-сервером. Впливає на журнали аудиту й пов’язані записи безпеки. Приймає true, false, кількість переходів або список IP/CIDR/попередньо заданих значень. Порожнє значення означає довіру до проксі-серверів приватної мережі | loopback, linklocal, uniquelocal | - | loopback, linklocal, uniquelocal |
| Налаштування електронної пошти (застаріле — використовуйте Панель адміністратора > Налаштування екземпляра > Електронна пошта) | ||||
| BACKEND_MAIL_HOST | Адреса стандартного поштового сервера. Рекомендуємо візуально налаштувати пошту для сповіщень і пошту для автоматизацій у розділі Панель адміністратора > Налаштування екземпляра > Електронна пошта | smtp.teable.ai | - | smtp.gmail.com |
| BACKEND_MAIL_PORT | Порт стандартного поштового сервера | 465 | - | 465 |
| BACKEND_MAIL_SECURE | Чи використовує стандартний поштовий сервіс SSL/TLS | true | - | true |
| BACKEND_MAIL_SENDER | Стандартна адреса відправника | noreply.teable.ai | - | noreply@company.com |
| BACKEND_MAIL_SENDER_NAME | Стандартне ім’я відправника | Teable | - | Teable |
| BACKEND_MAIL_AUTH_USER | Ім’я користувача для автентифікації на стандартному поштовому сервері | - | - | username |
| BACKEND_MAIL_AUTH_PASS | Пароль для автентифікації на стандартному поштовому сервері | - | - | usertoken |
| BACKEND_MAIL_INVITE_USER_NAME_MAX_LENGTH | Максимальна довжина імені запрошувача в темах листів із запрошеннями. Порожнє значення або 0 вимикає скорочення | - | - | 32 |
| BACKEND_MAIL_INVITE_SPACE_NAME_MAX_LENGTH | Максимальна довжина назви Простору або Бази в темах листів із запрошеннями. Порожнє значення або 0 вимикає скорочення | - | - | 32 |
| Налаштування сеансів/JWT | ||||
| BACKEND_SESSION_EXPIRES_IN | Строк дії сеансу | 7d | - | 7d |
| BACKEND_SESSION_COOKIE_SECURE | Чи захищати файл cookie сеансу | false | - | true |
| BACKEND_SESSION_ORIGIN_CHECK_ENABLED | Увімкнути перевірки Origin і Fetch Metadata для небезпечних API-запитів браузера з файлом cookie сеансу. Умикайте лише тоді, коли зворотний проксі-сервер або CDN зберігає ці заголовки | false | - | false |
| BACKEND_JWT_EXPIRES_IN | Строк дії JWT | 20d | - | 20d |
| BACKEND_RESET_PASSWORD_EMAIL_EXPIRES_IN | Строк дії листа для скидання пароля | 30m | - | 30m |
| Обмеження ресурсів | ||||
| MAX_COPY_CELLS | Максимальна кількість комірок для копіювання в одному запиті | - | - | 50000 |
| MAX_READ_ROWS | Максимальна кількість рядків для читання в одному запиті | - | - | 10000 |
| MAX_ATTACHMENT_UPLOAD_SIZE | Максимальний розмір завантаження вкладення (у байтах) | - | - | 2147483648 |
| TASK_MAX_FIELDS_PER_BATCH | Максимальна кількість полів ШІ, що надсилаються моделі в одному пакетному запиті. Значення обмежуються діапазоном від 1 до 20 | 5 | - | 5 |
| TASK_MAX_CONCURRENCY | Максимальна кількість очікуваних запусків завдань полів ШІ, які передаються протягом одного циклу планування. Значення обмежуються діапазоном від 1 до 20 | 5 | - | 5 |
| TABLE_LIMIT_FIELD_OPTIONS_MAX_BYTES | Максимальний розмір серіалізованих параметрів поля в байтах | 262144 | - | 262144 |
| TABLE_LIMIT_SELECT_CHOICES_MAX | Максимальна кількість варіантів вибору в полі вибору | 1000 | - | 1000 |
| TABLE_LIMIT_SELECT_CHOICE_NAME_MAX_LENGTH | Максимальна довжина назви варіанта вибору | 1000 | - | 1000 |
| TABLE_LIMIT_SELECT_DEFAULT_VALUES_MAX | Максимальна кількість стандартних значень вибору | 100 | - | 100 |
| TABLE_LIMIT_CELL_VALUE_MAX_BYTES | Максимальний розмір значення комірки в байтах | 262144 | - | 262144 |
| TABLE_LIMIT_RECORD_FIELDS_MAX_BYTES | Максимальний розмір серіалізованих полів запису в байтах | 1048576 | - | 1048576 |
| TABLE_LIMIT_RECORDS_PER_MUTATION_MAX | Максимальна кількість записів на одну мутацію | 20000 | - | 20000 |
| TABLE_LIMIT_COMPUTED_CELL_VALUE_MAX_BYTES | Максимальний розмір обчисленого значення комірки в байтах | 262144 | - | 262144 |
| TABLE_LIMIT_FORMULA_MAX_LENGTH | Максимальна довжина формули | 8192 | - | 8192 |
| TABLE_LIMIT_TABLES_PER_BASE_MAX | Максимальна кількість таблиць у Базі | 1000 | - | 1000 |
| TABLE_LIMIT_FIELDS_PER_TABLE_MAX | Максимальна кількість полів у таблиці | 500 | - | 500 |
| TABLE_LIMIT_VIEWS_PER_TABLE_MAX | Максимальна кількість переглядів у таблиці | 100 | - | 100 |
| TABLE_LIMIT_CREATE_TABLE_FIELDS_MAX | Максимальна кількість полів, дозволена під час створення таблиці | 1000 | - | 1000 |
| TABLE_LIMIT_CREATE_TABLE_VIEWS_MAX | Максимальна кількість переглядів, дозволена під час створення таблиці | 20 | - | 20 |
| TABLE_LIMIT_CREATE_TABLE_RECORDS_MAX | Максимальна кількість записів, дозволена під час створення таблиці | 20000 | - | 20000 |
| TABLE_LIMIT_RECORDS_PER_TABLE_MAX | Максимальна кількість рядків у таблиці. Порожнє значення означає відсутність обмеження рядків на рівні екземпляра | - | - | 1000000 |
| TABLE_LIMIT_VIEW_FILTER_ITEMS_MAX | Максимальна кількість елементів фільтра в перегляді | 100 | - | 100 |
| TABLE_LIMIT_VIEW_FILTER_DEPTH_MAX | Максимальна глибина вкладеності фільтрів у перегляді | 5 | - | 5 |
| TABLE_LIMIT_VIEW_SORT_ITEMS_MAX | Максимальна кількість елементів сортування в перегляді | 20 | - | 20 |
| TABLE_LIMIT_VIEW_GROUP_ITEMS_MAX | Максимальна кількість елементів групування в перегляді | 3 | - | 3 |
| TABLE_LIMIT_VIEW_OPTIONS_MAX_BYTES | Максимальний розмір серіалізованих параметрів перегляду в байтах | 262144 | - | 262144 |
| TABLE_LIMIT_NAME_MAX_LENGTH | Максимальна довжина відображуваної назви для підтримуваних об’єктів таблиці | 100 | - | 100 |
| TABLE_LIMIT_DESCRIPTION_MAX_LENGTH | Максимальна довжина опису для підтримуваних об’єктів таблиці | 2000 | - | 2000 |
| AUTOMATION_MIN_SCHEDULED_MINUTES_INTERVAL | Найкоротший інтервал (у хвилинах), який плановий тригер може використовувати з частотою «Хвилини». Значення понад 60 вимикає щохвилинні розклади | 10 | - | 15 |
| AUTOMATION_MIN_EMAIL_POLL_INTERVAL_MINUTES | Найкоротший інтервал опитування поштової скриньки (у хвилинах), який може використовувати поштовий тригер | 10 | - | 15 |
| ШІ та App Builder (підключення середовища виконання) | ||||
| SANDBOX_PROVIDER | Постачальник пісочниці для сеансів ШІ; opensandbox підключає самостійно розміщене середовище виконання | - | - | opensandbox |
| TEABLE_INFRA_API_URL | Вхідна URL-адреса середовища виконання — має бути загальнодоступною точкою входу (вона спрямовує /v1 до рушія пісочниць), а не адресою внутрішнього сервісу | - | - | https://infra.teable.example.com |
| TEABLE_INFRA_API_KEY | Ключ API, спільний із середовищем виконання | - | - | your-infra-api-key |
| TEABLE_INFRA_BUCKET | Бакет для рівня даних робочого простору ШІ | teable-agent | - | teable-agent |
| SANDBOX_OPENSANDBOX_IMAGE | Префікс без тегу образу агента пісочниці — Teable додає власний тег випуску, тому версія агента завжди відповідає версії застосунку. Розгортання в Китаї використовують префікс дзеркала Aliyun | - | - | ghcr.io/teableio/teable-sandbox-agent |
| SANDBOX_OPENSANDBOX_RUNTIME | Тип середовища виконання рушія пісочниць: kubernetes або docker. У розгортаннях Docker має бути docker | kubernetes | - | docker |
| SANDBOX_OPENSANDBOX_USE_SERVER_PROXY | Спрямовувати кінцеві точки пісочниці через проксі-сервер рушія на основі шляхів, а не через окремі піддомени портів (використовується в локальному режимі Docker) | false | - | true |
| APP_DEPLOY_PROVIDER | Серверна служба розгортання App Builder; повнофункціональне самостійне розміщення використовує docker-runtime | vercel | - | docker-runtime |
| SANDBOX_JWT_SECRET | Секрет для підписування сеансів пісочниці. Згенеруйте випадкове значення для кожного хоста й використовуйте те саме значення в сервісі пісочниці | - | Так | випадковий рядок |
| SANDBOX_CPU | Кількість віртуальних процесорів на пісочницю (налаштування панелі адміністратора мають вищий пріоритет) | 2 | - | 2 |
| SANDBOX_MEMORY | Пам’ять (ГіБ) на пісочницю (налаштування панелі адміністратора мають вищий пріоритет) | 4 | - | 4 |
| SANDBOX_DISK | Тимчасовий диск (ГіБ) на пісочницю (налаштування панелі адміністратора мають вищий пріоритет) | 15 | - | 15 |
| Перемикачі функцій | ||||
| RECORD_HISTORY_DISABLED | Чи вимикати історію записів; стандартне значення — false | false | - | true |
| BACKEND_STORAGE_COLD_ARCHIVE_DISABLED | Чи припиняти планове архівування історичних даних. Уже архівовані дані залишаються доступними для читання | false | - | true |
| PASSWORD_LOGIN_DISABLED | Чи вимикати вхід за паролем (OAuth і OIDC залишаються доступними) | false | - | true |
| Аналітика та моніторинг | ||||
| MICROSOFT_CLARITY_ID | Ідентифікатор метрик Microsoft Clarity для ввімкнення аналітики Microsoft Clarity | - | - | your-metrics-id |
| OTEL_EXPORTER_OTLP_ENDPOINT | Кінцева точка OpenTelemetry OTLP | - | - | http://jaeger:4317 |
| TELEMETRY_REPORT_DISABLED | Вимикає телеметричні звіти самостійно розміщених екземплярів, зокрема звіти про дотримання ліцензійних умов із підключених екземплярів | false | - | true |
| Налаштування бази даних | ||||
| PRISMA_DATABASE_URL | URL-адреса підключення до бази даних; налаштування обов’язкове | - | Так | postgresql://teable:teable@127.0.0.1:5432/teable |
| PUBLIC_DATABASE_PROXY | Зовнішня доступна адреса бази даних (хост:порт), яка використовується в облікових даних, створених на панелі «Підключення до бази даних» Бази; задайте її, щоб увімкнути зовнішній доступ SQL лише для читання | - | - | db.example.com:42345 |
| PRISMA_TRANSACTION_TIMEOUT | Максимальний час (мс), протягом якого може виконуватися транзакція до завершення за тайм-аутом. Збільште для тривалих транзакцій (наприклад, масових оновлень із багатьма зовнішніми ключами) | 5000 | - | 60000 |
| PRISMA_TRANSACTION_MAX_WAIT | Максимальний час очікування (мс) на отримання транзакції з пулу | 2000 | - | 5000 |
| BIG_TRANSACTION_TIMEOUT | Тайм-аут (мс) для великих внутрішніх транзакцій, наприклад експорту великих Баз | 600000 | - | 1200000 |
Секрети та ротація
Кожне позначене вище як секрет значення має походити з вашої власної конфігурації. Сервер перевіряє їх один раз під час запуску, але відсутній секрет ніколи не блокує запуск: Teable використовує стандартне значення, вбудоване в попередні версії, записує до журналу відсутні змінні й запускається. Ці вбудовані значення загальнодоступні, тому будь-хто може підробити токени або розшифрувати захищені ними дані. Це прийнятно для швидкого локального ознайомлення, але небезпечно в усіх інших випадках. Оновлення наявного розгортання. Екземпляр, який працював без цих змінних, неявно використовував старі вбудовані значення й досі використовує їх. Попередження під час запуску виводить точний блок, який потрібно додати, щоб поточні сеанси, токени й зашифровані дані продовжили працювати. Скопіюйте його без змін, перезапустіть систему, а потім заплануйте ротацію. Якщо ваш формат конфігурації цього потребує, не забудьте екранувати$ у значеннях.
Нове розгортання. Натомість згенеруйте нові значення:
openssl rand -base64 32
openssl rand -hex 8 для 16-символьних полів *_ENCRYPTION_KEY і
*_ENCRYPTION_IV.
Журнал запуску також попереджає, якщо для секрету явно задано загальновідоме
колишнє стандартне значення. Екземпляр продовжує працювати, щоб ваші дані залишалися доступними, але
будь-хто може підробити токени або розшифрувати дані, захищені цим значенням. Виконайте його ротацію.

