Správa konfigurace
Twenty nabízí dvě konfigurační režimy pro různé potřeby nasazení:
Přístup k administračnímu panelu: Pouze uživatelé s administrátorskými právy (canAccessFullAdminPanel: true) mohou přistupovat k rozhraní pro konfiguraci.
1. Konfigurace Admin panelu (výchozí)
IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # výchozí
Většina konfigurace probíhá prostřednictvím uživatelského rozhraní po instalaci:
- Přistupte ke své instanci Twenty (obvykle
http://localhost:3000)
- Jděte na Nastavení / Admin panel / Konfigurační proměnné
- Nakonfigurujte integrace, e-mail, úložiště a další
- Změny se projeví okamžitě (u nasazení s více kontejnery do 15 sekund)
Nasazení s více kontejnery: Při použití databázové konfigurace (IS_CONFIG_VARIABLES_IN_DB_ENABLED=true) čtou oba serverové i pracovní kontejnery ze stejné databáze. Změny v administračním panelu se dotýkají obou automaticky, což eliminuje potřebu duplicitních proměnných prostředí mezi kontejnery (s výjimkou infrastrukturních proměnných).
Co můžete konfigurovat přes administrační panel:
- Autentizace - Google/Microsoft OAuth, nastavení hesla
- E-mail - nastavení SMTP, šablony, ověření
- Úložiště - konfigurace S3, místní cesty k úložišti
- Integrace - Gmail, Google Kalendář, služby Microsoft
- Pracovní postup & Omezení rychlosti - limity provádění, škrcení API
- A ještě mnohem více…
Každá proměnná je dokumentována s popisy ve vašem administračním panelu v sekci Nastavení → Admin panel → Konfigurační proměnné.
Některá nastavení infrastruktury, jako připojení k databázi (PG_DATABASE_URL), URL serveru (SERVER_URL) a tajemství aplikace (APP_SECRET), lze konfigurovat pouze prostřednictvím souboru .env.Kompletní technická referenční příručka →
2. Konfigurace pouze přes prostředí
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false
Všechna konfigurace je spravována prostřednictvím souborů .env:
- Nastavte
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false ve vašem souboru .env
- Přidejte všechny konfigurační proměnné do souboru
.env
- Restartujte kontejnery, aby se změny projevily
- Administrační panel zobrazí aktuální hodnoty, ale nemůže je upravovat
Režim více pracovních prostorů
Ve výchozím nastavení běží Twenty v režimu jednoho pracovního prostoru — ideální pro většinu samostatně hostovaných nasazení, kde potřebujete jednu instanci CRM pro svou organizaci.
Režim jednoho pracovního prostoru (výchozí)
IS_MULTIWORKSPACE_ENABLED=false # default
- Jeden pracovní prostor na instanci Twenty
- První uživatel se automaticky stává administrátorem s plnými oprávněními (
canImpersonate a canAccessFullAdminPanel)
- Po vytvoření prvního pracovního prostoru jsou nové registrace zakázány.
- Jednoduchá struktura URL:
https://your-domain.com
Povolení režimu více pracovních prostorů
IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=app # default value
Povolte režim více pracovních prostorů pro nasazení typu SaaS, kde více nezávislých týmů potřebuje své vlastní pracovní prostory na téže instanci Twenty.
Klíčové rozdíly oproti režimu jednoho pracovního prostoru:
- Na téže instanci lze vytvářet více pracovních prostorů
- Každý pracovní prostor získá vlastní subdoménu (např.
sales.your-domain.com, marketing.your-domain.com)
- Uživatelé se registrují a přihlašují na
{DEFAULT_SUBDOMAIN}.your-domain.com (např. app.your-domain.com)
- Žádná automatická administrátorská oprávnění — první uživatel v každém pracovním prostoru je běžný uživatel
- Nastavení specifická pro pracovní prostor, jako je subdoména a vlastní doména, se zpřístupní v nastavení pracovního prostoru
Nastavení pouze na úrovni prostředí: IS_MULTIWORKSPACE_ENABLED lze konfigurovat pouze prostřednictvím souboru .env a vyžaduje restart. Nelze jej změnit prostřednictvím administračního panelu.
Konfigurace DNS pro více pracovních prostorů
Při použití režimu více pracovních prostorů nakonfigurujte své DNS pomocí zástupného (wildcard) záznamu, aby bylo možné dynamicky vytvářet subdomény:
*.your-domain.com -> your-server-ip
Tím se umožní automatické směrování subdomén pro nové pracovní prostory bez ruční konfigurace DNS.
Omezení vytváření pracovních prostorů
V režimu více pracovních prostorů možná budete chtít omezit, kdo může vytvářet nové pracovní prostory:
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
Pokud je povoleno, pouze uživatelé s canAccessFullAdminPanel mohou vytvářet další pracovní prostory. Uživatelé si stále mohou při úvodní registraci vytvořit svůj první pracovní prostor.
Integrace Gmail & Google Kalendář
Vytvořte projekt Google Cloud
- Přejděte na Google Cloud Console
- Vytvořte nový projekt nebo vyberte existující
- Povolte tyto API:
Konfigurace OAuth
- Přejděte na Pověření
- Vytvořte OAuth 2.0 Client ID
- Přidejte tyto URI přesměrování:
https://{your-domain}/auth/google/redirect (pro SSO)
https://{your-domain}/auth/google-apis/get-access-token (pro integrace)
Konfigurace v Twenty
- Jděte na Nastavení → Admin panel → Konfigurační proměnné
- Najděte sekci Google Auth
- Nastavte tyto proměnné:
MESSAGING_PROVIDER_GMAIL_ENABLED=true
CALENDAR_PROVIDER_GOOGLE_ENABLED=true
AUTH_GOOGLE_CLIENT_ID={client-id}
AUTH_GOOGLE_CLIENT_SECRET={client-secret}
AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirect
AUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
Režim pouze s prostředím: Pokud nastavíte IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, přidejte tyto proměnné do souboru .env
Požadované rozsahy (automaticky konfigurované):
Zobrazit relevantní zdrojový kód
https://www.googleapis.com/auth/calendar.events
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/profile.emails.read
Pokud je vaše aplikace v testovacím režimu
Pokud je vaše aplikace v testovacím režimu, budete muset přidat testovací uživatele do vašeho projektu.
V části Obrazovka souhlasu s OAuth přidejte své testovací uživatele do sekce “Testovací uživatelé”.
Integrace Microsoft 365
Uživatelé musí mít Licence Microsoft 365, aby mohli používat API Kalendáře a Zpráv. Bez něj nebudou moci synchronizovat svůj účet na Twenty.
Vytvořte projekt v Microsoft Azure
Budete muset vytvořit projekt v Microsoft Azure a získat pověření.
Povoleňte API
Na konzoli Microsoft Azure povolte následující API v “Povoleních”:
- Microsoft Graph: Mail.ReadWrite
- Microsoft Graph: Mail.Send
- Microsoft Graph: Calendars.Read
- Microsoft Graph: User.Read
- Microsoft Graph: openid
- Microsoft Graph: email
- Microsoft Graph: profile
- Microsoft Graph: offline_access
Poznámka: “Mail.ReadWrite” a “Mail.Send” jsou povinné pouze v případě, že chcete odesílat e-maily pomocí našich pracovních postupů. Můžete použít “Mail.Read” místo toho, pokud chcete pouze přijímat e-maily.
Autorizované URI přesměrování
Musíte přidat následující URI přesměrování do vašeho projektu:
https://{your-domain}/auth/microsoft/redirect, pokud chcete použít Microsoft SSO
https://{your-domain}/auth/microsoft-apis/get-access-token
Konfigurace v Twenty
- Jděte na Nastavení → Admin panel → Konfigurační proměnné
- Najděte sekci Microsoft Auth
- Nastavte tyto proměnné:
MESSAGING_PROVIDER_MICROSOFT_ENABLED=true
CALENDAR_PROVIDER_MICROSOFT_ENABLED=true
AUTH_MICROSOFT_ENABLED=true
AUTH_MICROSOFT_CLIENT_ID={client-id}
AUTH_MICROSOFT_CLIENT_SECRET={client-secret}
AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirect
AUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
Režim pouze s prostředím: Pokud nastavíte IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, přidejte tyto proměnné do souboru .env
Konfigurace rozsahů
Zobrazit relevantní zdrojový kód
- ‘openid’
- ‘email’
- ‘profil’
- ‘offline_access’
- ‘Mail.ReadWrite’
- ‘Mail.Send’
- ‘Calendars.Read’
Pokud je vaše aplikace v testovacím režimu
Pokud je vaše aplikace v testovacím režimu, budete muset přidat testovací uživatele do vašeho projektu.
Přidejte své testovací uživatele do sekce “Uživatelé a skupiny”.
Pracovní úkoly pro Kalendář & Zprávy
Po konfiguraci integrací Gmail, Google Kalendář nebo Microsoft 365 je třeba spustit úlohy na synchronizaci dat na pozadí.
Zaregistrujte následující opakující se úlohy ve vašem pracovním kontejneru:
# z vašeho pracovního kontejneru
yarn command:prod cron:messaging:messages-import
yarn command:prod cron:messaging:message-list-fetch
yarn command:prod cron:calendar:calendar-event-list-fetch
yarn command:prod cron:calendar:calendar-events-import
yarn command:prod cron:messaging:ongoing-stale
yarn command:prod cron:calendar:ongoing-stale
yarn command:prod cron:workflow:automated-cron-trigger
Konfigurace Emailu
- Jděte na Nastavení → Admin panel → Konfigurační proměnné
- Najděte sekci E-mail
- Nakonfigurujte své nastavení SMTP:
Režim pouze s prostředím: Pokud nastavíte IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, přidejte tyto proměnné do souboru .env
Úložiště S3
Ve výchozím nastavení Twenty ukládá nahrané soubory do místního souborového systému. Pro produkční nasazení použijte S3 nebo službu kompatibilní se S3 (MinIO, DigitalOcean Spaces atd.). aby byly soubory zachovány při restartech kontejnerů a bylo možné škálovat napříč více instancemi serveru.
Nastavte STORAGE_TYPE=S_3 a nakonfigurujte proměnné STORAGE_S3_* prostřednictvím administračního panelu nebo .env. Viz referenci config-variables.ts pro úplný seznam proměnných S3.
Při používání S3 s funkcemi závislými na CORS (např. stahování souborů v prohlížeči) se ujistěte, že váš bucket povoluje origin vašeho frontendu Twenty ve své konfiguraci CORS.
Logické funkce a interpret kódu
Twenty podporuje logické funkce pro pracovní postupy a interpret kódu pro analýzu dat s využitím AI. Obě spouštějí kód poskytnutý uživatelem a z důvodu zabezpečení vyžadují explicitní konfiguraci.
Výchozí nastavení zabezpečení
V produkci (NODE_ENV=production): Jak logické funkce, tak interpret kódu mají ve výchozím nastavení stav Zakázáno. Pokud tyto funkce potřebujete, musíte je explicitně povolit pomocí LOGIC_FUNCTION_TYPE a CODE_INTERPRETER_TYPE.
V prostředí vývoje (NODE_ENV=development): Obě mají ve výchozím nastavení LOCAL pro pohodlí při lokálním spuštění.
Upozornění na zabezpečení: Místní ovladač (LOGIC_FUNCTION_TYPE=LOCAL nebo CODE_INTERPRETER_TYPE=LOCAL) spouští kód přímo na hostiteli v procesu Node.js bez sandboxu. Měl by být používán pouze pro důvěryhodný kód při vývoji. Pro produkční nasazení, která pracují s nedůvěryhodným kódem, použijte LOGIC_FUNCTION_TYPE=LAMBDA nebo CODE_INTERPRETER_TYPE=E2B (se sandboxem), případně je ponechte vypnuté.
Logické funkce - dostupné ovladače
| Ovladač | Proměnná prostředí | Případ použití | Úroveň zabezpečení |
|---|
| Neaktivní | LOGIC_FUNCTION_TYPE=DISABLED | Úplně zakázat logické funkce | N/A |
| Lokální | LOGIC_FUNCTION_TYPE=LOCAL | Vývojová a důvěryhodná prostředí | Nízká (bez sandboxu) |
| Lambda | LOGIC_FUNCTION_TYPE=LAMBDA | Produkční prostředí s nedůvěryhodným kódem | Vysoká (izolace na úrovni hardwaru) |
Logické funkce - doporučená konfigurace
Pro vývoj:
LOGIC_FUNCTION_TYPE=LOCAL # default when NODE_ENV=development
Pro produkci (AWS):
LOGIC_FUNCTION_TYPE=LAMBDA
LOGIC_FUNCTION_LAMBDA_REGION=us-east-1
LOGIC_FUNCTION_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID=your-access-key
LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
Pro zakázání logických funkcí:
LOGIC_FUNCTION_TYPE=DISABLED # default when NODE_ENV=production
Interpret kódu - dostupné ovladače
| Ovladač | Proměnná prostředí | Případ použití | Úroveň zabezpečení |
|---|
| Neaktivní | CODE_INTERPRETER_TYPE=DISABLED | Zakázat spouštění kódu AI | N/A |
| Lokální | CODE_INTERPRETER_TYPE=LOCAL | Pouze pro vývoj | Nízká (bez sandboxu) |
| E2B | CODE_INTERPRETER_TYPE=E_2_B | Produkční prostředí se sandboxovaným spouštěním | Vysoká (izolovaný sandbox) |
Při použití LOGIC_FUNCTION_TYPE=DISABLED nebo CODE_INTERPRETER_TYPE=DISABLED vrátí každý pokus o spuštění chybu. To je užitečné, pokud chcete provozovat Twenty bez těchto schopností.