Konfiguration¶
Stammdaten und Vorlagen fuer den Betrieb von HostAdmin.
Service-Definitionen¶
Navigation: Admin > Service-Definitionen
Service-Definitionen sind Produktvorlagen, aus denen Kundenservices erstellt werden. Bei der Zuordnung zu einem Kunden werden die Daten kopiert (denormalisiert).
Allgemeine Felder¶
| Feld | Beschreibung |
|---|---|
| Name | Produktbezeichnung |
| Preis (Netto/Brutto) | Automatische MwSt.-Berechnung |
| Abrechnungszyklus | monatlich, vierteljaehrlich, jaehrlich, etc. |
| Service-Typ | hosting, domain, email, ssl, database, other |
| Status | Aktiv / Inaktiv |
Hosting-Spezifikationen¶
Fuer Hosting-Definitionen koennen technische Limits definiert werden:
- Speicherplatz (Disk)
- Bandbreite
- E-Mail-Konten
- Datenbanken
- Domains
- CPU / RAM
Shop-Einstellungen¶
| Feld | Beschreibung |
|---|---|
| Sichtbar | Im Shop anzeigen |
| Featured | Als hervorgehoben markieren |
| Beschreibung | Shop-Beschreibungstext |
| Deeplink | Direktlink zum Produkt |
| Standard-Domain | Vorgeschlagene Domain |
Stripe-Integration¶
- Synchronisierung als Stripe Product/Price
- Sync-Status-Anzeige
Preis-Synchronisierung¶
Ueber die Aktion "Preise synchronisieren" koennen geaenderte Preise auf alle bestehenden Kundenservices uebertragen werden, die diese Definition verwenden.
Verwendungsstatistik¶
Im Tab "Verwendung" wird angezeigt, wie viele aktive Kundenservices diese Definition nutzen.
Zahlungsarten¶
Navigation: Admin > Zahlungsarten
Verwaltung der verfuegbaren Zahlungsmethoden.
| Feld | Beschreibung |
|---|---|
| Name | Anzeigename (z.B. "SEPA-Lastschrift") |
| Code | Interner Schluessel (z.B. "sepa") |
| SEPA-Mandat erforderlich | Ob ein SEPA-Mandat benoetigt wird |
| Auf Rechnung anzeigen | Zahlungsart auf der Rechnung drucken |
| Rechnungstext | Text auf der Rechnung (mit Platzhaltern) |
| Sortierung | Reihenfolge in Auswahlfeldern |
| Status | Aktiv / Inaktiv |
Loeschung
Zahlungsarten, die bereits Kunden zugeordnet sind, koennen nicht geloescht werden.
E-Mail-Templates¶
Navigation: Admin > Konfiguration > Templates > Tab "E-Mail Templates"
Vorlagen fuer automatisierte und manuelle E-Mails.
Verfuegbare Templates¶
Typische Template-Keys:
invoice- Rechnungsversandwelcome- Willkommens-E-Mailpassword_setup- Passwort-Einrichtung- weitere nach Bedarf
Felder¶
| Feld | Beschreibung |
|---|---|
| Key | Eindeutiger Schluessel (z.B. "invoice") |
| Betreff | E-Mail-Betreff mit Platzhaltern |
| Body | Rich-Text-Inhalt |
| BCC | Blindkopie-Empfaenger |
| Platzhalter | Key-Value-Paare fuer dynamische Inhalte |
| Status | Aktiv / Inaktiv |
Test-E-Mail¶
Ueber die Aktion "Test-E-Mail senden" kann ein Template an eine beliebige Adresse zum Testen versendet werden.
Dokument-Templates¶
Navigation: Admin > Konfiguration > Templates > Tab "Dokument-Templates"
Vorlagen fuer die PDF-Generierung (Rechnungen, SEPA-Mandate, etc.).
Aufbau¶
Jedes Template besteht aus:
- Header - Kopfbereich (HTML/Blade)
- Content - Hauptinhalt (HTML/Blade)
- Footer - Fussbereich (HTML/Blade)
- CSS - Eigene Stylesheets
Einstellungen¶
| Feld | Beschreibung |
|---|---|
| Key | Eindeutiger Schluessel |
| Typ | invoice, sepa_mandate, etc. |
| Papierformat | A4, Letter, etc. |
| Ausrichtung | Hochformat / Querformat |
| Platzhalter | Verfuegbare Variablen |
| Standard | Als Standard-Template markieren |
| Status | Aktiv / Inaktiv |
Templates verwenden Blade-Syntax und werden mit Blade::render() gerendert. Die PDF-Erzeugung erfolgt ueber DomPDF.
Templates ausliefern und aktualisieren¶
Die Auslieferungsstaende aller E-Mail- und Dokument-Templates liegen im Code, in
database/seeders/EmailTemplateSeeder.php und database/seeders/DocumentTemplateSeeder.php.
In die Datenbank kommen sie auf zwei Wegen.
Seeder: legt nur Fehlendes an¶
docker exec hostadmin-app php artisan db:seed --class=DocumentTemplateSeeder
docker exec hostadmin-app php artisan db:seed --class=EmailTemplateSeeder
Die Seeder legen ausschliesslich Templates an, die es noch nicht gibt. Bestehende Templates werden nie ueberschrieben, damit im Admin gepflegte Anpassungen einen Seeder-Lauf ueberleben. Sie sind damit jederzeit gefahrlos wiederholbar.
Geloeschte Templates
Die Pruefung schliesst soft-geloeschte Templates ein. Ein im Admin geloeschtes Template
gilt als vorhanden und wird vom Seeder weder neu angelegt noch wiederhergestellt. Das ist
Absicht: Eine bewusste Loeschung soll ein Deployment nicht rueckgaengig machen. Zum
Wiederherstellen dient templates:sync (siehe unten).
templates:sync: gezielt ueberschreiben¶
Wenn eine Template-Aenderung aus dem Code in die Datenbank soll, ist templates:sync der
richtige Befehl. Er ueberschreibt vorhandene Templates und stellt soft-geloeschte wieder her.
# Uebersicht aller Templates mit DB-Status (fehlt / vorhanden / geloescht) - schreibt nichts
docker exec hostadmin-app php artisan templates:sync
# Ein einzelnes Template ueberschreiben
docker exec hostadmin-app php artisan templates:sync --key=invoice_default --type=document
# Vorher pruefen, was passieren wuerde
docker exec hostadmin-app php artisan templates:sync --key=invoice_default --dry-run
| Option | Beschreibung |
|---|---|
--key=<schluessel> |
Zu synchronisierendes Template, mehrfach angebbar |
--type=document\|email |
Auf einen Typ einschraenken |
--all |
Alle Templates synchronisieren |
--dry-run |
Nur anzeigen, nichts schreiben |
Schluessel sind nicht typuebergreifend eindeutig
reminder_1 und reminder_2 existieren sowohl als Dokument- als auch als
E-Mail-Template. Ohne --type trifft --key=reminder_1 beide.
Neues Template ausliefern¶
- Definition im passenden Seeder ergaenzen (
templates()-Methode) - Auf der Zielumgebung
db:seed --class=...ausfuehren - das neue Template wird angelegt, alle bestehenden bleiben unveraendert
Einstellungen¶
Navigation: Admin > Konfiguration > Einstellungen
Zentrale Systemkonfiguration, aufgeteilt in Tabs:
Allgemein¶
- Firmenname, Adresse, Logo
- Datums- und Waehrungsformat
E-Mail¶
- SMTP-Konfiguration (Host, Port, Verschluesselung, Zugangsdaten)
- E-Mail-Signatur
- Test-E-Mail senden
Rechnungen¶
- Rechnungsnummern-Format (Prefix, Startnummer, aktuelle Nummer)
- Standard-Steuersatz
- Zahlungsziel (Tage)
- Standard-Template
Kunden¶
- Kundennummern-Konfiguration (Stellenanzahl, Startnummer)
- Passwort-Mindestlaenge
Zahlungen¶
- Zahlungseinstellungen
Stripe¶
- API-Keys (Public Key, Secret Key)
- Webhook Secret
- Testmodus-Anzeige
- Verbindungstest
S3 / SILO¶
- Endpoint, Bucket, Region
- Zugangsdaten
- Verbindungstest
SEPA¶
- Glaeubiger-ID (Creditor ID)