🔑AI vývoj8 min čteníAktualizováno: 9. 11. 2026

Soubor .env a API klíče v aplikaci postavené s AI

Soubor .env obsahuje API klíče mimo kód aplikace. Ukážeme si, co do něj patří a které klíče lze použít z prohlížeče.

👨‍💻
Roman
AboutTheApp

Shrnutí a kontext

Soubor .env je textový soubor v kořeni projektu, ve kterém jsou proměnné prostředí ve tvaru NÁZEV=hodnota, typicky API klíče, adresy služeb a další parametry. Aplikace si je při spuštění načte, takže hodnoty nejsou přímo ve zdrojovém kódu. Má to ale háček: soubor .env se nesmí ukládat do repozitáře a ne každý klíč z něj se smí volat z prohlížeče. V článku najdete ukázku souboru .env, rozdíl mezi veřejným a tajným klíčem, kam uložit klíče v produkci a co dělat, když klíč unikne.

1. Co je soubor .env

Soubor .env obsahuje nastavení, které se liší podle prostředí: při vývoji aplikace používá testovací databázi a testovací služby, po nasazení v produkci se připojuje k ostrým datům a službám. Zdrojový kód přitom zůstává stejný a mění se jen hodnoty v souboru. Kromě API klíčů a hesel do souboru uložte i adresy databází, přihlašovací údaje a další neveřejné hodnoty.

Vite a Next.js načítají soubor .env samy, v Node.js ho načte knihovna dotenv nebo od verze 20.6 parametr --env-file. Pokud aplikaci tvoříte s AI asistentem Cursor nebo Claude Code, asistent soubor .env často založí sám a hodnoty v něm doplňujete vy. Ukázka níže je aplikace, která používá Supabase, Stripe a službu na odesílání e-mailů.

.env
# Databáze a přihlášení (Supabase)
VITE_SUPABASE_URL=https://abcdefgh.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
SUPABASE_SECRET_KEY=sb_secret_...

# Platby (Stripe), testovací režim
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...

# E-maily
EMAIL_API_KEY=...

2. Soubor .env nepatří do repozitáře

Soubor .env přidejte do .gitignore, aby ho Git nikdy neuložil do repozitáře. Do repozitáře místo něj uložte soubor .env.example se stejnými názvy proměnných, prázdnými hodnotami a případně s komentáři vysvětlujícími nastavení. DevOps nebo vývojáři pak jednodušeji poznají, jaké klíče a pro které služby je potřeba nastavit.

Při práci s AI asistentem si po prvním commitu zkontrolujte, že soubor .env v repozitáři opravdu chybí. Pokud ho tam najdete, berte všechny klíče v něm jako prozrazené a postupujte podle sekce 5. GitHub u veřejných repozitářů známé typy klíčů vyhledává sám, popisuje to v dokumentaci ke skenování tajných údajů.

.gitignore
.env
.env.local
.env.*.local

3. Které API klíče smí do prohlížeče

V prohlížeči může vaše aplikace používat jen veřejný klíč, který služba k tomu výslovně určila. Například v případě Vite nebo Next.js se proměnná s předponou VITE_ nebo NEXT_PUBLIC_ při sestavení vloží do kódu, který běží v prohlížeči, a přečte si ji každý, kdo aplikaci otevře. Více informací najdete v dokumentaci Vite nebo v dokumentaci Next.js. Tajný klíč proto nesmí mít takovou předponu.

Většina služeb má oba druhy klíčů a liší se předponou nebo názvem. V tabulce zobrazujeme služby, které nástroje jako Lovable nebo Bolt běžně používají.

Klíč k AI službě v prohlížeči nepoužívejte

Když váš AI agent volá OpenAI nebo jinou službu přímo z aplikace v prohlížeči, může si klíč zjistit kdokoliv, kdo vaši aplikaci otevře a použít ho pro své účely. Zaúkolujte proto AI agenta, ať volání přesune do serverové funkce, například do Supabase Edge Function, a klíč uloží do jejích tajných proměnných.

SlužbaSmí do prohlížečeJen na server
SupabasePublishable key (sb_publishable_), dříve anon key, s nastaveným Row Level SecuritySecret key (sb_secret_), dříve service_role key
StripePublishable key (pk_live_, pk_test_)Secret key (sk_live_, sk_test_)
FirebaseKonfigurace webové aplikace včetně apiKey, přístup k datům určují pravidla zabezpečení (Security Rules)Klíč servisního účtu (JSON pro Admin SDK)
OpenAI, Anthropic a další AI službyŽádný klíčAPI klíč, volání jde přes serverovou funkci

4. Kam patří API klíče v produkci

API klíče v produkci zadejte do tajných proměnných platformy, ve které aplikace běží, a kopii uložte do správce hesel. Hodnoty bude mít k dispozici platforma a vy, ale nejsou v žádném souboru projektu, který by se dal omylem sdílet nebo dohledat v historii v Gitu.

  1. 1

    Hosting

    Ve Vercelu a Netlify najdete tajné proměnné v nastavení projektu v části Environment Variables. Zadejte je zvlášť pro produkci a pro náhledová nasazení, aby náhled nepoužíval produkční klíče.

  2. 2

    Serverové funkce

    Supabase Edge Functions mají vlastní tajné proměnné v nastavení projektu. Uveďte zde klíče k AI službám i tajný klíč k Supabase.

  3. 3

    CI/CD

    V GitHub Actions uložte klíče jako secrets repozitáře nebo prostředí. Jejich použití v nasazovacím workflow ukazuje samostatný článek.

  4. 4

    AI nástroje v prohlížeči

    V Lovable, Bolt a podobných nástrojích zadejte klíč do nastavení tajných údajů nebo připojených služeb, nikdy je nepište přímo do chatu, protože text chatu se ukládá do historie projektu.

  5. 5

    Správce hesel

    Kopii každého klíče uložte do správce hesel, například 1Password nebo Bitwarden, se jménem služby a aplikace. Díky tomu nebudete muset při přechodu na jiný hosting hledat staré klíče nebo je znovu generovat.

5. Co dělat, když API klíč unikne

Uniklý API klíč nejdřív zneplatněte ve službě, která ho vydala, a teprve potom řešte, kde všude se objevil. Smazání klíče z kódu nebo z commitu nestačí, protože kopii mohl mezitím získat kdokoliv. Únik se navíc nemusí stát u vás: například platforma Trigger.dev v listopadu 2026 oznámila, že útočník četl proměnné prostředí části jejích zákazníků.

  1. 1

    Vygenerujte nový klíč a starý zrušte

    V nastavení služby vytvořte nový klíč a starý smažte nebo zneplatněte. Této výměně se říká rotace klíče.

  2. 2

    Zadejte nový klíč a aplikaci znovu nasaďte

    Nový klíč vložte do tajných proměnných platformy, do svého souboru .env a do správce hesel. Aplikace načítá proměnné při spuštění, proto ji po změně znovu spusťte.

  3. 3

    Zkontrolujte využití služby

    V přehledu služby projděte využití a vyúčtování za dobu, kdy byl klíč kompromitován. U platebních a AI služeb hledejte nečekané platby nebo nezvyklý nárůst požadavků.

  4. 4

    Najděte další aplikace se stejnou službou

    Pokud stejnou službu nebo stejný klíč používá víc aplikací, vyměňte klíč u všech. Pomůže vám v tom seznam služeb každé aplikace, viz sekce 6.

6. Seznam služeb a klíčů u aplikace v AboutTheApp

Do AboutTheApp zapisujte ke každé aplikaci, které služby používá a kde se spravují jejich klíče, ne klíče samotné. V editoru produktu klikněte na Přidat odkaz, vyberte kategorii Bezpečnost nebo DevOps a infrastruktura a vložte adresu stránky s API klíči ve službě, například nastavení projektu v Supabase. Do pole Popis napište názvy proměnných (SUPABASE_SECRET_KEY), kde je klíč uložený (Vercel, správce hesel) a komu patří účet ve službě. Odkaz označte jako Soukromý, aby ho viděli jen členové týmu nebo ten, kdo zná kód pro odemknutí.

Pokud má zákazník nebo prostředí vlastní klíče, připojte odkaz jen k danému zákazníkovi nebo prostředí. Když pak dodavatel ohlásí únik, napište do vyhledávání na dashboardu adresu služby, která problém nahlásila. Uvidíte všechny aplikace, zákazníky a prostředí, které službu využívají a kde je nutné klíče vyměnit.

AboutTheApp hesla ani API klíče neukládá

Soukromý odkaz je skrytý pomocí kódu pro odemknutí, ale není to trezor na hesla. Do adresy ani do popisu odkazu nikdy nevkládejte samotný klíč. Klíče patří do tajných proměnných platformy a do správce hesel.

Časté otázky

Co je soubor .env?

Textový soubor v kořeni projektu s proměnnými prostředí ve tvaru NÁZEV=hodnota, typicky s API klíči a adresami služeb. Aplikace si je načte při spuštění, takže klíče nejsou přímo v kódu.

Jak vytvořit soubor .env?

V kořeni projektu vytvořte textový soubor s názvem .env a na každý řádek zapište jednu proměnnou ve tvaru NÁZEV=hodnota. Názvy proměnných najdete v souboru .env.example nebo v dokumentaci frameworku. Soubor pak přidejte do .gitignore.

Co je dotenv?

Dotenv je knihovna pro Node.js, která při spuštění načte proměnné ze souboru .env do process.env. Od verze 20.6 to Node.js umí i bez ní s parametrem --env-file. Vite a Next.js načítají soubory .env samy, dotenv u nich nepotřebujete.

Má se soubor .env nahrát do Gitu?

Nemá. Soubor .env patří do .gitignore. Do repozitáře uložte jen .env.example se stejnými názvy proměnných a prázdnými hodnotami, aby další vývojář věděl, co má doplnit.

Je bezpečné mít Supabase anon key v prohlížeči?

Ano, pokud máte u tabulek zapnuté Row Level Security s pravidly, která omezují přístup k datům. Anon key a novější publishable key jsou pro prohlížeč určené. Service_role key a secret key do prohlížeče nikdy nepatří, protože obcházejí všechna pravidla.

Co dělat, když jsem API klíč nahrál na GitHub?

Klíč hned zneplatněte ve službě, která ho vydala, a vygenerujte nový. Smazání souboru nebo commitu nestačí, kopie klíče zůstává v historii repozitáře a mohl ji už někdo stáhnout. Potom zkontrolujte využití služby a nový klíč uložte do tajných proměnných platformy.

Jak Docker Compose používá soubor .env?

Docker Compose automaticky načte soubor .env ze složky, ve které je compose.yaml, a jeho hodnoty dosadí do proměnných ve tvaru ${NÁZEV} v souboru compose.yaml. Do kontejneru se proměnné dostanou, jen když je uvedete v části environment nebo env_file.

Ukládá AboutTheApp API klíče?

Neukládá. V AboutTheApp zapíšete ke každé aplikaci služby, které používá, s odkazem na stránku, kde se klíč spravuje, a s popisem, kde je klíč uložený. Klíče samotné patří do tajných proměnných platformy a do správce hesel.

Ve zkratce

Soubor .env uchovává klíče mimo kód vaší aplikace, v produkci fungují jako tajné proměnné platformy. Pokud k tomu u aplikace vedete seznam služeb s odkazem na správu klíčů, víte při úniku, které klíče a u kterých aplikací vyměnit.

AboutTheApp

Chcete mít přehled o službách každé aplikace?

Založte si zdarma aplikaci v AboutTheApp a zapište k ní služby s odkazy na správu jejich klíčů.