Naar de inhoud
Terug naar Resources
Architectuur8 min leestijdBijgewerkt op , gepubliceerd op 

Referentiearchitectuur

Referentiearchitectuur van het Noveu-platform voor architecten en technische beslissers: de principes, de componenten en hoe de lagen samenwerken.

Overzicht

Dit document beschrijft de referentiearchitectuur van het Noveu platform, bedoeld voor architects en technische beslissers.

Architectuurprincipes

1. Waar data staat

  • Gegevens en back-ups in een Hetzner-datacenter in Falkenstein (Duitsland)
  • Cloudflare (VS) zit aan de rand van het netwerk
  • Transparante supply chain

2. Modulairiteit

  • Loosely coupled services
  • Vervangbare componenten
  • API-first design

3. Resilience

  • Dedicated server bij Hetzner
  • Elke nacht een versleutelde kopie van de databases en de mail in aparte objectopslag bij Hetzner, buiten deze server en ook in Falkenstein

4. Security by Design

  • Back-ups worden versleuteld opgeslagen
  • Defense in depth
  • Encryption in transit (TLS 1.2 of hoger, TLS 1.3 wordt ondersteund)

Logische Architectuur

Web Portal en Klantportaal
          |
      API Gateway
          |
Mail, Agenda, Bestanden en Chat (beta)
          |
Identiteit, notificaties, monitoring en back-ups
          |
Dedicated server bij Hetzner, Falkenstein

Componenten Detail

Presentation Layer

ComponentTechnologieFunctie
Web PortalReact, Next.jsBrowser-based UI
KlantportaalReact, Next.jsAbonnementen, facturen en supporttickets
API GatewayNestJS (eigen gateway)Request routing, auth

Application Layer

ServiceVerantwoordelijkheidStorage
Mail ServiceIMAP/SMTP, filteringObject + DB
Calendar ServiceCalDAV, schedulingPostgreSQL
Files ServiceREST API, versioningObject + DB
Chat Service (beta)Realtime messagingPostgreSQL + Redis

Platform Layer

ComponentTechnologieFunctie
Identity (IAM)ZitadelInloggen (OIDC), MFA en gebruikersbeheer
NotificationCustom (noveu-notification-service)Transactionele en systeemnotificaties, kanaalroutering
ObservabilityPrometheus, Grafana, GlitchTipMetrics, dashboards, foutmeldingen
BackupBack-upsZie Backup Strategy; back-ups worden versleuteld opgeslagen

Infrastructure Layer

ComponentSpecificatieRedundantie
ComputeDedicated server bij Hetzner (Proxmox VE) in FalkensteinEén fysieke server
StorageOpslag op dezelfde server
Back-upsBack-ups in FalkensteinElke nacht een versleutelde kopie van de databases en de mail in aparte objectopslag bij Hetzner, buiten deze server en ook in Falkenstein
DNS/CDNCloudflare (VS) aan de rand van het netwerk

Deployment Architectuur

Multi-Tenant (SaaS)

┌────────────────────────────────────────────┐
│              Shared Platform                │
│  ┌────────┐  ┌────────┐  ┌────────┐        │
│  │  IAM   │  │ Billing│  │Provisn │        │
│  └────────┘  └────────┘  └────────┘        │
└────────────────────────────────────────────┘
              │         │         │
    ┌─────────┘         │         └─────────┐
    ▼                   ▼                   ▼
┌────────┐         ┌────────┐         ┌────────┐
│Tenant A│         │Tenant B│         │Tenant C│
│ (Data) │         │ (Data) │         │ (Data) │
└────────┘         └────────┘         └────────┘

Data Flow

E-mail Ontvangst

Internet ─► MX ─► Antispam ─► Delivery ─► Mailbox
                    │           │
                    ▼           ▼
                 [Block]     [Store]

Authenticatie Flow

User ─► Client ─► API Gateway ─► IAM ─► Service
                      │          │         │
                      │    ┌─────┘         │
                      │    ▼               │
                      │  [Token]           │
                      │    │               │
                      └────┼───────────────┘
                           │
                           ▼
                    [Validate + Authorize]
                           │
                           ▼
                      [Response]

Security Architecture

Network Zones

ZoneComponentsIngressEgress
EdgeCloudflare (VS), met Tunnel naar de serverInternetPlatform
PlatformDiensten, databases en opslag op één VMEdgeExterne diensten waar nodig
MailMailserver op een eigen VMInternet (SMTP, IMAP)Internet
MgmtMonitoring en beheerAlleen via SSH over de Proxmox-hostPlatform

Diensten en databases draaien op dezelfde VM.

Encryption

LayerMechanismKey Management
TransportTLS 1.2 of hogerCloudflare aan de rand; Let's Encrypt op de mailserver
BackupBack-ups worden versleuteld opgeslagen

Integration Patterns

Synchronous

Client ──► API Gateway ──► Service ──► Response
              │               │
              │          ┌────┴────┐
              │          ▼         ▼
              │      [Cache]   [Database]
              │
              └► [Rate Limit]

Disaster Recovery

Herstel

Back-ups staan in het Hetzner-datacenter in Falkenstein (Duitsland), op een aparte schijf en VM. Back-ups worden versleuteld opgeslagen. Herstel gebeurt vanuit die back-ups. Elke nacht gaat een versleutelde kopie van de databases en de mail naar aparte objectopslag bij Hetzner, buiten deze server en ook in Falkenstein.

Backup Strategy

Back-ups     ─► Hetzner-datacenter Falkenstein (DE)

Capaciteit

Capaciteit voor een organisatie spreken we af op offerte.

Technology Choices

CategoryChoiceRationale
ContainersDocker op VM's; Coolify voor de website en de loginpaginaEenvoudig beheer op één fysieke server (Proxmox)
MonitoringPrometheus, Grafana en Uptime KumaMetrics, dashboards, beschikbaarheid en alarmering
Error trackingGlitchTipFoutmeldingen
DatabasePostgreSQLBetrouwbaar, open source
CacheRedisPerformance, pub/sub
Object storageMinIO (S3-compatibel)In productie in Falkenstein

Lees verder

Wat is je volgende stap?

Wil je weten hoe dit er voor jouw organisatie uitziet? Bekijk hoe Noveu het aanpakt, of plan een gesprek.

Meer resources bekijken