DKIM, PTR, SPF? Replacing your MTA with MSMTP (+PHP, +System, +Apache)

Fuck you fuckin spammer! Because of the arms race it started that getting those message some days ago:

Undelivered Mail Returned to Sender

gmail-smtp-in.l.google.com[2a00:1450:4013:c00::1a] said: 550-5.7.1 [2a01:488:66:1000:5bfa:7407:0:1] Our system has detected that this 550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records 550-5.7.1 and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more 550 5.7.1 information. m131si2394453wmb.65 - gsmtp (in reply to end of DATA command)

TL;DR MSMTP is a beyond edge of plate tip when I ran into the DKIM issue. Nothing what follows is really new or surprising.

Continue reading

Posted on

GitLab Backup kontinuierlich erstellen und per FTP sichern

Wie man GitLab auf Ubuntu 10.04 LTS einrichtet hab ich ja hier beschrieben. Backups sind wichtig. Deswegen muss auch eine GitLab-Instanz, bzw. die Repositories und Datenbanken gesichert werden. In der Anleitung ist die Methode für Sourcecode-kompilierte GitLab-Installationen. (interessant auch hier).

TL;DR Backup erstellen funktioniert wie in der Anleitung beschrieben, nur der S3-Upload funktioniert nicht, weil Region Frankfurt nur mit IAM Auth v4 läuft. Geht evtl. bei einer Omnibus-Install, bei mir aber nicht. Daher erfolgt der Backup des Backups per FTP-Upload. [Update: jetzt mit Boxbackup..]

Continue reading

Posted on

Lychee: Umfangreiche Fotosammlung online bringen

Schon Jahre habe ich das Problem, dass ich meine sehr umfangreiche Fotosammlung gerne auf Smartphone, iPad und Computer online abrufen möchten. Und das bitte selbst gehostet. Diese umfasst mittlerweile rund 61.000 Bilder in rd. 1500 Alben und bringt in der Die Thumbnail-Version (runterskaliert auf max. 2048x2048) immerhin rund 13 GB auf die Waage.

Der Shootingstar Lychee ist nun die Lösung. t3n berichtete Ende 2014 darüber und jetzt hat es auch noch - wie heise.de berichtet - den Open-Source-Preis 2014 von buch7.de gewonnen (neben Bloonix und CiviCRM). Zeit sich das ganze anzuschauen.

TL;DR Leider funktionieren diese Bildermassen derzeit nicht über eine Lychee-Instanz, sodass ich je Jahr eine separate DB angelegt habe. Der Import läuft per lycheesync je Jahr-Ordner. Die Umschaltung der DB erfolgt über Erkennung des Unterverzeichnisses in der data/config.php.

Continue reading

Posted on

OXID Shop Module per Bower und Grunt automatisch aktualisieren

OXID eShop CE ist an sich ja ein tolles System out-of-the-box. Wie jedes moderne System bietet auch OXID Drittanbietern die Möglichkeit, dieses mit Modulen zu erweitern. Mittlerweile gibt es auch einige Module auf GitHub unter OpenSource-Lizenz. Mit Node.js, Bower und Grunt lässt sich ein automatischer Workflow etablieren, der Installation und Aktualisierung erleichtert.

TL;DR

Mittels Bower und Grunt werden die GitHub-Repos der Modulanbieter heruntergeladen und anschließend nach modules/ kopiert. Das lässt sich mit Grunt komplett automatisieren: Bower Update mit grunt-contrib-exec, kopieren mit grunt-contrib-copy.

Früher so: Neues Modul herunterladen, auspacken, ins Shop-Verzeichnis kopieren. Im Explorer ist es herumgeklicke, auf der Kommandozeile einiges an Tipperei.
Heute so: Neues Modul in bower.json eintragen, grunt ausführen, fertig.

Continue reading

Posted on

Docker statt Vagrant: dank Boot2docker auch auf dem Mac

Vagrant ist ja sowas von 2014. Naja, nicht wirklich, ist ja immernoch ein sehr cooler Ansatz um eine VM versionierbar zu provisionieren. Dies ist auch kein Rant gegen Vagrant! Ich habe ja selbst erst Ende letzten Jahres über den Wechsel von MAMP zu Vagrant gebloggt. Aber wenn man lokal mehrere Projekte mit mehreren verschieden bestückten VMs aufzieht und miteinander reden lässt, ist fix auch 8 GB RAM verkonsumiert. Und da springt Docker durch den anderen Ansatz in die Presche. Angefixt durch zwei Artikel im aktuellen PHPMagazin 2/2015 hab ich das ganze auf meinen Mac mit Hilfe von boot2docker mal angetestet.

TL;DR

Docker ermöglicht änderbare Anwendungs-Container zu erstellen und zu betreiben, die auf nicht änderbaren Images basieren. Änderungen können commitet werden zu einen neuen Image. Diese werden lokal in einen Repository verwaltet.

Docker selbst betreibt keine VMs, sondern hat immer das Host-OS als Unterbau. Auf dem Mac ist es die  Boot2docker VM (VirtualBox). Es ist wunderbar möglich verschiedene Linux-Distros mit verschiedenen Versionen von Diensten nebeneinander Speicherplatz-schonen zu betreiben.

Wenn man das Grundkonzept verstanden und ein bisschen herumprobiert hat, kommt man relativ fix auch als Nicht-Admin dahinter.

Continue reading

Posted on

GitLab 7.6 auf Ubuntu 10.04 LTS Lucid Lynx

Inspiriert durch eine langsam Fahrt aufnehmende Umstellung meines Arbeitgebers hab ich dran gemacht, die Quellcode-Verwaltung meiner Nicht-Opensource-Projekte vom in die Jahre gekommenen Subversion zu Git zu migrieren. Erster Schritt: GitLab einrichten!

Continue reading

Posted on

SVN Repository von Lokal nach Remote verschieben

So ein lokales SVN-Repository kann man sicher leicht auf einen Remote-Server verschieben, sollte man denken. Geht so, vor allem wenn man lokal nur EIN Repo hat mit Projekt-Unterverzeichnissen, und Remote dann (glücklicherweise) je Projekt ein Repo erstellt hat. Nun ja .. so gehts.

Continue reading

Posted on

Es hat sich ausgeMAMPft. Vagrant ist. [Update]

Schon mit dem Update auf Maverick durfte ich meinen gesamten MacPort MAMP-Stack neubauen, mich wieder in die /usr/opt/irgendwas Ubuntu-fremde Pfadstruktur einarbeiten. Jetzt nach Yosemite war wieder ein Komplettupdate nötig. Da ich zunehmend seltener lokal entwickle, sollte der Stack schon irgendwie bekannten Mustern folgen, also Configs in /etc, Webkram in /var/www usw. Lokal läuft ja alles über VHosts, und eine /vhosts Verzeichnis, das sind recht viele.

Da stolpere ich über die Unterstützung von Vagrant in PHPStorm. Was ist das? Automatisch konfigurierte VirtualBoxen, extern konfigurierbar? Und das noch Quellcode-verwaltbar ohne GUI? Das ist doch bestimmt ganz schön komplex? Ja und nein. Ein Erfahrungsbericht mit Versuch und viel Irrtum.

Es gibt reichlich vorkonfigurierte Boxen bei Github und Vagrant Cloud. Ich hab mit vagrant-php-box und vagrant-percona gestartet bzw. inspirieren lassen.

Als Out-of-the-box-Lösung für PHP-Webdev-Stacks gibts mit PhPHPet eine supergeile GUI die am Ende eine Box-Konfiguration ausspuckt. Aber ich will ja ganz spezielle Boxen selber aufsetzen. (“Framework? Nö, da schreib ich mir lieber ein eigenes, muhaha”). Speziell einen Apache-PHP-Box ohne MySQL und ggf. eine MySQL-Box.

Continue reading

Posted on