Modul 06 · Jak funguje software

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:

.env.local
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

Prompt pro Claude Code

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.local proměnnou X.“ → Potřebuje hodnotu, kterou si musíš obstarat sám.
  • „Nastav to i na hostingu.“ → Lokální .env se 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.
Cvičení10 minut

Podívej se do svého projektu z modulu 5:

  1. Existuje .gitignore a je v něm .env?
  2. 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í.
  • .env do .gitignore, .env.example do 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.

Obsah aktualizován: 21. srpna 2026