🧪 killBottleneck je ve veřejné betě — cloud i self-host.🧪 killBottleneck je v betě.Beta na GitHubu →
Skip to content

Konfigurace

Konfigurace leží v .env vedle docker-compose.yml, s jednou výjimkou: SMTP se nastavuje v administraci PocketBase, ne v souboru. Úplný seznam proměnných i s výchozími hodnotami je v Proměnných prostředí; tahle stránka řeší rozhodnutí, ne tabulku.

Po každé změně:

bash
docker compose up -d --build

AI

AI je ve výchozím stavu vypnutá a aplikace je tak plně použitelná. Zapíná se přes KB_AI_PROVIDER:

PoskytovatelCo to znamená
noneŽádná AI. Ze serveru nic neodejde. Tohle je výchozí stav.
ollamaVáš vlastní lokální model. Nainstalujte Ollamu, ollama pull gpt-oss:20b, pak nastavte KB_AI_URL=http://IP:11434 a KB_AI_MODEL=gpt-oss:20b. Všechno zůstane ve vaší síti. Základní prompty; přepis hlasu není součástí.
apiVzdálená AI služba kompatibilní s killBottleneck API — adresa a token od vašeho poskytovatele. Bez vlastního GPU a údržby.
customVáš vlastní endpoint dodržující stejný API kontrakt.
bash
KB_AI_PROVIDER=ollama
KB_AI_URL=http://192.168.1.10:11434
KB_AI_MODEL=gpt-oss:20b

Jaký model zvolit

gpt-oss:20b je ověřený — na něm se killBottleneck testuje a odpovědi z něj dávají smysl i česky. Počítejte s tím, co potřebuje:

Velikost modelu~14 GB
Rozumný běhgrafická karta s 16 GB paměti a víc
Doba odpovědijednotky až desítky sekund (naměřeno ~23 s pro návrh otázek)

Doporučujeme jen tenhle jeden, protože jen na něm to máme odzkoušené. Jiný model si zkusit můžete a Ollama jich nabízí spoustu — počítejte ale s tím, že to je na vaše riziko. Nejde o „chytrost" modelu: killBottleneck po AI chce strojově čitelnou odpověď (JSON) a menší nebo takzvaně uvažující modely ji občas vrátí useknutou — pak funkce tiše nic neudělá.

Ze změřených: gemma3:12b (~8 GB) obstála a je použitelná na kartě s 12 GB, jen je pomalejší. Jiný model téže velikosti u složitějšího zadání vrátil rozbitou odpověď — proto to „na vlastní riziko" myslíme vážně. Nový model si nejlépe ověříte tak, že zkusíte Navrhnout plán z cíle: buď se objeví strom, nebo se nestane nic.

Bez grafické karty model poběží z procesoru a odpovědi budou trvat minuty; k práci to nestačí.

killBottleneck mluví s Ollamou přímo (/api/chat) — nic mezi tím není a ze sítě nic neodchází.

Kam data odcházejí

S jiným poskytovatelem než none se data mapy posílají na endpoint, který jste nastavili. U ollama mířící na váš stroj je to pořád vaše síť. U api nebo custom je to to, kam jste zamířili. Žádná třetí skrytá varianta neexistuje.

Zvláštní model jen na ranní souhrny

Jednořádkové povzbuzení v Mém dni je krátký formátovaný text — bohatě stačí menší a rychlejší model. KB_SUMMARY_PROVIDER / _URL / _MODEL / _TOKEN přebijí obecné nastavení AI jen pro tuhle jednu úlohu. Když je necháte prázdné, použije se obecná konfigurace.

Souhrn se generuje ráno v KB_SUMMARY_HOUR (výchozí 6) jen účtům, které se přihlásily v posledních KB_SUMMARY_ACTIVE_DAYS dnech (výchozí 14, 0 = všem); ostatním se vygeneruje ve chvíli, kdy si aplikaci otevřou.

Co AI dělat nesmí

AI nikdy nevypisuje seznamy vašich úkolů — ty se počítají z dat a jsou proklikávací. Názvy úkolů se před vstupem do promptu čistí. Vypnutí AI vás stojí přesně jednu větu v Mém dni; samotný panel funguje dál.

Registrace a registrační klíč

První zaregistrovaný účet se stane správcem. Dál se lidé buď registrují sami, nebo je správce pozve ze Správy.

Když nastavíte KB_SETUP_CODE, vyžaduje ho každá registrace. Klíč rozdáte lidem, které chcete pustit dovnitř. Pozvánka od správce klíč nepotřebuje.

Dostupné z internetu?

KB_SETUP_CODE nastavte dřív, než instanci vystavíte ven. Prázdná hodnota znamená otevřenou registraci.

Přihlášení přes Google

Volitelné — uživatelé se pak přihlašují Googlem místo e-mailem a heslem.

  1. V Google Cloud Console: APIs & ServicesCredentialsCreate credentialsOAuth client IDWeb application.
  2. Do Authorized redirect URIs přidejte: https://VASE-DOMENA/api/oauth2-redirect
  3. Hodnoty vložte do .env:
    bash
    KB_GOOGLE_CLIENT_ID=…apps.googleusercontent.com
    KB_GOOGLE_CLIENT_SECRET=
  4. docker compose up -d --build — tlačítko se objeví samo.

Prázdné proměnné = přihlášení přes Google je vypnuté a tlačítko se nezobrazuje.

E-mail (SMTP)

SMTP se nastavuje v administraci PocketBase, ne v .env:

http://IP-SERVERU:8090/_/SettingsMail settings

Účet superuživatele vznikne při prvním startu; odkaz je v docker compose logs.

Co se změní, když SMTP nenastavíte

E-maily jsou ve výchozím stavu vypnuté a instance je tak plně použitelná. Rozdíl je jen tady:

Se SMTPBez SMTP
Pozvánka nového členaodejde e-mailem s odkazemsprávci se ukáže dočasné heslo k předání
„Zapomněli jste heslo?"samoobslužné, odkaz přijde e-mailemnenabízí se — heslo obnoví správce (viz níž)
Upozornění a denní souhrnchodí podle předvoleb každého člověkajen zvoneček v aplikaci

Odkaz na obnovu hesla se bez SMTP schválně neukazuje: server by potvrdil odeslání, ale žádná zpráva by nedorazila a člověk by čekal na mail, který neexistuje.

Zapomenuté heslo bez SMTP

Členovi týmu heslo obnoví správce: Správa organizace → u člověka ikona klíče → potvrdit. Objeví se nové dočasné heslo k předání; dosavadní heslo hned přestane platit a dotyčný se odhlásí ze všech zařízení. Že mu heslo někdo změnil, se dozví ve zvonečku.

Správci samotnému takhle heslo nikdo neobnoví — nad ním nikdo není (a aplikace mu proto ani nenabízí obnovu vlastního hesla). Tady se cesty rozcházejí:

  • Hostovaná verze (killbottleneck.com): pošta funguje vždy, takže si správce vyžádá odkaz běžným „Zapomněli jste heslo?“ na přihlašovací stránce. Nic dalšího řešit netřeba.
  • Vlastní server bez SMTP: cesta vede přes administraci PocketBase, ke které máte jako provozovatel přístup:
  1. http://IP-SERVERU:8090/_/ → přihlásit se superuživatelem
  2. kolekce users → najít svůj účet → Change password

Nemáte superuživatele? Vytvořte ho na serveru (jméno služby je z docker-compose.yml):

bash
docker compose exec killbottleneck /app/pocketbase superuser upsert vas@email.cz 'VaseSilneHeslo'

Na co si dát pozor

Konzole na :8090/_/ jede po nešifrovaném HTTP — otevírejte ji jen z místní sítě nebo přes SSH tunel, ne přes internet. Heslo zadané na příkazové řádce navíc zůstane v historii shellu a je chvíli vidět ostatním uživatelům serveru; po použití ho změňte v konzoli a řádek z historie smažte.

Doporučení

Založte si druhý účet s rolí správce a heslo k němu uložte do správce hesel. Obnova přes PocketBase funguje, ale je to práce navíc uprostřed dne, kdy se nikdo nemůže přihlásit.

Notifikační e-maily jsou ve výchozím stavu vypnuté a řídí se předvolbami každého uživatele. Pokud vašim lidem e-maily chodily už před aktualizací a chcete to zachovat, nastavte KB_NOTIFY_EMAIL_DEFAULT=1.

Časové pásmo a opakující se šablony

TZ platí pro celou instanci, ne pro jednotlivé uživatele. Určuje, v jakém pásmu se počítá „každé pondělí“ a „v pět ráno“. Tým rozprostřený přes pásma dostane pásmo serveru.

Pokud byl server v hodinu KB_AUTO_HOUR vypnutý, vytvoří se opakující se projekty v nejbližší pozdější hodinu téhož dne — nepřeskočí se potichu.

Limity příloh

KB_FILES_MB omezuje nahrané soubory za celou instanci:

  • prázdné — bez limitu; výchozí stav pro self-hosting, je to váš disk
  • číslo — strop v MB (5000 = 5 GB)
  • 0 — nahrávání vypnuté; přílohy jde pořád přidávat jako odkazy, které nezabírají místo a vždycky míří na aktuální verzi souboru

Proč je 0 výchozí u naší hostované verze

Není to úspora místa, ale záměr: cizí soubory u sebe neukládáme. Nedostanou se do našich záloh, nevzniká kolem nich „zpracováváme dokumenty zákazníka" ve smlouvě a zůstávají tam, kde už jsou. U sebe na serveru je to samozřejmě váš disk a vaše rozhodnutí.

Automatizace

Týká se vás, jen když cíle poháníte automatizací. KB_PUBLIC_URL je adresa, na kterou se má agent ohlásit zpět — proč prázdná hodnota může vést k tomu, že vzdálený agent volá sám sebe, a proč je KB_ALLOW_PRIVATE_WEBHOOKS vypnuté, je v Proměnných prostředí → Automatizace.

Režim instance

KB_HOSTED nechte na vlastním serveru prázdné. Existuje pro instance běžící u poskytovatele vedle jiných zákazníků, kde správce instance nesmí zamířit AI službu do privátní sítě a oťukávat sousedy.

fair-code — self-hosting a interní použití zdarma, přeprodej jako hostovaná služba ne.