Deployment

Where each build is run and how traffic flows. This page stays free of secrets: no tokens, connection strings, or keys.

Hosting layout

LayerWhere it runsNotes
Next.js appsNetlifyStaff ERP (ethica-erp), customer portal (customer-portal), onboarding (customer-onboarding), admin (admin-portal), and this documentation site (documentation). Each app is typically its own Netlify site with the repository subdirectory as the base directory.
APIDigitalOceanethica-api (NestJS) runs as a Node service—e.g. App Platform, Droplet, or container—depending on your ops setup.
PostgreSQLDigitalOceanManaged database or database co-located with the API; one logical database per environment unless you have explicitly documented sharding.

Managed SaaS (not on DigitalOcean)

These are external APIs; credentials are injected via environment variables only:

  • Cloudinary — media storage and delivery for uploads.
  • Resend — transactional email.

Operations

  • Builds: Netlify runs install/build per frontend; DigitalOcean (or your CI) builds and deploys ethica-api.
  • Logs: Use Netlify’s deploy and function logs for frontends; use DigitalOcean (or your process manager) logs for the API. Centralized logging is optional—document your choice when you adopt one.
  • Promotion: Follow your team’s path (e.g. staging → production) and keep environment-specific URLs and secrets in each host’s dashboard, not in git.

See also