Zum Inhalt

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 - Rechnungsversand
  • welcome - Willkommens-E-Mail
  • password_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

  1. Definition im passenden Seeder ergaenzen (templates()-Methode)
  2. 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)

Settings-API

Einstellungen koennen auch programmatisch gelesen und geschrieben werden:

$value = setting('key', 'default');
set_setting('key', 'value', 'string', 'general');
Alle Einstellungen werden in der Datenbank gespeichert und gecacht.