🤝 Contributing to Crumbforest Deployment

Danke dass du dich für Crumbforest interessierst! 💚

Wir freuen uns über alle Beiträge - egal ob du Anfänger oder Experte bist!


🌱 Für Einsteiger

Erste Mal bei Open Source? Kein Problem!

  • Lies die README um das Projekt zu verstehen
  • Schau dir Issues an
  • Label good first issue sind perfekt zum Starten
  • Frag bei Unklarheiten - wir helfen gerne!

Ideen aber nicht sicher wo anfangen?
- Tippfehler in Docs korrigieren
- Unklare Abschnitte verbessern
- Beispiele hinzufügen
- Screenshots erstellen


🐛 Bug Reports

Bug gefunden? Bitte öffne ein Issue mit:

Template:

**Beschreibung**
Kurze Beschreibung was nicht funktioniert

**Zu reproduzieren**
Schritte um den Fehler zu reproduzieren:
1. Gehe zu '...'
2. Führe aus '...'
3. Siehe Fehler

**Erwartetes Verhalten**
Was sollte passieren?

**Aktuelles Verhalten**
Was passiert stattdessen?

**Screenshots**
Falls relevant

**Umgebung**
- OS: [z.B. Ubuntu 22.04]
- Nginx Version: [z.B. 1.18.0]
- Browser: [falls relevant]

**Zusätzliche Infos**
Alles weitere was helfen könnte

💡 Feature Requests

Idee für eine Verbesserung? Super!

Template:

**Problem das gelöst werden soll**
Welches Problem adressiert dieser Feature Request?

**Vorgeschlagene Lösung**
Wie könnte das Problem gelöst werden?

**Alternativen**
Andere Lösungsansätze die du in Betracht gezogen hast?

**Zusätzlicher Kontext**
Screenshots, Beispiele, etc.

🔧 Pull Requests

Bevor du startest:

  1. Check Issues - Gibt es schon ein Issue dazu?
  2. Diskutiere - Bei größeren Änderungen erst ein Issue öffnen
  3. Fork - Fork das Repo auf deinen Account
  4. Branch - Erstelle einen Feature-Branch

Workflow:

# 1. Fork das Repo (via GitHub UI)

# 2. Clone deinen Fork
git clone https://github.com/DEIN-USERNAME/crumbforest-deployment.git
cd crumbforest-deployment

# 3. Erstelle Branch
git checkout -b feature/meine-verbesserung
# oder
git checkout -b bugfix/fehler-beschreibung

# 4. Mache deine Änderungen
# ...

# 5. Teste!
# - Funktioniert der Code?
# - Sind Docs aktualisiert?
# - Sind Beispiele korrekt?

# 6. Commit
git add .
git commit -m "Klare Beschreibung der Änderung"

# 7. Push
git push origin feature/meine-verbesserung

# 8. Erstelle Pull Request (via GitHub UI)

Pull Request Checklist:

  • [ ] Branch ist aktuell mit main
  • [ ] Tests laufen durch (falls relevant)
  • [ ] Docs sind aktualisiert (falls relevant)
  • [ ] Commit Messages sind klar und beschreibend
  • [ ] Code folgt Style des restlichen Projekts
  • [ ] Keine sensiblen Daten (Passwörter, Keys, etc.)

Commit Message Format:

Gut:

Fix: Nginx config syntax error in qdrant.conf
Add: Documentation for SSL certificate renewal
Update: README with new installation steps

Weniger gut:

fix stuff
update
asdf

📝 Dokumentation

Docs verbessern ist super wertvoll!

Was kannst du tun:

  • Tippfehler korrigieren
  • Unklare Abschnitte umschreiben
  • Fehlende Infos hinzufügen
  • Beispiele ergänzen
  • Screenshots erstellen
  • Videos/GIFs für komplexe Schritte

Style Guide:

  • Einfache Sprache - Als würdest du einem Freund erklären
  • Beispiele - Zeig konkrete Commands
  • Struktur - Nutze Headers, Lists, Code-Blocks
  • Emojis - Machen Docs freundlicher (aber nicht übertreiben)
  • Links - Verlinke zu relevanten Docs

Beispiel:

Schlecht:

Nginx must be configured properly

Gut:

### Nginx konfigurieren

1. Öffne die Config:
   ```bash
   nano /etc/nginx/sites-available/crumbforest.conf
   ```

2. Ändere `server_name`:
   ```nginx
   server_name crumbforest.deine-domain.de;
   ```

3. Teste die Config:
   ```bash
   nginx -t
   ```

🧪 Testing

Tests sind wichtig!

Was testen:

  • [ ] Script läuft ohne Fehler
  • [ ] Nginx Config ist valid (nginx -t)
  • [ ] SSL-Certs werden erstellt
  • [ ] Auth funktioniert
  • [ ] Rollback funktioniert

Test-Umgebungen:

Lokal testen:
- VM (VirtualBox, VMware)
- Docker Container
- Vagrant

Cloud testen:
- Hetzner Cloud (günstig, ~5€/Monat)
- DigitalOcean Droplets
- AWS Free Tier

Wichtig: Teste auf frischem System, nicht nur auf deinem!


💬 Code Style

Bash Scripts:

#!/bin/bash
# Script beschreibung

set -e  # Stoppe bei Fehler

# Variablen in UPPERCASE
BACKUP_DIR="/root/backup"

# Funktionen in lowercase
create_backup() {
    echo "Erstelle Backup..."
    # ...
}

# Kommentare wo nötig
# Lösche alte Backups
find /root/nginx-backup-* -mtime +30 -delete

Nginx Configs:

# Kommentare für Struktur
# ============================================
# 1) Crumbforest App
# ============================================

server {
    # Einrückung: 4 Spaces
    listen 443 ssl http2;

    # Gruppiere zusammengehörige Settings
    ssl_certificate /path/to/cert;
    ssl_certificate_key /path/to/key;

    # Kommentiere komplexe Blocks
    location / {
        # Proxy an Backend
        proxy_pass http://backend;
    }
}

Markdown Docs:

# H1 für Haupttitel

## H2 für Sections

### H3 für Sub-Sections

- Listen für Aufzählungen
- Nutze Checkboxen für Checklists

**Bold** für Wichtiges
`code` für Commands/Pfade

```bash
# Code-Blocks mit Syntax-Highlighting

```


🏷️ Labels

Wir nutzen Labels um Issues zu organisieren:

  • bug - Etwas funktioniert nicht
  • enhancement - Neue Feature-Idee
  • documentation - Docs verbessern
  • good first issue - Gut für Einsteiger
  • help wanted - Wir brauchen Hilfe!
  • question - Frage/Diskussion

🔍 Review Process

  1. Pull Request wird erstellt
  2. Maintainer prüft den PR
  3. Feedback wird gegeben (falls nötig)
  4. Änderungen werden gemacht
  5. Merge wenn alles OK!

Geduld: Reviews können ein paar Tage dauern.


🌟 Anerkennung

Alle Contributors werden in:
- CONTRIBUTORS.md
- GitHub Contributors-Liste
- Release Notes (bei größeren Beiträgen)

Du machst Crumbforest besser! 🎉


📜 Code of Conduct

Sei nett und respektvoll! 💚

  • ✅ Hilfsbereit und freundlich
  • ✅ Konstruktives Feedback
  • ✅ Geduldig mit Anfängern
  • ✅ Offen für verschiedene Meinungen

  • ❌ Keine Beleidigungen

  • ❌ Kein Spam
  • ❌ Keine Diskriminierung

Probleme? Kontaktiere Maintainer.


📞 Kontakt


🎓 Ressourcen

Neu bei Git/GitHub?
- GitHub Hello World
- Git Tutorial
- Markdown Guide

Nginx lernen:
- Nginx Beginner's Guide
- DigitalOcean Nginx Tutorials


🙏 Danke!

Jeder Beitrag zählt - egal wie klein! 🌱

Von Krümeln für Krümel 💚


**Bereit loszulegen?** [🐛 Bug melden](https://github.com/DEIN-USER/crumbforest-deployment/issues/new?template=bug_report.md) | [💡 Feature vorschlagen](https://github.com/DEIN-USER/crumbforest-deployment/issues/new?template=feature_request.md) | [📖 Docs verbessern](docs/)