Files
server-infra/README.md
2025-08-03 12:50:36 +02:00

153 lines
5.3 KiB
Markdown

# 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