live
EYT / Documentação

Documentação EYT

Tudo que roda, onde roda e como publicar — da landing estática à API de Pix. Revisado em 2026-08-20.

Para integradores: a documentação da API pública (api.eyt.com.br/v1/*) está em /integracao-api.html ou em /integracao-api.md (markdown).

🌐 Landing

Fonte eyt-site/ (HTML+CSS estático). Servido por Caddy de /var/www/eyt.

📊 Painel

React/Vite + Express/SQLite. API em 127.0.0.1:4100, banco em /opt/eyt-panel/data/eyt.db.

API Pix

Fonte .NET 9. systemd em 127.0.0.1:5278, Postgres local.

🛠️ Admin

Painel React /admin/ servido do diretório do sistema. Protegido por HTTP Basic.

📚 Docs

Este diretório deploy/docs/, servido de /var/www/eyt-docs. Caminhos antigos fazem 301.

Serviços & aplicações #

Landing page — eyt.com.br #

  • Fonte: eyt-site/ (HTML + CSS estático, sem build).
  • Servido por Caddy de /var/www/eyt, rota eyt.com.br no Caddyfile.
  • Deploy: tar do repo + sudo cp -r para /var/www/eyt, dono caddy:caddy.

Painel do sistema — finance.eyt.com.br #

  • Fonte: repo local (React/Vite + Express/SQLite).
  • web/ builda para o diretório do sistema (Caddy, SPA com try_files).
  • server/ roda como systemd eyt-panel.service em 127.0.0.1:4100, banco em /opt/eyt-panel/data/eyt.db (backup!).
  • Criar usuário: sudo -u eytpanel EYT_DB=/opt/eyt-panel/data/eyt.db node /opt/eyt-panel/scripts/create-user.js email "Nome" admin.

API do sistema — /v1/* #

Atenção: chamadas de dinheiro exigem credenciais PSP (OnlyUp) ainda pendentes. Com Psp:Order vazio, /health e /openapi funcionam; chamadas de dinheiro falham com erro de configuração claro.
  • Fonte: Pix.Api (.NET 9). Build: dotnet publish src/Pix.Api -c Release.
  • Roda como serviço systemd em 127.0.0.1:5278; Caddy proxeia /v1, /health, /openapi.
  • Postgres local (role pix / db pix_orchestrator). Migrações: Database__MigrateAndExit=true (uma vez).
  • Criar API key: Admin__CreateApiKeyFor=<merchant-guid> (imprime uma vez, some).
GET /health ● no ar
GET /openapi ● no ar

Admin panel — finance.eyt.com.br/admin #

  • Fonte: painel admin (React + Vite, base /admin/), build no diretório do sistema.
  • Caddy: prefix /admin → arquivos + /admin/v1 proxy para a API em 5278.
  • Protegido por HTTP Basic no Caddy.

Documentação — docs.eyt.com.br #

  • Subdomínio dedicado (docs.eyt.com.br), não mais um subdiretório de eyt.com.br.
  • Fonte: este diretório (deploy/docs/), servido por Caddy de /var/www/eyt-docs.
  • Os caminhos antigos /docs/* em eyt.com.br respondem 301 para docs.eyt.com.br preservando o path.
  • Regenerar: editar aqui + sudo cp -r docs/. /var/www/eyt-docs/, dono caddy:caddy.

Deploy rápido #

API
# API
dotnet publish src/Pix.Api -c Release -o /tmp/pub
scp -r /tmp/pub ubuntu@54.207.140.52:/tmp/eyt-api-new
ssh ubuntu@54.207.140.52 'sudo rm -rf /opt/eyt-api/app && sudo mv /tmp/eyt-api-new /opt/eyt-api/app && sudo systemctl restart eyt-api'
Painel admin
# Painel admin
cd panel && npm run build
scp -r dist ubuntu@54.207.140.52:/tmp/panel-new
ssh ubuntu@54.207.140.52 'sudo rm -rf /var/www/eyt-admin && sudo mv /tmp/panel-new /var/www/eyt-admin && sudo chown -R caddy:caddy /var/www/eyt-admin'
Docs — docs.eyt.com.br
# Docs — raiz /var/www/eyt-docs
cd deploy && scp -r docs ubuntu@54.207.140.52:/tmp/docs-new
ssh ubuntu@54.207.140.52 'sudo rm -rf /var/www/eyt-docs && sudo mv /tmp/docs-new /var/www/eyt-docs && sudo chown -R caddy:caddy /var/www/eyt-docs'
Caddy
# Caddy (se mudou o Caddyfile)
ssh ubuntu@54.207.140.52 'sudo caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile && sudo systemctl reload caddy'

Referência de rotas #

ServiçoRota / origemPorta internaServidor
Landingeyt.com.brestático/var/www/eyt
Painelfinance.eyt.com.br4100eyt-panel.service
API Pix/v1 · /health · /openapi5278serviço systemd .NET
Admin/adminestático + /admin/v1diretório do sistema
Docsdocs.eyt.com.brestático/var/www/eyt-docs

Notas operacionais #

Credenciais OnlyUp: chaves + mTLS. Definir Psp__Order__0=OnlyUp + Psp__DictResolver=Celcoin no serviço quando chegarem.
  • API key por lojista: rodar Admin__CreateApiKeyFor=<merchant-guid> uma vez; a chave imprime uma única vez.
  • Backup do banco do painel: /opt/eyt-panel/data/eyt.db.
  • Migrações da API: rodar Database__MigrateAndExit=true exatamente uma vez.