Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator .env.example

Szablon zmiennych środowiskowych, który bezpiecznie trafia do repozytorium.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Wybierz framework i kliknij „Generuj .env.example”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator .env.example — szablon konfiguracji, który bezpiecznie trafia do repozytorium

Generator .env.example składa szablon zmiennych środowiskowych dla Laravela, Node.js i Pythona. Wybierz framework, wpisz nazwę aplikacji, wskaż bazę danych i zdecyduj, czy projekt używa Redisa oraz poczty. Wynik to plik z pełną listą kluczy pogrupowanych komentarzami sekcji, w którym każdy sekret ma pustą wartość — dokładnie taki, jaki powinien trafić do Gita obok kodu.

Po co .env.example, jeśli .env jest ignorowany

Plik .env z prawdziwym hasłem do bazy i kluczem aplikacji nie ma czego szukać w repozytorium, dlatego trafia do .gitignore. Razem z nim znika jednak jedyna lista mówiąca, jakich zmiennych aplikacja potrzebuje: nowa osoba klonuje projekt i dostaje wyjątek o kluczu, którego nazwy nie ma nigdzie w kodzie. .env.example zamyka tę lukę i jest wersjonowany, więc nowa integracja jest w diffie widoczna jako nowy klucz. Zakładając repozytorium, wygeneruj najpierw listę ignorowanych ścieżek w generatorze .gitignore i sprawdź, czy .env jest na niej, a .env.example nie.

Co generuje to narzędzie

Trzy szablony odpowiadają trzem konwencjom nazewniczym: Laravel trzyma parametry bazy w osobnych zmiennych, Node.js i Python w jednym adresie połączenia. Przełączniki Redisa i poczty dokładają własne bloki, a wynik przechodzi przez deduplikację kluczy.

SekcjaLaravel / PHPNode.jsPython
AplikacjaAPP_NAME, APP_ENV, APP_DEBUG, APP_URLNODE_ENV, APP_NAME, PORT, APP_URLAPP_ENV, APP_NAME, DEBUG
Klucz podpisuAPP_KEY — pustyJWT_SECRET — pustySECRET_KEY — pusty
Baza danychDB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORDDATABASE_URL, format w komentarzuDATABASE_URL, format w komentarzu
Cache i kolejkiCACHE_STORE, QUEUE_CONNECTION, REDIS_HOSTREDIS_URLREDIS_URL
PocztaMAIL_MAILER, MAIL_HOST, MAIL_PORT, MAIL_PASSWORDSMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSEMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER

Zmienna środowiskowa a plik .env

Zmienna środowiskowa jest własnością procesu: ustawia ją system, kontener albo panel hostingu i istnieje niezależnie od plików w katalogu. .env to tylko wygodny sposób załadowania zestawu takich zmiennych na maszynie deweloperskiej — czyta go biblioteka, nie system. Zmienna już obecna w środowisku najczęściej nie zostanie nadpisana wpisem z pliku, dlatego na produkcji .env zwykle nie jest potrzebny: konfigurację wstrzykuje menedżer sekretów albo dyrektywa serwera, na przykład SetEnv z generatora pliku .htaccess. .env.example zostaje kontraktem — mówi, co dostarczyć, nie skąd.

Wartości: puste sekrety, atrapy, cudzysłowy i spacje

Zasada jest jedna: żadna wartość w .env.example nie może być prawdziwa. Klucze podpisu i hasła zostają puste, żeby aplikacja krzyknęła przy pierwszym uruchomieniu, zamiast po cichu wystartować na wartości z przykładu. Nieszkodliwe ustawienia — APP_ENV=local, PORT=3000, 127.0.0.1 — warto wpisać, bo skracają start projektu do jednego cp .env.example .env. Adres połączenia generator pokazuje w komentarzu, a wartość zostawia pustą — w repozytorium nie leży wtedy ciąg wyglądający jak działający login z hasłem.

Osobna pułapka to cytowanie. Wartość bez cudzysłowów kończy się na pierwszej spacji albo na znaku #, więc nazwa z dwóch słów wymaga cudzysłowów. W cudzysłowach podwójnych część bibliotek rozwija ${INNA_ZMIENNA} i sekwencje ucieczki, w apostrofach nie. Generator cytuje wartość tylko wtedy, gdy musi:

APP_NAME=MyApp
APP_NAME="Acme Shop"
MAIL_FROM_NAME="${APP_NAME}"
DB_PASSWORD=

Prawdziwe sekrety tworzysz później i lokalnie — przyda się generator haseł.

Komentarze, kolejność kluczy i walidacja przy starcie

Wszystko od znaku # do końca linii jest komentarzem i to jedyne miejsce, w którym można wyjaśnić, skąd wziąć wartość i czy jest wymagana. Generator używa komentarzy jako nagłówków sekcji oraz jako zakomentowanych przykładów tam, gdzie wartość musi zostać pusta. Gdy oba pliki wymieniają klucze w tej samej kolejności, diff pokazuje braki w sekundę; rozjechany plik uporządkuje sorter zmiennych pliku .env.

Sam szablon nie zmusi nikogo do wypełnienia pól, dlatego obecność wymaganych zmiennych warto sprawdzać na starcie procesu, a nie w chwili, gdy jakaś funkcja pierwszy raz sięgnie po klucz API. Brak konfiguracji ma zatrzymać wdrożenie od razu, z komunikatem wskazującym nazwę zmiennej. W Laravelu naturalnym miejscem są pliki z katalogu config czytające zmienne przez env(), a w Django moduł ustawień z konfiguratora settings.py.

Jak korzystać z generatora

  1. Wybierz framework — od tego pola zależą nazwy zmiennych i sposób opisu bazy.
  2. Wpisz nazwę aplikacji; nazwa z kilku słów dostanie cudzysłowy automatycznie.
  3. Wskaż bazę: MySQL, PostgreSQL albo brak zewnętrznej bazy przy SQLite.
  4. Zaznacz Redisa i pocztę, jeśli projekt ich używa.
  5. Kliknij Generuj .env.example, zapisz wynik w katalogu głównym repozytorium, a potem wykonaj cp .env.example .env i uzupełnij puste wartości.

Najczęściej zadawane pytania

Czy .env.example może zawierać wartości domyślne?

Tak, o ile są nieszkodliwe. APP_ENV=local, DB_HOST=127.0.0.1 czy PORT=3000 skracają uruchomienie projektu i nic nie ujawniają. Granica jest wyraźna: wszystko, co uwierzytelnia lub podpisuje, zostaje puste. Wartość wpisana „na chwilę” ma zwyczaj dożywać do produkcji.

Dlaczego APP_KEY jest pusty, a nie wygenerowany?

Bo klucz w repozytorium przestaje być sekretem. APP_KEY podpisuje ciasteczka i szyfruje dane sesji, więc jego ujawnienie pozwala podrobić sesję zalogowanego użytkownika. Każde środowisko potrzebuje własnego klucza, tworzonego lokalnie — w Laravelu komendą php artisan key:generate.

Kiedy wartość wymaga cudzysłowów?

Gdy zawiera spację, znak # albo cokolwiek, co parser mógłby uznać za koniec wartości: APP_NAME="Acme Shop". W cudzysłowach podwójnych część bibliotek rozwija ${ZMIENNA} — jeśli hasło zawiera znak dolara, apostrofy są bezpieczniejsze.

Co zrobić, gdy .env już trafił do repozytorium?

Najpierw unieważnij i wymień wszystkie poświadczenia z tego pliku — to jedyny krok, który naprawdę usuwa skutki. Dopiero potem zajmij się historią: git rm --cached .env wyjmuje plik z indeksu, ale zostaje on we wcześniejszych commitach, a ich przepisanie wymaga zgody zespołu.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!