Seit heute laufen die meisten meiner Homepages als Docker-Container mit Traefik als Reserve-Proxy. Es war teilweise ein sehr harter Kampf mit vielen kleinen Fehlern. Wenn man sauber von vorne anfängt sollten weniger Fehler auftreten.
Was man beachten sollte:
- Images müssen Port 80 exposen
- HTTPS-Umleitungen aus htaccess-Dateien entfernen (Traefik kümmert sich darum)
- Datenbanken über Adminer oder PHPMyAdmin initialisieren und nicht über init-Scripte
- Man braucht ein eigenes Netzwerk in Docker wie "web"
- traefik.frontend.rule und traefik.enable reichen als Tags
- man macht vieles ungesichert während des Setups, dass muss man später alles wieder absichern (die Traefik-UI/API!)
- Immer Versionen für die Images angeben und nie LATEST (sonst hat man plötzlich neue Probleme)
Ich habe noch Traefik 1.7 laufen, aber das funktioniert so weit sehr gut und es gibt viele Hilfen. Für 2.0 gibt noch nicht so viele Hilfen und Beispiele. Für jeden Container habe ich auch ein eigenes Dockerfile, damit man da kleine Modifikationen an den Images machen (auch wenn es nur mal zum Testen ist).
Emails laufen nun alle über poste.io der unabhängig von Traefik läuft und einen eigenen Port für die Web-UI nutzt. Das Setup ging schneller und läuft schon seit einigen Wochen extrem stabil und filtert Spam sehr viel besser als meine vorherige selbst gebaute Lösung.
Nicht jeder will für Clouddienste wie OneDrive oder Dropbox bezahlen oder hat eine so schnelle Internet Anbindung (im Upload) um sich mit einem QNAP-NAS eine eigene Lösung zu basteln. Auch sind Dropbox und OneDrive sehr eingeschränkt und erlauben kaum etwas außen dem Austausch von Dateien. Gerade als Firma oder Familie möchte man aber nicht nur Dateien tauschen, sondern auch Termine, Kontakte und Kanban-Boards teilen. Auch ist es sehr praktisch wenn man hochgeladene Text- oder Spreadsheet-Dateien direkt bearbeiten kann. Emails sind dann noch das letzte um eine wirklich vollständige Cloudlösung auch für Teams zu haben.
Wenn etwas Webspace oder einen Webserver hat, kann sich dafür einfach Nextcloud installieren. Die Collabora-Office-Integration habe ich nicht zum Laufen bekommen, aber dafür das App-Bundle für Groupware-Lösungen. Ich finde es Lösungen wie Tine 2.0 oder eGroupware überlegen und bedient sich auch einfach moderner.
Gerade für kleine Firmen eine gute Alternative zu Office365, einem QNAP-NAS (mit DynDNS oder VPN) und anderen zu bezahlenden Lösungen.
Oft will man ja beim Speichern von Dateien flexibel bleiben. Beim Entwickeln lokal speichern, im Produktivsystem in S3 und auf einem alten Test-System vielleicht noch auf einem FTP-Server oder in Redis.
Jeder hat schon mal so was geschrieben um wenigstens das native Filesystem und FTP zu abstrahieren, weil der FTP-Server nur vom produktiven System aus zu erreichen war oder so. Mein PHP Framework hat auch solche Klassen. Aber ich hatte keine Lust mehr diese noch mal anzupassen und eine brauchbare Struktur mit Factory und Interfaces dort endlich mal zu implementieren... was die Klassen (2006 geschrieben) an sich dringend nötig hätten.
Deswegen habe ich mich einige Sekunden im Internet umgeguckt und Flysystem gefunden. Das kann natives FS, FTP, S3, Redis, OneDrive, Azure File Storage.... also alles was man so braucht.
Ich habe es mal mit S3 getestet. Natürlich müsste man sich erst einmal eine brauchbare Factory schreiben, aber da kann man sicher in seinem System auf die alten Strukturen zurück greifen und muss dann nicht alles umbauen, wenn man auf Flysystem wechselt.
Amazon S3 ist ein einfacher Key-Value Store, wo man auch sehr große Daten unterbringen kann. Gerade wenn man Dateien nicht auf dem selben Server speichern möchte oder ein Cluster betreiben will, ist S3 eine gute Alternative zu FTP oder NFS-Laufwerken. Der Server ist über HTTP zu erreichen und es gibt für alle möglichen Sprachen Clients. Eine S3 kompatible Implementierung ist MinIO. Ich hab hier ein kleines Beispiel gebaut, wo ich ein Bild hochlade und wieder downloade und danach alles auch wieder aufräume. Metadata habe ich auch genutzt. Wenn man komplexere Anwendungen hat wird man wohl eher nicht SaveAs verwenden sondern den mitgelieferten Stream aus dem Array verwenden.
Das Minio Docker-Image:
sudo docker pull minio/minio
sudo docker run -p 9080:9000 -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" minio/minio server /data
Ich benutze Linux jetzt seit über einem halben Jahr bei der Arbeit und auch privat läuft auf einem Notebook Linux. Meine letzten Entwicklungen mit PHP und Java habe ich so entwickelt, dass sie sowohl unter Windows als auch unter funktionieren. Java und PHP machen es auch mehr als einfach, wenn man nicht auf irgendwelche DLLs angewiesen ist. Die RFID-Reader werden über Ethernet angesprochen und zum Glück gibt es beide SDKs nativ für Java.
Für Windows spricht eigentlich nur noch die Adobe Software. In allen anderen Fällen gibt es kaum einen Unterschied mehr. Das sehe wohl nicht nur ich so sondern fast alle. Linux Software wie Openshot 2.0 gibt es jetzt auch für Windows. Microsoft bringt den SQL-Server und jetzt auch die PowerShell für Linux raus. Die Bash gibt es ja auch für Windows.
Und seit es Windows 10 nicht mehr kostenlos gibt, ist der Vorteil von Linux, dass es kostenlos ist, wieder bedeutender geworden. Bei Entwicklern hat man den Vorteil, dass diese sowie so lieber ihre Rechner selbst Administrieren wollen und somit keine weiteren Kosten entstehen durch höheren Administrationsbedarf bei den Benutzern.
Aber auch bei den normalen Benutzern sollte Linux eigentlich eine gute Alternative sein. Die meisten Anwendungen wandern oder sind schon in der Cloud und damit reduziert sich das Betriebssystem schon fast auf einen Luncher für den Webbrowser. Firefox/Chrome und Thunderbird sind auf Windows sowie schon sehr verbreitet und somit ist eine Umgewöhnung fast nicht mehr nötig. Linux Mint sieht fast genau so aus wie ein Windowssystem und das Updaten der Software ist sehr viel zentraler und einfacher zu managen.
Linux ist wie auch Windows 10 sehr sparsam was die Hardware-Resourcen betrifft. Ein altes Notebook mit Pentium Dual-Core und 2GB RAM läuft mit Linux sehr gut und auch Probleme wegen veralteter Windows-Treiber sind gelöst.
Mit gebrauchter Hardware und Linux Mint sollte sich eine komplette IT-Infrastruktur für kleine Büros bauen lassen. Alte aber wieder aufbereitete Hardware ist günstig zu bekommen und Geräte von HP oder Dell auch oft in entsprechenden Stückzahlen an gleichen Geräten, so das man ein paar mehr Geräte kaufen kann, um bei Hardwareausfall gleich Ersatz zur Hand zu haben. Man kann ein Installationsimage erstellen und so Installationen in wenigen Minuten durchführen. Die Kosten sollten sich damit auf vielleicht 40% der Kosten von Neugeräten belaufen und für Internet, Email und Office reicht die Hardware immer noch mehr als aus. Die Leistung eines 10 Jahre alten PCs ist heute immer noch ausreichend. Ich habe meinen PC von 2006 nur gewechselt, weil HyperV darauf nicht lief.. was ich aber trotz neuen PC immer noch nicht verwende und einfach bei VirtualBox geblieben
bin.
Bei VirtualBox wären wir auch schon beim nächsten Punkt: Virtualisierte Server. Ein gebrauchter Server ist nicht teuer und wenn man die Server an sich in VMs laufen lässt, kann man auch immer mal schnell auf einen größeren Server upgraden ohne längere Ausfallzeiten der Systeme zu haben. Bei guter Planung sollte so ein Umzug auf einen neuen Server in 10 Minuten durch geführt sein. Für die meisten Server-Anwendungen braucht man nur eine einfache LAMP-Umgebung. Groupware wie Tine 2.0 bieten Email-Client, Kalender, Adressbuch und alles mögliche und lassen sich auch mit dem Smartphone nutzen. Wer komplette Office-Umgebungen wie Office 365 braucht findet bei OwnCloud und LibreOffice eine Alternative, die leider etwas kostet aber noch relativ günstig ist.
Aber genau wie auch bei Windowsumgebungen und neuer Hardware braucht man jemanden der alles einrichtet und installiert. Wer glaubt diese Kosten mit Windows umgehen zu können, wird sich schnell wundern. Deswegen würde ich keine höheren Administrationskosten bei Linux sehen im Vergleich zu Windows.
Deswegen auch nicht einfach alte Hardware in den Müll werfen! Mit Linux kann die Hardware noch einige Jahre gut weiter verwendet werden und man spart nicht nur sich Kosten sondern schon auch etwas die Umwelt damit. Wer es noch nicht versucht hat, sollte Linux mal eine Chance geben. Ich werde jedenfalls mal Collabora testen. Es wäre sicher eine Lösung, die gerade kleineren Firmen viele Kosten sparen kann.
Die erste Komponente für den 100 Euro Office Server ist schon angekommen. Die CPU hat 7 Euro gekostet. Der wird nur aus gebrauchten Teilen bestehen.. ich werde berichten.
Blog-entries by search-pattern/Tags:
Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?