Home
NexoPOS

Piattaforma e impostazioni

Tutte le configurazioni dei prodotti si trovano in Admin → Impostazioni (memorizzate in platform_settings).

La modifica delle chiavi qui non richiede la ricreazione dei container Docker. Percorso: /dashboard/admin/settings (query di gruppo, ad es. ?group=payments).

settings

Segnaposto schermata:  Admin → Impostazioni shell con gruppi a sinistra/verticali

Gli elementi solo infrastruttura (DB, Redis, APP_URL, host agent) restano in .env — vedi 01.

SMTP

Necessario per una piattaforma simile a un ambiente di produzione: verifica, reimpostazione della password, fatturazione, risultati del deploy, notifiche di rimborso.

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

Se l’host SMTP è vuoto, l’app potrebbe ricorrere al mailer del file .env (spesso in Docker — i messaggi finiscono nei log, non nelle caselle di posta).

Come testare: configura SMTP → apri un utente non verificato → invia nuovamente la verifica → conferma la casella di posta.

smtp-configuration

GitHub

Prima si prelevavano le release principali di NexoPOS e le sorgenti dei moduli da 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

Pubblico NexoPOS: token facoltativo per i limiti di velocità pubblici, comunque consigliato.Fork privati / moduli privati: crea un PAT fine-grained o classico con repo (o lettura dei contenuti) e salvalo qui.

Le versioni dei moduli possono anche essere caricate come file ZIP senza GitHub.

github-configuration

Fatturazione (Pagamenti)

È attivo un solo gateway per gli addebiti al momento del checkout e durante il ciclo di vita.

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

Configura Stripe (esempio)

  1. Gateway di pagamento attivo → Stripe.
  2. Chiave pubblicabile, chiave segreta, segreto webhook.
  3. Endpoint webhook di produzione: https://{APP_HOST}/webhooks/stripeEvents: checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.deleted (e qualsiasi altro evento aggiuntivo che si aspetta il tuo driver).
  4. Test locale : Stripe CLI → vedi 

Paddle e Mollie seguono lo stesso schema (chiave API + segreto webhook; Paddle dispone anche dell’ambiente sandbox/produzione).

Segnaposto screenshot: Admin → Impostazioni → Pagamenti — driver attivo + Stripe

billing-settings

Le installazioni legacy solo per ambienti possono importare una volta:

php artisan platform:import-env-settings

Rimuovi i segreti del prodotto da .env.

Branding

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

Data e ora

Controlla come le date vengono visualizzate nell’interfaccia utente del piano di controllo e nelle email (non in formato ISO grezzo 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

Memorizzato nelle preferenze della piattaforma e condiviso tramite le proprietà della piattaforma Inertia.

date-and-settings

Pagina generale e sospensioni

Generale

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

Distribuzioni (limiti + pagina offline)

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

Quando un’installazione viene sospesa (mancato pagamento, condizioni d’uso, percorso di rimborso, ecc.), i visitatori vedono la pagina di piattaforma sospesa. Questi interruttori controllano quali informazioni di contatto e testo della motivazione vengono visualizzati.

Segnaposto screenshot: Admin → Impostazioni → Attivazioni / sospensioni delle distribuzioni

suspension-page

S3 e backup

I backup sono solo storage S3 compatibile di proprietà dell’azienda (nessun Drive/OneDrive del cliente nell’MVP).

Gruppo S3

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

L’archiviazione S3 Admin incompleta non esegue silenziosamente il ripiego su disco locale per le scritture di backup reali. Usa l’azione di test di archiviazione Admin quando disponibile.

backup

Gruppo di backup

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)

I clienti non possono impostare autonomamente la pianificazione dei backup; ricevono backup manuali e, quando previsto, quelli automatici della piattaforma.

Catalogo: pubblica un componente aggiuntivo con backup della chiave delle funzionalità.

backup-schedule

Dominio

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

Quando la modalità è **addon**, i clienti devono avere un add-on **Dominio personalizzato** attivo (feature_key = custom_domain) prima di collegare un nome host.

Ritenzione dei pagamenti

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

Il ciclo di vita è guidato dalla fatturazione pianificata: process-lifecycle (servizio di pianificazione Compose).

Notifiche

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

Ordine delle impostazioni per una nuova piattaforma

  1. Dominio — dominio di base + IP pubblico
  2. SMTP — posta reale
  3. Pagamenti — Stripe (o Paddle/Mollie) + webhook
  4. GitHub — accesso ai moduli core
  5. S3 + backup — se vendi un add-on di backup
  6. Branding + data e ora — polacco
  7. Distribuzioni / generali — limiti + pagina di sospensione
  8. Conservazione della fatturazione — finestre di tolleranza ed eliminazione

Quindi esegui php artisan platform:launch-check.