System architecture
This page describes Nadigit IMS component by component: what each one does and how they work together. It is written for system administrators and integrators preparing an installation or an integration. Installation itself is covered in Installation.
Overview
All components run in Docker containers on a single server. One entry point receives the traffic; nothing else is exposed directly.
Components
| Component | Role | Technology |
|---|---|---|
| Web console | The interface used in the browser, in French, English, Arabic and Spanish | Angular |
| Application services (API) | All business logic: stock, sales, purchases, cash registers, finance, reports, financial documents, NadiPilot, integrations | Java, Spring Boot |
| Authentication | Accounts, sign-in, passwords, roles; Nadigit IMS-branded sign-in page | Keycloak (OpenID Connect) |
| Business data | Items, stock, orders, payments, customers, suppliers, settings | PostgreSQL |
| Identities | Users and roles, kept apart from business data | PostgreSQL |
| HTTPS entry point | Receives all traffic, encrypts it, routes each request to the right component | Nginx, Let's Encrypt or supplied certificates |
| Documents and licence | Invoices and generated documents, uploaded files, the active licence | Server persistent storage |
How a request flows
- The user opens the web console: the browser loads it from the HTTPS entry point.
- At sign-in, the console redirects to the authentication service, which checks the username and password and issues a short-lived access token.
- Every call from the console to the application services carries that token. The services verify its signature, then the user's roles and the active organization, before answering.
- The services read and write business data. Generated documents (invoices, receipts, reports) are kept in persistent storage.
External services
None is required. Each one is enabled in the settings and only receives what its function needs.
| Service | When it is used |
|---|---|
| Nadigit licence server | Activation with a registration key and online verification. A licence file works without it. |
| AI provider | NadiPilot and invoice extraction, when AI is enabled; a local model (Ollama) keeps data on your network. See Configuration. |
| Web search | NadiPilot market trends (Enterprise). |
| E-mail, Telegram, WhatsApp | Notifications and alerts. |
| Online stores | E-commerce integration (Enterprise). See E-commerce integration. |
Data and organizations
- One installation, one business database. Data stays on the server where Nadigit IMS is installed.
- Organizations (Enterprise). One installation can run several companies. Each organization has its own warehouses, shops, catalog, customers, suppliers, stock, sales, purchases and finance; users are shared across the installation and reach the organizations they are members of. See Security and data protection.
- Schema changes. On every upgrade, the database is migrated automatically at startup; a migration that fails stops the startup instead of running the application on an inconsistent database.
Multilingual
The interface is available in French, English, Arabic and Spanish, with right-to-left layout for Arabic. The language of generated documents (invoices, receipts, e-mails) is set separately, per organization. See Document language.
Scalability
The same architecture serves a business with a single point of sale and a company running several legal entities, warehouses and shops. What changes from one plan to another is the set of features and limits (users, warehouses, shops), not the installation. See Licences and plans.