Startseite
NexoPOS

Plattform & Einstellungen

Alle Produktkonfigurationen befinden sich unter „Admin → Einstellungen“ (gespeichert in „platform_settings“).

Das Ändern der Schlüssel hier erfordert keine erneute Erstellung von Docker-Containern. Pfad: /dashboard/admin/settings (Gruppenabfrage, z. B. ?group=payments).

settings

Screenshot-Platzhalter: Admin → Einstellungen-Shell mit linken/vertikalen Gruppen

Nur-Infrastruktur-Elemente (DB, Redis,  APP_URL, Host-Agent) bleiben in .env — siehe 01.

SMTP

Erforderlich für eine produktionsähnliche Plattform: Verifizierung, Passwortzurücksetzung, Abrechnung, Bereitstellungsergebnisse, Rückerstattungsbenachrichtigungen.

Field Purpose
Host / Port e.g. smtp.mailgun.org / 587
Username / Password Provider credentials (password encrypted)
Encryption tls, ssl, or empty
From address / name Outbound identity
Admin alert emails Comma-separated ops alert recipients

Wenn der SMTP-Host leer ist, kann die App auf den .env Mailer zurückgreifen (oft beim Log-in von Docker — Nachrichten gehen in die Logs, nicht in Postfächer).

So testen: SMTP konfigurieren → einen nicht verifizierten Benutzer öffnen → Verifizierung erneut senden → den Posteingang bestätigen.

smtp-configuration

GitHub

Zog früher die NexoPOS-Core-Releases und Modulquellen von GitHub.

Field Purpose
Personal access token Required for private repos (and higher rate limits)
NexoPOS repository owner/name (default open-source NexoPOS)
Visibility public or private
Install channel latest or pinned
Pinned version / ref Used when channel is pinned
Release cache hours Scheduler refresh interval (min 1h); manual refresh still allowed

Öffentliches NexoPOS: Token optional für öffentliche Ratenlimits, dennoch empfohlen.Private Forks / private Module: Erstelle ein fein abgestuftes oder klassisches PAT mit Repo (oder Inhaltslese) und speichere es hier.

Modulversionen können auch als ZIP-Datei ohne GitHub hochgeladen werden.

github-configuration

Abrechnung (Zahlungen)

Für Checkout- und Mid-Lifecycle-Gebühren ist nur ein Gateway aktiv.

Provider Status Notes
Stripe Implemented Cards + Checkout; best default
Paddle Implemented Merchant of Record / Billing API
Mollie Implemented EU methods; first payment + recurring
Airwallex Credentials only Not selectable until a driver ships
Fake Tests only Never production; launch-check rejects

Stripe konfigurieren (Beispiel)

  1. Aktiver Zahlungs-Gateway → Stripe.
  2. Veröffentlichbarer Schlüssel, geheimer Schlüssel, Webhook-Geheimnis.
  3. Production-Webhook-Endpunkt: https://{APP_HOST}/webhooks/stripeEvents: checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.deleted (und alle zusätzlichen Events, die dein Treiber erwartet).
  4. Lokaler Test: Stripe CLI → siehe 

Paddle und Mollie folgen demselben Muster (API-Schlüssel + Webhook-Geheimnis; Paddle hat außerdem eine Sandbox-/Produktionsumgebung).

Screenshot-Platzhalter : Admin → Einstellungen → Zahlungen — aktiver Treiber + Stripe

billing-settings

Legacy-Env-only-Installationen können einmal importieren:

php artisan platform:import-env-settings

Entfernen Sie dann Produkgeheimnisse aus „.env“.

Markenbildung

Field Purpose
App name Sidebar, titles, marketing
Logo (light / dark) Theme-aware logos
Favicon Browser tab
branding

Datum & Uhrzeit

Steuert, wie Daten in der UI der Steuerungsebene und in E-Mails angezeigt werden (nicht als rohes ISO in Vue).

Field Examples
Timezone IANA, e.g. UTC, Africa/Douala, Europe/Paris
Date format Y-m-d, d/m/Y, m/d/Y, d M Y
Time format 24h or 12h

In Plattform-Einstellungen gespeichert und über Inertia-Platform-Props geteilt.

date-and-settings

Allgemein & Aufhängung-Seite

Allgemein

Field Purpose
Support email Public contact; used on suspension page when enabled
Support phone / hours Optional contact details
Two factor available Allow customers to enable 2FA
general-contact

Bereitstellungen (Limits + Offline-Seite)

Field Purpose
Default max installations Applied to new personal orgs
Default max seats Applied to new personal orgs
Show suspension reason Offline/suspended tenant page
Show support email / phone / hours Same offline page

Wenn eine Installation angehalten wird (Zahlungsfehler, AGB, Rückerstattungsweg usw.), sehen Besucher die Seite „Plattform angehalten“. Diese Schalter steuern, welche Kontaktinformationen und Begründungstexte angezeigt werden.

Screenshot-Platzhalter: Admin → Einstellungen → Bereitstellungen / Sperrungsumschalter

suspension-page

S3 & Backups

Backups sind ausschließlich unternehmenseigener S3-kompatibler Speicher (keine Kundendaten in Drive/OneDrive im MVP).

S3-Gruppe

Field Purpose
Key / Secret Access credentials (encrypted)
Region / Bucket Destination
Endpoint Empty for AWS; set for MinIO, R2, etc.
Path-style Provider-specific

Unvollständiges Admin S3 greift nicht stillschweigend für echte Backup-Schreibvorgänge auf die lokale Festplatte zurück. Verwenden Sie die Admin-Testspeicheraktion, wenn sie verfügbar ist.

backup

Sicherungsgruppe

Field Purpose / default
Platform automatic backups Progressive wave for installs with the Backups add-on
Schedule cron (UTC) e.g. 0 3 * * *
Concurrency 1–5 installs at a time
Keep last N Retention of succeeded backups per install (default 3)

Kunden können ihren eigenen Backup-Zeitplan nicht festlegen; sie erhalten manuelle Backups plus automatische Backups der Plattform, wenn sie berechtigt sind.

Katalog: Veröffentlichen Sie ein Add-on mit Feature-Key-Backups.

backup-schedule

Domäne

Field Purpose
Platform base domain Suffix for free install hostnames
Custom domain mode free / addon / disabled
Public IPv4 / IPv6 Shown on customer Domain tab for DNS
Max verified domain changes / day Per install; LE rate protection

Wenn der Modus „addon“ ist, benötigen Kunden ein aktives „Custom domain“-Add-on (feature_key = custom_domain), bevor sie einen Hostnamen zuweisen können.

Abrechnungsaufbewahrung

Field Default Meaning
Grace period (days) 3 After trial/period end: install stays online with renewal banner, then suspend
Soft-delete retention (days) 30 After soft-delete (cancel path, etc.) before hard purge
Refund hard-delete (days) 7 After approved refund soft-delete before hard purge

Der Lifecycle wird durch geplante Abrechnungen gesteuert: billing:process-lifecycle (Compose-Scheduler-Dienst).

Benachrichtigungen

Field Purpose
Email footer Appended to outbound mail
Support URL Link in emails / help surfaces

Einstellungsreihenfolge für eine neue Plattform

  1. Domain — Basisdomain + öffentliche IP
  2. SMTP — echte E-Mail
  3. Zahlungen – Stripe (oder Paddle/Mollie) + Webhooks
  4. GitHub – Zugriff auf core/modules
  5. S3 + Backups – wenn Sie ein Backup-Add-on verkaufen
  6. Branding + Datum/Uhrzeit — Polnisch
  7. Bereitstellungen / allgemein – Limits + Sperrseite
  8. Abrechnungsaufbewahrung – Kulanz- und Löschfenster

Dann führen Sie „php artisan platform:launch-check“ aus.