Verschlüsselung der .env Datei

In modernen Anwendungen wie z.B. Laravel, werden häufig „.env“ Dateien verwendet, um Zugangsdaten für die Datenbanken, API-Token oder andere Zugangsschlüssel zu speichern (siehe https://dotenv.org/). Dies hat den Vorteil, dass diese nicht im Quellcode der Anwendung hinterlegt werden müssen und so an einer zentralen Stelle gespeichert werden. Außerdem kommen sie so nicht in die Versionskontrolle wo sie ggf. von Personen außerhalb des Projektes gelesen werden könnten.

Sobald ein neuer Wert in dieser Datei hinterlegt wird, muss dieser auch bei allen Entwickler im Team hinterlegt werden oder in die produktive Umgebung eingespielt werden. Gerade wenn es hierfür keinen richtigen Prozess gibt, wie die Zugangsdaten dann verteilt werden, könnte dies wieder unsicher übertragen werden. Vielleicht wird hier eine Rundmail geschrieben oder mit einer Message via Slack, Teams oder gar in WhatsApp verschickt. Und sollten sich die Werte auch nicht in Produktion automatisch oder per Deployment aktualisieren, dann muss hier auch immer händisch noch der richtige Wert hinterlegt werden.

Eine Lösung hierfür kommt von Dotenv selbst und bietet eine Synchronisierung. Doch wer Kosten sparen möchte oder eine Cloud Lösung nicht in Frage kommt, der steht wieder vor dem Ausgangsproblem.

Darum habe ich ein kleines Package gebaut, mit dem man die .env Datei sicher im Repository hinterlegen kann, ohne das es hier zu Bedenken der Sicherheit kommt. Mit dem Package lässt sich die lokale .env Datei sicher verschlüsseln und damit auch in das Repository einchecken. Andere Personen im Team können diese dann auschecken und dann wieder entschlüsseln. Das gleiche geht auch für die produktive Umgebung. So muss nur noch der geheime Schlüssel bekannt sein, welcher nur für ausgewählte Personen im Team bekannt ist.

Das Package findest du wie immer bei GitHub. Es befindet sich noch in der aller ersten Version: https://github.com/TobyMaxham/laravel-envcrypter

GitHub Challenge: Erstes Fazit

Seit mittlerweile 23 Tagen mache ich bei der GitHub Streaking Challenge mit. Und ich muss sagen, es macht mehr Spaß als ich gedacht habe.
Am meisten habe ich bemerkt, dass die Codequalität enorm steigt. Außerdem wird man generell beim Programmieren besser. Ich schaue immer, dass ich über die Woche hinweg an mehreren Projekten gleichzeitig arbeite. So habe ich zusätzlich auch etwas Abwechslung dabei.
Es gibt jedoch auch schwierige Phasen. Diese sind vor allem am Wochenende. Da die Zeit mit der Familie von der Challenge nicht eingeschränkt werden darf, muss ich mir für die 2-3 Tage über das Wochenende immer eine gute Strategie überlegen. In der Regel schaue ich, dass ich möglichst früh schon etwas an Projekten mache. So bleibt zumindest der Versuch da, im Laufe des Tages weitere Aktionen zu machen.
Und wenn es mal überhaupt nicht klappt, dass erstelle ich eine Issue in der ich meine Ziele für die nächsten Tage definiere. So bleibt der Streak erhalten.

Ich hoffe ich schaffe die 100 Tage. Ein viertel ist ja fast schon geschafft.

GitHub Streaking Challenge

Vorteile der Challenge

Du wirst zum Coden gezwungen
Arbeiten an Open-Source-Projekten werden oft äußerst ungern gemacht. Oder man bekommt das Gefühl, dass man eigentlich keine Zeit dafür hat. Aber in Wirklichkeit haben wir viel Freizeit – es ist nur so, dass wir die Zeit am Ende doch nur vor dem Fernseher verbringen, oder unnötig im Internet surfen. Ich habe festgestellt, um diese Angewohnheiten erfolgreich zu umgehen, muss ich mir eine selbst auferlegte Pflicht machen. Denn ich muss meinen Code pushen um meine Streaks fortzuführen. Und ohne es wirklich bemerkt zu haben, habe ich angefangen dem täglichen Coden eine gewisse Priorität zuzuschreiben.

Du organisierst dich besser
Meine bisherige Erfahrung bei der Challenge zeigt, dass es auch einer gewissen Organisation bedarf, immer die richtige Zeit zu finden um an den Projekten weiter zu arbeiten. Egal ob in den frühen Morgenstunden vor der Arbeit, oder erst am Abend anstatt die üblichen Programme im Fernseher anzuschauen. Ich programmiere lieber am späten Abend. Ich finde dann bin ich am produktivsten. Das muss jedoch jeder für sich selbst herausfinden.

Deine Programmierung wird sich verbessern
Dies ist eigentlich ganz leicht erklärt. Je mehr Code du schreibst, und umso mehr Projekte du vorantreibst, desto mehr wirst du deinen Horizont erweitern. Außerdem wird sich deine Codequalität fortlaufend verbessern. Außerdem gibt es noch einen Vorteil. Da du an Open-Source-Projekten arbeitest, wirst du immer motivierter, dass dein Code auch von fremden Entwicklern gelesen werden kann. Und ich glaube, dass genau das einen guten Programmierer ausmacht.

Zuletzt: Open-Source macht Spaß!
Wenn du den ganzen Tag damit verbracht hast, jede Menge neue Codezeilen zu erzeugen, dann hast du dich vielleicht schon mal gefragt: „Wofür das Ganze?“. Mit Open-Source-Projekten kannst du deine Projekte teilen. Außerdem kannst du jede Menge Unterstützung von anderen erfahrenen Entwicklern bekommen. Du wirst selbst schon mal in der Situation gewesen sein, als du dachtest, dass in dem Projekt X eine Komponente Y fehlt. Hier werden dich andere Entwickler auf ganz neue Ideen bringen und dir auch kräftig unter die Arme greifen.