Proměnné prostředí a tajemství
Kam patří API klíče a hesla, proč nesmí do kódu a jak se to dělá správně.
12 minlekce 37/107
Po lekci umíš
- Víš, co je proměnná prostředí a proč existuje
- Umíš rozlišit veřejnou a tajnou proměnnou
- Znáš pravidla, která tě ochrání před únikem klíče
Obsah lekce (5)
Tahle lekce je krátká a je to jedna z nejdůležitějších v celém kurzu.
Problém
Aplikace potřebuje znát věci, které nesmí být v kódu:
- klíč k cizí službě;
- přístup k databázi;
- tajemství na podepisování přihlášení.
Kdyby byly v kódu, byly by na GitHubu. A cokoliv na GitHubu si může přečíst kdokoliv, kdo k repozitáři má přístup – a u veřejného repozitáře úplně každý.
Řešení: proměnné prostředí
Proměnná prostředí je hodnota, kterou aplikace dostane zvenčí, ne z kódu.
Ve vývoji jsou uložené v souboru .env (nebo .env.local) ve složce projektu:
DATABASE_URL="postgresql://..."
RESEND_API_KEY="re_abc123..."
NEXT_PUBLIC_SITE_URL="http://localhost:3000"V produkci je nastavíš v administraci hostingu. Stejná jména, jiné hodnoty.
Veřejné versus tajné proměnné
Tohle je detail, na kterém se lidé pálí nejčastěji.
V Next.js platí jednoduché pravidlo:
Tajné – zůstane na serveru
DATABASE_URL
RESEND_API_KEY
Bez předpony. Do prohlížeče se nikdy nedostanou.
Veřejné – dostane se do prohlížeče
NEXT_PUBLIC_SITE_URL
NEXT_PUBLIC_ANALYTICS_ID
S předponou NEXT_PUBLIC_. Uvidí je kdokoliv.
Praktická kontrola
Zkontroluj práci s tajemstvími
Spusť před každým nasazením a vždycky, když jsi přidal cizí službu.
Projdi projekt a zkontroluj práci s tajemstvími:
1. Je .env (a všechny jeho varianty) v .gitignore?
2. Existuje .env.example se jmény proměnných bez hodnot?
3. Je v kódu někde napsaný klíč, heslo nebo token natvrdo? Projdi
i komentáře a testovací soubory.
4. Má některá proměnná s předponou NEXT_PUBLIC_ hodnotu, která by
měla být tajná?
5. Používá se někde v kódu, který běží v prohlížeči, tajná proměnná?
U každého bodu mi napiš výsledek. Nic zatím neopravuj.Kdy o tom Claude bude mluvit
- „Přidej si do
.env.localproměnnouX.“ → Potřebuje hodnotu, kterou si musíš obstarat sám. - „Nastav to i na hostingu.“ → Lokální
.envse na server nekopíruje, musíš to zadat v administraci. - „Tenhle kód musí běžet na serveru, protože používá tajný klíč.“ → Přesně tak, jak má být.
Podívej se do svého projektu z modulu 5:
- Existuje
.gitignorea je v něm.env? - Zkus najít, jestli je v projektu někde napsaná nějaká adresa nebo klíč natvrdo.
I když teď žádná tajemství nemáš, chceš mít tenhle návyk zaběhnutý dřív, než je mít budeš.
Co si odnést
- Tajemství nepatří do kódu, patří do proměnných prostředí.
.envdo.gitignore,.env.exampledo repozitáře.- Předpona
NEXT_PUBLIC_= veřejné. Ke klíčům ji nikdy nedávej. - Uniklý klíč se neopravuje mazáním. Zruš ho a vygeneruj nový.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceKomponenty, routy a stavObsah aktualizován: 21. srpna 2026