# KMU Server Infrastructure (On-Premise) Dieses Repository verwaltet die komplette Infrastruktur-Konfiguration und -Dokumentation für die KMU-Organisation. Dieses Muster geht davon aus, dass ein **Headless-Server**, also ein (Mini-)PC ohne eigenen Bildschirm, Tastatur und Maus, in einem *Home-Office-LAN* betrieben wird. Dies ist die zentrale Stütze für das **Unternehmen** (***KMU*** - **K**leine und **M**ittlere **U**nternehmen), das seinen Betrieb weitestgehend **autark** und **On-Premise** betreibt. Weil es so gut passt, nutzen wir den Namen ***KMU***, bei den Namen in unserem Muster-Aufbau. Lediglich der unvermeidbare **Internet-Anschluss** schafft Abhängigkeit vom *Internet Service Provider* (**ISP**) und es wird üblicherweise ein Router als Zugangspunkt verwendet. In den Mustern gehen wir von einer **AVM Fritz!Box** aus, die wir für den Übergang zum Internet nutzen. ``` ⚠️ Wir sind im Aufbau. Also, ist diese Arbeit im Moment noch nicht als abgeschlossen zu betrachten. 🔄 ``` ## 📋 Übersicht Das `server-infra` Repository dient als zentrale Verwaltungseinheit für: * Server-Konfigurationsdateien * Automatisierungs- und Deployment-Skripte * Infrastruktur-Dokumentation * Service-Konfigurationen * Systemd-Units und Service-Definitionen ## 🏗️ Repository-Struktur ``` server-infra/ ├── README.md # Diese Datei ├── docs/ # Dokumentation │ ├── architecture.md # System-Architektur │ ├── network-layout.md # Netzwerk-Konfiguration │ ├── installation.md # Installationsanleitungen │ └── maintenance.md # Wartungshandbuch ├── scripts/ # Automatisierungs-Skripte │ ├── backup/ # Backup-Skripte │ ├── deployment/ # Deployment-Automatisierung │ ├── monitoring/ # Überwachungs-Skripte │ └── maintenance/ # Wartungs-Skripte ├── configs/ # Service-Konfigurationen │ ├── gitea/ # Gitea-Konfiguration │ ├── caddy/ # Caddy-Konfiguration │ ├── nginx/ # Nginx-Konfiguration (optional|alternativ) │ ├── postgresql/ # PostgreSQL-Konfiguration │ └── ssl/ # SSL/TLS-Zertifikate (ohne Private Keys) ├── systemd/ # Systemd-Service-Units │ └── services/ # Custom Service-Definitionen ├── ansible/ # Ansible-Playbooks (optional) │ ├── playbooks/ # Ansible-Playbooks │ ├── roles/ # Ansible-Rollen │ └── inventory/ # Inventory-Dateien └── .gitignore # Git-Ignore-Regeln ``` ## 🚀 Erste Schritte ### 1. Repository klonen ```bash git clone https://git.gitcover.de/KMU/server-infra.git cd server-infra ``` ### 2. Dokumentation lesen Beginnen Sie mit der Dokumentation im `docs/` Verzeichnis: * **architecture.md**: System-Übersicht und Komponenten * **installation.md**: Schritt-für-Schritt Installationsanleitung * **maintenance.md**: Wartungs- und Update-Prozeduren ### 3. Skripte verwenden Alle Automatisierungs-Skripte befinden sich im `scripts/` Verzeichnis und sind nach Kategorien organisiert. ## 🔧 Server-Spezifikationen * **Betriebssystem**: Ubuntu Server LTS (neueste Version) * **Git-Server**: Gitea * **Webserver**: Nginx * **Datenbank**: PostgreSQL * **Backup-Strategie**: Automatisierte tägliche Backups ## ⚠️ Sicherheitshinweise **WICHTIG**: Dieses Repository enthält KEINE sensiblen Daten wie: * Private SSH-Schlüssel * Passwörter oder API-Keys * Private SSL-Zertifikate * Datenbank-Credentials Sensible Daten werden über Umgebungsvariablen oder externe Secret-Management-Systeme verwaltet. ## 📚 Dokumentations-Index | Dokument | Beschreibung | |----------|-------------| | [Architecture](docs/architecture.md) | System-Architektur und Komponenten-Übersicht | | [Network Layout](docs/network-layout.md) | Netzwerk-Konfiguration und Firewall-Regeln | | [Installation Guide](docs/installation.md) | Komplette Installationsanleitung | | [Maintenance Manual](docs/maintenance.md) | Wartung, Updates und Troubleshooting | ## 🔄 Workflow und Versionierung ### Branch-Strategie * **main**: Produktive Konfiguration (nur getestete Änderungen) * **development**: Entwicklungs- und Test-Konfigurationen * **feature/\[name]**: Feature-Branches für größere Änderungen ### Commit-Konventionen ``` [Typ]: Kurze Beschreibung Typen: - feat: Neue Funktionalität oder Konfiguration - fix: Fehlerbehebung - docs: Dokumentations-Änderungen - config: Konfigurationsanpassungen - script: Skript-Änderungen oder -Ergänzungen ``` ## 🤝 Beitragen 1. **Branch erstellen**: `git checkout -b feature/neue-funktion` 2. **Änderungen committen**: `git commit -m "feat: Neue Konfiguration hinzugefügt"` 3. **Push**: `git push origin feature/neue-funktion` 4. **Pull Request erstellen** über die Gitea-Weboberfläche ## 📞 Kontakt und Support * **Repository**: https://git.gitcover.de/KMU/server-infra * **Organisation**: KMU * **Maintainer**: \[Ihr Name] ## 📄 Lizenz Dieses Repository enthält interne Infrastruktur-Konfigurationen der KMU-Organisation. Nicht für externe Verwendung bestimmt. --- **Letzte Aktualisierung**: $(date +"%Y-%m-%d") **Version**: 0.1.0