<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Yanis Gramitzky - Infrastructure &amp; Automation</title><link>https://ygramitzky.de/posts/</link><description>Recent content in Posts on Yanis Gramitzky - Infrastructure &amp; Automation</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 19 Mar 2026 09:00:00 +0100</lastBuildDate><atom:link href="https://ygramitzky.de/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker Compose Deep Dive: Every Option Explained</title><link>https://ygramitzky.de/posts/docker/docker_compose/</link><pubDate>Thu, 19 Mar 2026 09:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/docker_compose/</guid><description>&lt;h2 id="what-is-docker-compose"&gt;What Is Docker Compose?&lt;/h2&gt;
&lt;p&gt;Docker Compose is a tool for defining and running &lt;strong&gt;multi-container applications&lt;/strong&gt;. Instead of typing long &lt;code&gt;docker run&lt;/code&gt; commands with dozens of flags, you describe your entire stack — services, networks, volumes, secrets — in a single YAML file. One command (&lt;code&gt;docker compose up&lt;/code&gt;) brings everything to life.&lt;/p&gt;
&lt;p&gt;Compose is the standard way to run local development environments, CI pipelines, and even lightweight production workloads. Understanding its full vocabulary gives you precise control over how your containers behave.&lt;/p&gt;</description></item><item><title>SSH Hardening: Locking Down Your Remote Access</title><link>https://ygramitzky.de/posts/ssh-hardening/</link><pubDate>Thu, 19 Mar 2026 08:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/ssh-hardening/</guid><description>&lt;h2 id="why-harden-ssh"&gt;Why Harden SSH?&lt;/h2&gt;
&lt;p&gt;SSH (Secure Shell) is the backbone of remote server administration. It encrypts traffic and provides authenticated access — but out of the box, most SSH daemons ship with settings optimized for compatibility, not security.&lt;/p&gt;
&lt;p&gt;A default SSH setup is vulnerable to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Brute-force and credential stuffing attacks&lt;/strong&gt; — automated bots hammer port 22 around the clock&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weak cipher suites&lt;/strong&gt; — legacy algorithms like MD5 and arcfour can be exploited&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Root login exposure&lt;/strong&gt; — a compromised root session means total system takeover&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password-based auth&lt;/strong&gt; — passwords can be guessed, leaked, or phished&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Idle session hijacking&lt;/strong&gt; — abandoned sessions left open are an open door&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hardening SSH is one of the highest-ROI security measures you can take. It reduces your attack surface dramatically with minimal operational overhead.&lt;/p&gt;</description></item><item><title>Inventory Management - Eine CRUD-App mit realem Anwendungsbezug</title><link>https://ygramitzky.de/posts/software-development/hardware-inventory/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/software-development/hardware-inventory/</guid><description>&lt;h2 id="das-problem"&gt;Das Problem&lt;/h2&gt;
&lt;p&gt;Wer Hardwaregeräte in einem Unternehmen verwaltet, kennt die Situation: Seriennummern in Excel-Tabellen, Status in separaten Tickets, Verantwortlichkeiten per E-Mail kommuniziert. Wenn dann jemand fragt &amp;ldquo;Wo ist Gerät XY gerade?&amp;rdquo;, beginnt die Suche.&lt;/p&gt;
&lt;p&gt;Das Ziel war eine zentrale, einfache Web-Anwendung: Hardware erfassen, Status pflegen, Änderungen nachverfolgen. Kein Over-Engineering, kein Framework-Overhead – aber echte Anforderungen wie Active Directory-Authentifizierung, Audit-Logging und Bulk-Import aus Excel.&lt;/p&gt;
&lt;p&gt;Das Ergebnis ist eine CRUD-Anwendung mit realem Anwendungsbezug: &lt;a href="https://github.com/TecDevOrg/inventory-htmx-fastapi" target="_blank" rel="noopener"&gt;inventory-htmx-fastapi&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Kubernetes – Die ehrliche Perspektive</title><link>https://ygramitzky.de/posts/kubernetes/lohnt_sich_kubernetes/</link><pubDate>Sat, 11 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/kubernetes/lohnt_sich_kubernetes/</guid><description>&lt;h2 id="kubernetes-löst-echte-probleme--aber-nicht-kostenlos"&gt;Kubernetes löst echte Probleme – aber nicht kostenlos&lt;/h2&gt;
&lt;p&gt;Der vorherige Post beschreibt wo Docker an seine Grenzen stößt: Rolling Updates, Skalierung, Health Management, Konfigurationsdrift. Kubernetes hat für jedes dieser Probleme eine durchdachte Antwort. Das ist keine Marketingaussage – es stimmt technisch.&lt;/p&gt;
&lt;p&gt;Aber Kubernetes ist kein Zauberwort. Die Komplexität verschwindet nicht. Sie wird verschoben – von der Entwicklung auf die Infrastruktur. Und dieser Shift hat einen Preis.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="wie-kubernetes-die-probleme-technisch-löst"&gt;Wie Kubernetes die Probleme technisch löst&lt;/h2&gt;
&lt;h3 id="rolling-updates--deklarativ-statt-manuell"&gt;Rolling Updates – deklarativ statt manuell&lt;/h3&gt;
&lt;p&gt;In Kubernetes beschreibt man nicht wie ein Update passiert, sondern was das Ergebnis sein soll:&lt;/p&gt;</description></item><item><title>Wo Docker an seine Grenzen stößt</title><link>https://ygramitzky.de/posts/docker-basics/usecase/</link><pubDate>Fri, 10 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker-basics/usecase/</guid><description>&lt;h2 id="docker-ist-kein-orchestrator"&gt;Docker ist kein Orchestrator&lt;/h2&gt;
&lt;p&gt;Docker ist eines der nützlichsten Werkzeuge der modernen Softwareentwicklung. Container starten, isolieren, verwalten – das macht Docker hervorragend. Die anderen Posts in dieser Reihe zeigen wie viel sich damit aufbauen lässt: Mailserver, Monitoring, Reverse Proxy, VPN-Anbindung.&lt;/p&gt;
&lt;p&gt;Aber Docker ist, beim besten Willen, &lt;strong&gt;kein Orchestrator&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Was bedeutet das? Ein Orchestrator kennt den gewünschten Zustand eines Systems und sorgt kontinuierlich dafür, dass die Realität mit diesem Zustand übereinstimmt. Docker startet Container. Was danach passiert – ob sie laufen, ob sie skalieren, ob sie auf den richtigen Hosts landen – liegt in der Hand des Administrators.&lt;/p&gt;</description></item><item><title>Grafana &amp; Prometheus – Monitoring Stack für Docker und Proxmox</title><link>https://ygramitzky.de/posts/docker/grafana-monitoring/</link><pubDate>Thu, 09 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/grafana-monitoring/</guid><description>&lt;h2 id="wie-spielen-die-akteure-zusammen"&gt;Wie spielen die Akteure zusammen?&lt;/h2&gt;
&lt;p&gt;Monitoring in diesem Stack basiert auf einem klaren Pull-Prinzip: Prometheus fragt aktiv bei den Datenquellen an – nicht umgekehrt. Jede Komponente hat eine klar definierte Rolle.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────────┐
│ monitoring network │
│ │
│ ┌──────────────┐ scrape ┌─────────────────────────┐ │
│ │ Prometheus │◄────────────────│ cAdvisor :8080 │ │
│ │ :9090 │◄────────────────│ pve-exporter :9221 │ │
│ │ │◄────────────────│ traefik :8899 │ │
│ │ │◄────────────────│ prometheus :9090 │ │
│ └──────┬───────┘ └─────────────────────────┘ │
│ │ query (PromQL) │
│ ┌──────▼───────┐ ┌─────────────────────────┐ │
│ │ Grafana │ │ Redis │ │
│ │ :3000 │ │ (cAdvisor session) │ │
│ └──────────────┘ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
│ proxy network
┌────▼─────┐
│ Traefik │ → grafana.example.com (Authentik-geschützt)
└──────────┘
Außerhalb des monitoring network:
┌─────────────────────────────────┐
│ Proxmox VE 192.168.100.21 │
│ pve-exporter liest PVE API │
└─────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Prometheus&lt;/strong&gt; ist die Zentrale. Es scraped alle Datenquellen in regelmäßigen Intervallen, speichert die Zeitreihendaten in seiner eigenen TSDB und beantwortet PromQL-Abfragen von Grafana.&lt;/p&gt;</description></item><item><title>Docker Netzwerke – Verstehen und richtig einsetzen</title><link>https://ygramitzky.de/posts/docker-basics/network/</link><pubDate>Wed, 08 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker-basics/network/</guid><description>&lt;h2 id="treiber-übersicht"&gt;Treiber-Übersicht&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Treiber&lt;/th&gt;
&lt;th&gt;Isolation&lt;/th&gt;
&lt;th&gt;Container-DNS&lt;/th&gt;
&lt;th&gt;LAN-sichtbar&lt;/th&gt;
&lt;th&gt;Einsatz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bridge&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ (user-def)&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Standard, Multi-Container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Performance, Monitoring-Agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;none&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅✅&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Batch, sicherheitskritische Prozesse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;macvlan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ eigene MAC&lt;/td&gt;
&lt;td&gt;LAN-Integration, Pi-hole&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ipvlan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ geteilte MAC&lt;/td&gt;
&lt;td&gt;Managed Switches, RZ&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;Standard-Bridge: Container per Name &lt;strong&gt;nicht&lt;/strong&gt; auflösbar. User-defined Bridge: DNS funktioniert.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="bridge"&gt;Bridge&lt;/h2&gt;
&lt;p&gt;Bridge ist der Standard-Treiber. Jedes user-defined Bridge-Netzwerk ist ein isoliertes virtuelles Netzwerk auf dem Host – Container im selben Netzwerk können sich per Name finden, Container in anderen Netzwerken nicht.&lt;/p&gt;</description></item><item><title>Gluetun – Container sicher über VPN anbinden</title><link>https://ygramitzky.de/posts/docker/gluten-vpn/</link><pubDate>Tue, 07 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/gluten-vpn/</guid><description>&lt;h2 id="container-im-rechenzentrum--sicher-erreichbar"&gt;Container im Rechenzentrum – sicher erreichbar&lt;/h2&gt;
&lt;p&gt;Eine Applikation läuft im Rechenzentrum. Sie enthält sensible Daten: Kundendaten, interne Systeme, Produktionsdatenbanken. Direkt über das öffentliche Internet erreichbar zu sein ist keine Option – zu groß das Angriffspotential, zu hoch die Compliance-Anforderungen.&lt;/p&gt;
&lt;p&gt;Die klassische Lösung: ein VPN-Tunnel zwischen dem Rechenzentrum und dem eigenen Netzwerk. Jede Verbindung zu den Applikationen läuft verschlüsselt durch diesen Tunnel – von außen ist nichts sichtbar, kein Port offen, keine Angriffsfläche.&lt;/p&gt;</description></item><item><title>Beszel – Leichtgewichtiges Server-Monitoring für den Homelab</title><link>https://ygramitzky.de/posts/docker/breszel/</link><pubDate>Mon, 06 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/breszel/</guid><description>&lt;h2 id="server-im-blick-behalten--ohne-overhead"&gt;Server im Blick behalten – ohne Overhead&lt;/h2&gt;
&lt;p&gt;Grafana, Prometheus, Netdata alle leistungsfähig, alle aufwendig. Wer einfach wissen möchte ob ein Server noch läuft, wie viel RAM ein Container verbraucht und eine E-Mail bekommt wenn die Disk voll wird, braucht keinen Monitoring-Stack mit stundenlanger Konfiguration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Beszel&lt;/strong&gt; ist ein Open-Source-Monitoring-Tool, geschrieben in Go, mit einem schlanken PocketBase-Dashboard. Der Agent benötigt nur 6 MB RAM, der Hub etwa 23 MB – ein Bruchteil dessen, was Netdata oder ein Prometheus-Stack verbrauchen.&lt;/p&gt;</description></item><item><title>Traefik – Der Reverse Proxy für Docker</title><link>https://ygramitzky.de/posts/docker/traefik/</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/traefik/</guid><description>&lt;h2 id="das-problem-mit-vielen-diensten-auf-einem-server"&gt;Das Problem mit vielen Diensten auf einem Server&lt;/h2&gt;
&lt;p&gt;Ein Server, viele Dienste. Immich auf Port 2283, Portainer auf 9443, Mailcow auf 8030, Stirling-PDF auf 8088. Jeder Dienst hat seinen eigenen Port – und der Nutzer muss sich alle merken, Zertifikate manuell verwalten und Ports in der Firewall freigeben.&lt;/p&gt;
&lt;p&gt;Das skaliert nicht. Die Lösung ist ein &lt;strong&gt;Reverse Proxy&lt;/strong&gt; – ein vorgelagerter Dienst, der eingehende Anfragen anhand der Domain auf den richtigen Container weiterleitet. Nur Port 80 und 443 müssen offen sein. Alle anderen Ports bleiben intern.&lt;/p&gt;</description></item><item><title>Portainer – Docker mit einer Weboberfläche verwalten</title><link>https://ygramitzky.de/posts/docker/portainer/</link><pubDate>Sat, 04 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/portainer/</guid><description>&lt;h2 id="docker-auf-der-kommandozeile--und-eine-alternative"&gt;Docker auf der Kommandozeile – und eine Alternative&lt;/h2&gt;
&lt;p&gt;Wer Docker im Alltag betreibt, kennt die üblichen Befehle: &lt;code&gt;docker ps&lt;/code&gt;, &lt;code&gt;docker logs&lt;/code&gt;, &lt;code&gt;docker compose up&lt;/code&gt;. Das funktioniert – ist aber nicht immer komfortabel, besonders wenn mehrere Container, Volumes und Netzwerke gleichzeitig im Blick behalten werden müssen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Portainer&lt;/strong&gt; ist eine Web-Oberfläche für Docker. Container starten, stoppen, Logs lesen, Images verwalten, Volumes inspizieren – alles im Browser, ohne Terminal.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Niveau:&lt;/strong&gt; Einsteigerfreundlich. Ein laufender Docker-Host wird vorausgesetzt.&lt;/p&gt;</description></item><item><title>Immich – Selbstgehostete Fotoverwaltung als Google Photos Alternative</title><link>https://ygramitzky.de/posts/docker/immich/</link><pubDate>Thu, 02 Jan 2025 00:00:00 +0100</pubDate><guid>https://ygramitzky.de/posts/docker/immich/</guid><description>&lt;h2 id="wem-gehören-die-eigenen-fotos"&gt;Wem gehören die eigenen Fotos?&lt;/h2&gt;
&lt;p&gt;Google Photos, iCloud, Amazon Photos – sie alle bieten bequemen Speicher, smarte Suche und automatische Sortierung. Der Preis dafür ist nur selten in Euro. Meistens zahlt man mit Daten, mit Abhängigkeit, mit dem stillen Einverständnis, dass ein Konzern die eigenen Erinnerungen verwaltet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Immich&lt;/strong&gt; ist die Antwort darauf – eine selbstgehostete Foto- und Video-Bibliothek, die sich anfühlt wie Google Photos, aber auf dem eigenen Server läuft.&lt;/p&gt;</description></item><item><title>contentsample</title><link>https://ygramitzky.de/posts/category/unterordner/contentsampel/</link><pubDate>Mon, 08 Jun 2020 08:06:25 +0600</pubDate><guid>https://ygramitzky.de/posts/category/unterordner/contentsampel/</guid><description>&lt;p&gt;This sample post tests the followings and is amazing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Category, sub-category nesting in the sidebar.&lt;/li&gt;
&lt;li&gt;Hero image and other images are in &lt;code&gt;images&lt;/code&gt; folder inside this post directory.&lt;/li&gt;
&lt;li&gt;Different media rendering like image, tweet, YouTube video, Vimeo video etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="image-sample"&gt;Image Sample&lt;/h3&gt;
&lt;img src="https://ygramitzky.de/posts/category/sub-category/rich-content/images/forest.jpg"
alt="Forest"
class="center"
&gt;
&lt;div style="margin-top: rem;"&gt;&lt;/div&gt;
&lt;h3 id="tweet-sample"&gt;Tweet Sample&lt;/h3&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Owl bet you&amp;#39;ll lose this staring contest 🦉 &lt;a href="https://t.co/eJh4f2zncC"&gt;pic.twitter.com/eJh4f2zncC&lt;/a&gt;&lt;/p&gt;&amp;mdash; San Diego Zoo Wildlife Alliance (@sandiegozoo) &lt;a href="https://twitter.com/sandiegozoo/status/1453110110599868418?ref_src=twsrc%5Etfw"&gt;October 26, 2021&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;div style="margin-top: rem;"&gt;&lt;/div&gt;
&lt;h3 id="youtube-video-sample"&gt;YouTube Video Sample&lt;/h3&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZJthWmvUzzc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="margin-top: rem;"&gt;&lt;/div&gt;
&lt;h3 id="vimeo-video-sample"&gt;Vimeo Video Sample&lt;/h3&gt;
&lt;div
style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe
src="https://player.vimeo.com/video/48912912?dnt=0"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allow="fullscreen"&gt;
&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Stirling-PDF – Ein vollständiges PDF-Werkzeug, selbst gehostet</title><link>https://ygramitzky.de/posts/docker/stirlingpdf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ygramitzky.de/posts/docker/stirlingpdf/</guid><description>&lt;h2 id="das-problem-mit-pdf-tools"&gt;Das Problem mit PDF-Tools&lt;/h2&gt;
&lt;p&gt;Das Internet ist voll von PDF-Tools – und fast alle haben einen Haken. Zwei PDFs zusammenfügen? Kreditkarte hinterlegen. Eine Seite drehen? Nur mit Wasserzeichen. Text aus einem Scan extrahieren? Premium-Funktion.&lt;/p&gt;
&lt;p&gt;Neben den Kosten gibt es ein weiteres Problem: Die Dokumente landen auf fremden Servern. Gehaltsabrechnungen, Verträge, Arztbriefe – einfach hochgeladen, weil es gerade praktisch war.&lt;/p&gt;
&lt;p&gt;Stirling-PDF löst beides.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="was-ist-stirling-pdf"&gt;Was ist Stirling-PDF?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Stirling-PDF&lt;/strong&gt; ist eine selbstgehostete Web-Anwendung mit über 50 PDF-Funktionen. Alles läuft lokal, in einem einzigen Docker-Container, ohne Cloud-Anbindung:&lt;/p&gt;</description></item><item><title>Mailcow – Ein vollständiger Mailserver auf eigenem Docker-Host</title><link>https://ygramitzky.de/posts/docker/mailcow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ygramitzky.de/posts/docker/mailcow/</guid><description>&lt;h2 id="warum-ein-eigener-mailserver"&gt;Warum ein eigener Mailserver?&lt;/h2&gt;
&lt;p&gt;E-Mail ist die älteste und verlässlichste digitale Kommunikationsform – und gleichzeitig die am stärksten zentralisierte. Google, Microsoft und ein Handvoll weiterer Anbieter verarbeiten den Großteil des globalen E-Mail-Verkehrs. Wer seine eigene Domain betreibt, gibt die Kontrolle über das Herzstück seiner digitalen Identität meist trotzdem ab.&lt;/p&gt;
&lt;p&gt;Mailcow ändert das. Ein vollständiger Mailserver mit Webmail, Kalender, Kontakten, Spamfilter, Virenschutz und Zwei-Faktor-Authentifizierung – containerisiert, wartbar, erweiterbar.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Niveau:&lt;/strong&gt; Fortgeschritten. Grundkenntnisse in Docker, DNS und Linux werden vorausgesetzt. Ein Mailserver ist kein Lernprojekt für den Einstieg – Fehlkonfigurationen haben direkte Auswirkungen auf Zustellbarkeit und Sicherheit.&lt;/p&gt;</description></item><item><title>Sub-Category</title><link>https://ygramitzky.de/posts/category/unterordner/_index.bn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ygramitzky.de/posts/category/unterordner/_index.bn/</guid><description/></item><item><title>পোস্ট সমূহ</title><link>https://ygramitzky.de/posts/_index.bn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ygramitzky.de/posts/_index.bn/</guid><description/></item></channel></rss>