Generator .env.example
Wklej plik .env, a dostaniesz szablon .env.example z pustymi hasłami, tokenami i kluczami, gotowy do repozytorium.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Wklej swój .env albo wybierz szablon. Treść służy tylko do zbudowania wyniku i nie jest zapisywana. Skrót: Ctrl + Enter.
Treść się zmieniła: kliknij „Generuj”, żeby odświeżyć wynik.
Wartości w szablonieZmienne
Wyczyszczone wartości
Sekcje
Ostrzeżenia
.env.example
Zapisz w katalogu projektu i dodaj do repozytorium; prawdziwy .env zostaw w .gitignore.
Które wartości generator czyści
| Człon nazwy klucza | Przykładowy klucz | Wartość w .env.example |
|---|---|---|
| PASSWORD | DB_PASSWORD | pusta wartość |
| PASSWD | SMTP_PASSWD | pusta wartość |
| PASS | MAIL_PASS | pusta wartość |
| PWD | REDIS_PWD | pusta wartość |
| SECRET | JWT_SECRET | pusta wartość |
| TOKEN | GITHUB_TOKEN | pusta wartość |
| KEY | APP_KEY | pusta wartość |
| APIKEY | SENDGRID_APIKEY | pusta wartość |
| PRIVATE | JWT_PRIVATE | pusta wartość |
| CREDENTIALS | GOOGLE_CREDENTIALS | pusta wartość |
| SALT | AUTH_SALT | pusta wartość |
| DSN | SENTRY_DSN | pusta wartość |
| adres z hasłem | DATABASE_URL | hasło w adresie → CHANGE_ME |
.env a .env.example
Plik .env trzyma prawdziwe hasła i klucze jednej maszyny i powinien być w .gitignore. Plik .env.example trafia do repozytorium: ma te same klucze, ale puste albo bezpieczne przykładowe wartości. Nowa osoba w projekcie kopiuje go (cp .env.example .env) i uzupełnia swoje dane. W Laravelu pusty APP_KEY wypełnia potem php artisan key:generate.
Jak działa czyszczenie
Nazwa klucza jest dzielona po „_”. Gdy któryś człon to np. PASSWORD, SECRET, TOKEN albo KEY, wartość zostaje pusta: DB_PASSWORD=tajne → DB_PASSWORD=. Hasło w adresie zamieniamy na znacznik: postgres://user:pass@localhost:5432/app → postgres://user:CHANGE_ME@localhost:5432/app. Porty, hosty i nazwy zostają jako przykład. Reguła opiera się na nazwach, więc przed commitem przejrzyj wynik.
Składnia pliku .env
Jedna zmienna w linii: KLUCZ=wartość, najbezpieczniej bez spacji wokół „=”. Nazwa z liter, cyfr i podkreśleń, nie zaczyna się cyfrą; zwyczajowo wielkimi literami. Linia zaczynająca się od # to komentarz. Wartość ze spacjami ujmij w cudzysłów: APP_NAME="Mój sklep". Prefiks export generator zostawia bez zmian.
Typowe pułapki
Nowa zmienna dopisana do .env, ale nie do .env.example, więc u innych aplikacja nie startuje. Ten sam klucz dwa razy: to, która wartość wygra, zależy od biblioteki. Plik .env przypadkiem w repozytorium: usunięcie go w kolejnym commicie nie wystarczy, bo zostaje w historii, więc zmień ujawnione hasła i klucze.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator .env.example
Plik .env.example to wzór konfiguracji dla nowych środowisk. Zawiera wszystkie potrzebne klucze, ale bez prawdziwych sekretów: każdy programista kopiuje go do .env i uzupełnia lokalnie. Ten generator .env.example robi taki szablon z wklejonego pliku .env: czyści hasła, tokeny i klucze, dodaje komentarze sekcji i wskazuje błędy składni.
Dlaczego .env.example jest ważny?
- nowa osoba w zespole od razu widzi, jakich zmiennych potrzebuje aplikacja,
- zmniejsza ryzyko wycieku sekretów, bo do repozytorium trafia wzór, a nie prawdziwy
.env, - ułatwia wdrożenie i automatyczną konfigurację,
- jest dokumentacją konfiguracji wersjonowaną w repozytorium.
Przykład
Wejście, czyli fragment lokalnego .env:
APP_NAME="Mój sklep"
APP_KEY=base64:Zm9vYmFy
APP_DEBUG=true
DB_HOST=127.0.0.1
DB_PASSWORD=tajne123
DB_URL=mysql://app:tajne123@localhost:3306/sklep
STRIPE_SECRET=sk_test_abc
Wynik przy domyślnych ustawieniach (tryb „Wyczyść sekrety”, komentarze sekcji i nagłówek włączone):
# Skopiuj do .env i uzupełnij wartości
# --- APP ---
APP_NAME="Mój sklep"
APP_KEY=
APP_DEBUG=true
# --- DB ---
DB_HOST=127.0.0.1
DB_PASSWORD=
DB_URL=mysql://app:CHANGE_ME@localhost:3306/sklep
STRIPE_SECRET=
Dobre praktyki
- klucze pisz wielkimi literami z podkreśleniami,
- grupuj zmienne tematycznie (APP_, DB_, MAIL_),
- puste wartości sekretów zostawiaj bez wypełnienia,
- dodaj
.envdo.gitignore, zawsze.
Jak działa generator .env.example
Generator przyjmuje zawartość pliku .env: po jednej zmiennej w linii, w formacie KLUCZ=wartość albo sam KLUCZ (dostaje wtedy pustą wartość i ostrzeżenie o brakującym „=”). Puste linie i komentarze zaczynające się od # zostają na swoich miejscach, a prefiks export jest zachowany. Nazw kluczy narzędzie nie poprawia: jeśli klucz zawiera myślnik albo zaczyna się cyfrą, zobaczysz ostrzeżenie, a zmianę robisz sam. Na start możesz wybrać szablon Laravel, Node.js, Docker (Postgres, MySQL) albo minimalny.
Sposób obsługi wartości wybierasz w jednym z trzech trybów. „Wyczyść sekrety” dzieli nazwę klucza po znaku _ i zostawia pustą wartość, gdy któryś człon to np. PASSWORD, PASS, SECRET, TOKEN, KEY, SALT albo DSN. Hasło wpisane w adres typu postgres://user:haslo@host zamienia na CHANGE_ME, a hosty, porty i przełączniki zostawia jako przykład. „Wyczyść wszystkie wartości” daje same klucze z pustym „=”, a „Zachowaj wartości” kopiuje je bez zmian, więc wtedy wynik trzeba przejrzeć ręcznie.
Komentarz sekcji, np. # --- DB ---, pojawia się nad grupą kluczy o wspólnym prefiksie przed pierwszym podkreśleniem, jeśli w pliku są co najmniej 2 takie klucze. Pojedyncze klucze, jak STRIPE_SECRET, zostają bez nagłówka. Kolejność linii jest taka jak w pliku źródłowym. Opcja sortowania układa klucze alfabetycznie i oddziela grupy pustą linią, ale usuwa przy tym własne komentarze. Wynik kopiujesz jednym przyciskiem albo pobierasz jako plik .env.example.
Przykład krok po kroku
- Wklejasz 7 zmiennych z przykładu powyżej: 3 z prefiksem APP_, 3 z prefiksem DB_ i jedną
STRIPE_SECRET. - Generator sprawdza składnię. Każda linia ma „=”, nazwy są poprawne, a wartość ze spacją stoi w cudzysłowie, więc licznik ostrzeżeń pokazuje 0.
- Prefiksy APP i DB mają po 3 klucze, więc dostają komentarze sekcji. STRIPE ma 1 klucz i zostaje bez nagłówka. Licznik sekcji: 2.
- W trybie „Wyczyść sekrety” zmieniają się 4 wartości:
APP_KEY(człon KEY),DB_PASSWORD(PASSWORD),STRIPE_SECRET(SECRET) oraz hasło wDB_URL, zamienione na CHANGE_ME. Pozostałe 3 wartości zostają jako przykład. - Kafelki pokazują: 7 zmiennych, 4 wyczyszczone wartości, 2 sekcje, 0 ostrzeżeń. W trybie „Wyczyść wszystkie wartości” wyczyszczonych byłoby 7, a w trybie „Zachowaj wartości” 0.
Tabela referencyjna typów zmiennych
Reguły trybu „Wyczyść sekrety”. Liczy się cały człon nazwy między podkreśleniami, a nie fragment słowa.
| Typ zmiennej | Człon w nazwie i przykład | Jak traktuje ją generator |
|---|---|---|
| Hasło | PASSWORD, PASSWD, PASS, PWD (DB_PASSWORD, MAIL_PASS) | Zostawia pustą wartość po znaku równości. |
| Sekret i token | SECRET, TOKEN, SALT, PRIVATE (JWT_SECRET, GITHUB_TOKEN) | Zostawia pustą wartość. |
| Klucz aplikacji lub API | KEY, APIKEY (APP_KEY, AWS_SECRET_ACCESS_KEY) | Zostawia pustą wartość. W Laravelu APP_KEY uzupełnia potem php artisan key:generate. |
| Dane dostępowe usług | CREDENTIALS, DSN (GOOGLE_CREDENTIALS, SENTRY_DSN) | Zostawia pustą wartość. |
| Adres z hasłem | DATABASE_URL=postgres://user:pass@localhost:5432/app | Zamienia samo hasło: postgres://user:CHANGE_ME@localhost:5432/app. |
| Host, port, przełącznik, nazwa | DB_HOST, DB_PORT, APP_DEBUG, APP_NAME | Zostawia wartość bez zmian jako przykład. |
| Klucz bez „=” | DB_PASSWORD | Zapisuje DB_PASSWORD= i dodaje ostrzeżenie. |
Praktyczne wskazówki
- Ustal kolejność sekcji raz i trzymaj się jej: diff w repozytorium pokaże wtedy tylko realne zmiany, a nie przestawienie grup. Jeśli zespół nie ma własnego porządku, użyj sortowania alfabetycznego.
- Nie wklejaj produkcyjnych haseł. Narzędzie nie zapisuje treści, ale do zbudowania szablonu wystarczy lokalny
.envz wartościami deweloperskimi. - Dodawaj komentarze nad sekcjami. Generator przenosi komentarze z pliku źródłowego do wyniku (o ile nie włączysz sortowania), więc opis w rodzaju
# klucz z panelu Stripetrafi do szablonu. - Rozdzielaj szablony per środowisko: jeśli staging i produkcja mają inne klucze, utwórz osobny plik dla danego środowiska zamiast nadpisywać główny wzorzec.
- Porównuj
.envz.env.exampleprzed commitem. Prosty skrypt lub hook wyłapie klucz, który istnieje lokalnie, ale nie trafił do wzorca.
Ograniczenia generatora
- Sekrety rozpoznaje po nazwie, nie po treści.
DBPASSWORD(bez podkreślenia) alboAUTH_HASLOzostaną z wartością, aCACHE_KEY_PREFIXzostanie wyczyszczony, bo zawiera człon KEY. Przed commitem przejrzyj wynik. - Adres z hasłem bez nazwy użytkownika, np.
redis://:haslo@localhost:6379, nie jest rozpoznawany i hasło zostaje w wyniku. - Nie zna kontekstu frameworka. Szablony Laravel, Node.js i Docker to tylko punkt startowy; generator nie wie, które zmienne są wymagane, i nie usunie zbędnych.
- Nie waliduje wartości: nie sprawdzi, czy port jest liczbą, a adres poprawnym URL-em. Sprawdza tylko składnię linii (brak „=”, niepoprawna nazwa klucza, spacja w wartości bez cudzysłowu, powtórzony klucz) i pokazuje najwyżej 20 ostrzeżeń. Limit wejścia to 20 000 znaków.
- Nie wykryje nieużywanych zmiennych. Jeśli klucz zniknął z kodu, ale nadal jest w danych wejściowych, generator go zachowa.
- Nie zastąpi dokumentacji. Opis formatu i znaczenia zmiennych trzeba dopisać w komentarzach lub w README.
Najczęstsze pytania
Czym różni się .env od .env.example?
Plik .env trzyma prawdziwe hasła i klucze jednej maszyny i powinien być w .gitignore. .env.example ma te same klucze z pustymi lub przykładowymi wartościami i trafia do repozytorium; nowa osoba robi cp .env.example .env i uzupełnia dane.
Jak wygenerować .env.example z istniejącego .env?
Wklej zawartość .env, zostaw tryb „Wyczyść sekrety” i kliknij „Generuj .env.example”. Hasła, tokeny i klucze dostaną puste wartości, a wynik pobierzesz jako gotowy plik.
Czy generator usunie prawdziwe hasła i tokeny?
Tak, jeśli nazwa klucza zawiera człon w rodzaju PASSWORD, SECRET, TOKEN albo KEY oddzielony podkreśleniem. Nietypowej nazwy może nie rozpoznać, dlatego przy wątpliwościach wybierz „Wyczyść wszystkie wartości”.
Czy .env.example powinien mieć puste wartości?
Sekrety tak. Dla pozostałych zmiennych bezpieczne wartości lokalne, np. 127.0.0.1, 3306 czy false, pomagają szybko uruchomić projekt.
Jak obsłużyć wiele środowisk?
Twórz osobne pliki (np. .env.staging.example) lub trzymaj wspólny wzór i nadpisuj różnice w CI/CD.
Co jeśli zapomnę dodać nowej zmiennej?
U innych aplikacja nie wystartuje albo zadziała z wartością domyślną. Zabezpiecza przed tym test startowy, który sprawdza obecność wymaganych kluczy.