Início
NexoPOS

Plataforma e Configurações

Toda a configuração do produto fica em Admin → Settings (armazenada em platform_settings).

Alterar as chaves aqui não exige recriar contêineres do Docker. Caminho: /dashboard/admin/settings (consulta de grupo, por exemplo ?group=payments).

settings

Espaço reservado de captura de tela:  Admin → Configurações com grupos à esquerda/verticais

Os itens apenas de infraestrutura (DB, Redis, APP_URL, agente host) permanecem em .env — veja 01.

SMTP

Necessário para uma plataforma semelhante à de produção: verificação, redefinição de senha, cobrança, resultados de implantação, notificações de reembolso.

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 o host SMTP estiver vazio, o aplicativo pode recorrer ao .env mailer (geralmente no Docker — as mensagens vão para os logs, não para as caixas de entrada).

Como testar: configurar SMTP → abrir um usuário não verificado → reenviar verificação → confirmar a caixa de entrada.

smtp-configuration

GitHub

Antes, fazia download das versões principais do NexoPOS e das fontes dos módulos do 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

Público NexoPOS: o token é opcional para limites de taxa públicos, mas ainda é recomendado.Forks privadas / módulos privados: crie um PAT granular ou clássico com repo (ou leitura de conteúdo) e salve-o aqui.

As versões dos módulos também podem ser carregadas como um arquivo ZIP sem o GitHub.

github-configuration

Faturamento (Pagamentos)

Apenas um gateway está ativo para cobranças no checkout e ao longo do ciclo de vida.

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

Configurar Stripe (exemplo)

  1. Gateway de pagamento ativo → Stripe.
  2. Chave publicável, chave secreta, segredo do webhook.
  3. Endpoint de webhook de produção: https://{APP_HOST}/webhooks/stripeEvents: checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.deleted (e quaisquer eventos adicionais que o seu driver espera).
  4. Teste local: Stripe CLI → veja 

Paddle e Mollie seguem o mesmo padrão (chave de API + segredo do webhook; a Paddle também tem ambiente de sandbox/produção).

Espaço reservado de captura de tela: Admin → Configurações → Pagamentos — driver ativo + Stripe

billing-settings

As instalações legadas apenas de ambiente podem importar uma vez:

php artisan platform:import-env-settings

Em seguida, remova os segredos do produto de .env.

Branding

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

Data e hora

Controla como as datas aparecem na interface do plano de controle e nos e-mails (não em ISO bruto no 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

Armazenado nas preferências da plataforma e compartilhado via props da plataforma Inertia.

date-and-settings

Página geral e de suspensão

Geral

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

Implantações (limites + página 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 uma instalação é suspensa (falha no pagamento, termos de serviço, caminho de reembolso etc.), os visitantes veem a página de plataforma suspensa. Esses controles determinam quais informações de contato e texto de motivo aparecem.

Espaço reservado do screenshot: Admin → Configurações → Alternâncias de implantações/suspensão

suspension-page

S3 e backups

Os backups são apenas armazenamento S3 compatível com a empresa (sem Drive/OneDrive do cliente no MVP).

Grupo S3

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

O Admin S3 incompleto não faz fallback silencioso para o disco local para gravações reais de backup. Use a ação de armazenamento de teste do Admin quando disponível.

backup

Grupo de backups

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)

Os clientes não podem definir o próprio cronograma de backup; eles recebem backups manuais + backups automáticos da plataforma quando tiverem direito.

Catálogo: publique um complemento com backups de chave de recurso.

backup-schedule

Domínio

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 o modo é addon, os clientes precisam de um add-on de domínio personalizado ativo (feature_key = custom_domain) antes de anexar um nome de host.

Retenção de cobrança

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

O ciclo de vida é acionado pela cobrança agendada: billing:process-lifecycle (serviço de agendamento do Compose).

Notificações

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

Ordem de configuração para uma nova plataforma

  1. Domínio — domínio base + IP público
  2. SMTP — correio real
  3. Pagamentos — Stripe (ou Paddle/Mollie) + webhooks
  4. GitHub — acesso a módulos principais
  5. S3 + Backups — se você vender o complemento de backup
  6. Branding + data e hora — polonês
  7. Implantações / geral — página de limites + suspensão
  8. Retenção de cobrança — janelas de carência e exclusão

Em seguida, execute o comando `php artisan platform:launch-check`.