Omgevingsvariabelen (environment variables) zijn dynamische waarden die buiten de broncode van een applicatie worden opgeslagen en gebruikt worden om configuratie-instellingen te beheren. Ze maken het mogelijk om dezelfde code in verschillende omgevingen te draaien zonder aanpassingen, zoals tijdens ontwikkeling, testen, staging en productie.
Deze variabelen bevatten vaak gevoelige informatie zoals API-sleutels, database-verbindingen, wachtwoorden en andere configuratie-instellingen die per omgeving kunnen verschillen. Door deze informatie buiten de code te houden, wordt de beveiliging vergroot en wordt het eenvoudiger om applicaties te beheren en te deployen.
Belangrijkste kenmerken
- Scheiding van configuratie en code: Configuratie wordt gescheiden van de applicatiecode, wat best practices volgt volgens de Twelve-Factor App methodologie
- Beveiliging: Gevoelige informatie zoals API-sleutels en wachtwoorden worden niet in de broncode opgeslagen
- Flexibiliteit: Dezelfde codebase kan in verschillende omgevingen draaien met verschillende configuraties
- Versiebeheer: Geheime informatie hoeft niet in version control systemen zoals Git te worden opgeslagen
- Eenvoudig beheer: Configuratie kan worden aangepast zonder code te wijzigen of opnieuw te deployen
Hoe werken omgevingsvariabelen?
Omgevingsvariabelen worden ingesteld op systeemniveau of via configuratiebestanden en zijn toegankelijk voor applicaties tijdens runtime. In webontwikkeling worden ze vaak beheerd via:
- .env bestanden: Lokale bestanden die variabelen definiëren voor ontwikkelomgevingen
- Hosting platforms: Services zoals Vercel, Netlify of AWS bieden interfaces om variabelen in te stellen
- Container systemen: Docker en Kubernetes gebruiken omgevingsvariabelen voor configuratie
- CI/CD pipelines: Build- en deployment-systemen injecteren variabelen tijdens het proces
Veelvoorkomende toepassingen
Omgevingsvariabelen worden gebruikt voor verschillende soorten configuratie-informatie:
- Database-verbindingsstrings en credentials
- API-sleutels en tokens voor externe services
- Feature flags om functionaliteit aan of uit te schakelen
- Omgevingsspecifieke URLs en endpoints
- Logging en debugging niveaus
- Betalingsprovider configuraties
- Email service credentials
