Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Gitea im docker Container mit PgSQL als DB und Nginx/Lets Encrypt als Frontend einsetzen

Posted by ba stey
Cover Image

Nicht erst seit der Github-Übernahme durch Microsoft nutze ich einen privaten Server, um private Repositories und einige Kundenprojekte zu hosten. Schon länger habe ich dafür eine Gitea-Instanz im Einsatz. Wer nämlich nicht zu den großen Anbietern GitHub, Bitbucket oder GitLab möchte, hat die Möglichkeit einen eigenen Server zu betreiben.

In diesem Blogbeitrag möchte ich eine kurze Einführung in die Thematik des Git-Hostings geben, bevor ich das Setup von Gitea in einem docker-Container beschreibe.

Überall Anbieter: Welche Software für privates Git-Hosting?

Sehr bekannt und beliebt ist, ohne jeden Zweifel, GitLab. Fast schon eine Art Pionier in diesem Bereich, war GitLab Vorbild für einige Features der Folgeprojekte. Neben GitLab gibt es aber heute auch noch GitBucket (Server), Gogs und Gitea.

Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Leseempfehlung zum Thema Mailserver und Anti-Spam

Posted by ba stey
Cover Image

Ich möchte heute auf den Artikel von Thomas Leister hinweisen: Mailserver mit Dovecot, Postfix, MySQL und Rspamd unter Debian 9 Stretch. Ein toller Einstieg in die aktuelle Konfiguration eines Mailservers. Da ich selber vor kurzem meinen Mailserver zu Rspamd migriert habe, hier Rspamd direkt in das Setup aufgenommen wurde, kann ich jedem die Anleitung bzw. Rspamd empfehlen.

Beim tollen Heinlein Support gibt es für Rspamd eine tolle Einführung. Noch immer gibt es keinen englischen oder deutschen Wikipedia-Artikel zum Thema (lediglich einen französischen). Umso attraktiver ist die Dokumentation von Rspamd.

Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Mit dem Golden-Cage-Pattern sperre ich Trolls aus und schütze meine Nutzer

Posted by ba stey
Cover Image

Es wird sicher so einige Plattformbetreiber geben, die ein Problem mit gewissen Nutzern haben. Nutzer die andere Nutzer beschimpfen, den Ablauf stören oder möglichst viel Schaden verursachen möchten. In den meisten Fällen wird, wenn die Betreiber vom Verhalten erfahren, der Nutzer gesperrt. D.h. der Login ist nicht mehr möglich oder die Portalfunktionen stehen nicht mehr zur Verfügung. Die Absicht hinter einem solchen Vorgehen: Die so indentifizierten unliebsamen Nutzer sollen die Konsequenzen spüren und so auf den "richtigen Weg" gebracht werden. Aber was passiert dann? Die Nutzer erstellen sich einen neuen Account und die Probleme beginnen von vorne. Löschen der Zugänge oder deaktivieren gewisser Funktionen ist kein nachhaltiges Instrument die eigene Community zu schützen.

In diesem Post geht es um das Golden-Cage-Pattern, dass hilft die "bösen Nutzer" besser in den Griff zu bekommen.

Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Bludit ist eine tolle Alternative zu Wordpress!

Posted by ba stey
Cover Image

Vor vielen Jahren war Wordpress toll. Es war eine schlanke, in PHP-geschriebene, Software, dessen Weiterentwicklung stark durch die Community geprägt wurde. Wordpress wurde zu einer Zeit auf den Markt gebracht, in welche die Entwicklung mit PHP nur selten gewissen Paradigmen folgte. Das Pattern der Wahl war damals "dirty". Zumindest aus heutiger Sicht.

Die Nutzer-orientierte Entwicklung führte dazu, dass Wordpress heute sehr viel kann. Vom schlanken (und fixen) Script ist nicht mehr viel erhalten geblieben. Auch wenn die Entwicklung sich langsam in eine bessere Richtung gewandt hat, ist für mich Wordpress heute (2018) noch immer nicht wieder das Script der Stunde, wenn es um die Realisierung von kleinen Seiten, Single-Pages oder Portfolio-Seiten geht.

Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Symfony bietet mehrere Möglichkeiten Routes zu konfigurieren. Eine sind die Annotation.

Posted by ba stey
Cover Image

(Copyright des Bildes siehe Credits)

Ein wesentlicher Standard aktueller PHP-Applikationen ist die Möglichkeit Routes zu definieren. Routes haben damit die Variante abgelöst, die zu Beginn der 2000er Jahre zum PHP-Standarf gehörten: Das anlegen einer Vielzahl von Dateien, auf die der Nutzer Zugriff hat. Ich möchte kurz auf die Möglichkeit der Definition von Routes in Symfony mit Hilfe der Annotation-Methode eingehen.

Gitea docker-Container unter Ubuntu 18.04 mit Nginx und Lets Encrypt

Wenn patchEntity bei CakePHP keine Reaktion mehr zeigt, könnte es an der Benennung liegen!

Posted by ba stey
Cover Image

(Copyright des Bildes siehe Credits)

Gestern Abend habe ich etwas an einem Code herumgespielt. Ich habe ein neues Model erstellt - natürlich mit Table und Entity Datei. Als ich dann aber Daten in der Datenbank verändern bzw. updaten wollte, funktioniert es nicht. Die Suche hat mich verrückt werden lassen.

Das Problem war, das patchEntity keine Veränderung herbeifühte:

<?php
var_dump($data); 
$DataTable->patchEntity($data, ['active' => 2]);
var_dump($data);

erzeugte folgende Ausgabe:

object(Cake\ORM\Entity)[365]  
  public 'user_role_name' => string 'ADMIN' (length=5)
  public 'active' => int 1

object(Cake\ORM\Entity)[365]  
  public 'user_role_name' => string 'ADMIN' (length=5)
  public 'active' => int 1

Dabei war der Fehler so lächerlich simpel: Ich habe einfach aus alter Gewohnheit im Plural gearbeitet.