draften můžete provozovat na vlastním serveru. Pošta, koncepty i klíče pak zůstávají u vás; ven jde jen to, co pošlete poskytovateli jazykového modelu (nebo nic, když použijete lokální model).
Tahle stránka je přehled. Podrobný a vždy aktuální postup je v souboru README.md v repozitáři draftenu — řiďte se jím; tady je jen to, co je dobré vědět předem.
Z čeho se instalace skládá
Všechno běží v Dockeru přes docker compose:
| Služba | Co dělá |
|---|---|
db | databáze MariaDB — drží všechno: nastavení, pokyny, zprávy, koncepty, šifrovaná tajemství |
worker | čte schránky, volá modely, píše koncepty, učí se, spouští kroky průvodce. Může jich běžet víc |
web | webové rozhraní a API (Symfony na FrankenPHP) |
cloudflared | volitelně: zveřejnění rozhraní přes Cloudflare Tunnel |
Rozhraní a worker spolu přímo nemluví — oba pracují se stejnou databází; co potřebuje poštu nebo model, zařadí rozhraní do fronty úloh pro workera.
Co budete potřebovat
- server s Dockerem (Docker Compose v2),
- Node.js ani PHP na serveru nejsou potřeba — vše je v obrazech,
- přístup ke schránkám: registraci aplikace v Microsoft Entra, servisní účet Google Workspace nebo údaje k IMAP,
- API klíč k modelu (Anthropic, OpenAI) nebo vlastní OpenAI-kompatibilní server,
- adresu, na které bude rozhraní dostupné, a u ní HTTPS.
Na Windows s Docker Desktopem ho mějte v automatickém spuštění a vypněte Resource Saver.
Nastavení v .env
Soubor .env (vzor je .env.example) drží jen infrastrukturu a tajemství. Všechno o asistentech je v databázi a nastavuje se v rozhraní.
| Proměnná | K čemu |
|---|---|
DB_ROOT_PASSWORD, DB_PASSWORD | hesla databáze |
MASTER_KEY | klíč, kterým se šifrují tajemství v databázi (API klíče, přístupy ke schránkám, klienti). Vygenerujte openssl rand -hex 32 a uložte si kopii mimo server — bez něj je záloha databáze nečitelná |
WEB_APP_SECRET | náhodný řetězec pro podepisování relací |
WEB_PUBLIC_URL | adresa, na které uživatelé rozhraní otevírají; z ní se skládají redirect URI |
CLOUDFLARE_TUNNEL_TOKEN | jen s Cloudflare Tunnelem |
INTERVAL_SECONDS, WORKER_CONCURRENCY | výchozí interval kontrol a počet souběžných kontrol (jdou měnit i v rozhraní) |
WORKER_REPLICAS | kolik procesů worker běží na tomto stroji (výchozí 1), viz Provoz a výkon |
První spuštění
docker compose up -d --build— worker při startu sám provede migrace databáze a založí úvodní data.- První přihlášení provozovatele: dokud nemá heslo ani vazbu na Microsoft či Google, najdete v logu workera jednorázový odkaz (
docker compose logs worker | grep set-password). Platí 7 dní a při každém startu se obnoví. - Na stránce Instalace nastavte výchozí API klíče a výchozí odesílání pošty (pro pozvánky).
- Na stránce Organizace založte organizaci nebo pošlete pozvánku k založení — viz Správa instalace.
Zveřejnění
Nic na serveru nemusí poslouchat na internetu: Cloudflare Tunnel (docker compose --profile tunnel up -d) vede veřejnou adresu na službu http://web:80. Před adresu se hodí i Cloudflare Access jako druhá brána. WEB_PUBLIC_URL nastavte na veřejnou adresu a přidejte ji jako redirect URI u klientů Microsoft a Google.
Dál
- Správa instalace — organizace, výchozí klíče a odesílatel,
- Provoz a výkon — kolik workerů a jak to poznat,
- Zálohy a obnova,
- Aktualizace draftenu,
- Řešení potíží.