# kleber-albino/rer-dsp-core architecture

> Architecture diagram of the GitHub repository kleber-albino/rer-dsp-core, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kleber-albino/rer-dsp-core
- Repository: https://github.com/kleber-albino/rer-dsp-core

## Overview

rer-dsp-core is the operational installer and runtime orchestrator for a geospatial data-sharing platform. The principal workflow configures an adopter, prepares databases and GeoServers (including demo seeding or real-data migration), then starts the frontend, backend, and gateway. The graph includes documented runtime capabilities and configuration areas; detailed service wiring is inferred only where the README explicitly describes it, since the Compose file and most runtime scripts were not sampled.

Main entry points: [`docker-compose.yml`](https://github.com/kleber-albino/rer-dsp-core/blob/main/docker-compose.yml) (Compose stack), [`install.sh`](https://github.com/kleber-albino/rer-dsp-core/blob/main/install.sh) (Demo installer), [`config/Gateway`](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Gateway) (Nginx gateway), [`config/Job-Data-Migration`](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Job-Data-Migration) (Data migration job)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_install["Installation and configuration"]
  node_adopter_config["Adopter wizard<br/>[config.sh]"]
  node_config_generator["Config generator"]
  node_setup["Setup orchestration<br/>[setup.sh]"]
  node_installer["Demo installer<br/>[install.sh]"]
  node_starter["Application starter<br/>[start.sh]"]
end

subgraph group_data["Data preparation"]
  node_dsp_db[("DSP database")]
  node_geoserver_db[("GeoServer database")]
  node_demo_seed["Demo seed"]
  node_migration_job["Data migration job"]
  node_generation_job["Geo-file generation job"]
end

subgraph group_runtime["Application runtime"]
  node_compose["Compose stack<br/>[docker-compose.yml]"]
  node_geo_exhibition["Exhibition GeoServer"]
  node_geo_download["Download GeoServer"]
  node_object_storage[("Object storage")]
  node_gateway["Nginx gateway"]
  node_backend["Backend"]
  node_frontend["Frontend"]
end

subgraph group_config["Runtime configuration"]
  node_adopter_templates["Adopter settings"]
  node_map_settings["Map and layers"]
  node_download_settings["Download themes"]
  node_about_settings["About content"]
end

node_operator(("Operator"))

node_operator -->|"configures adopter"| node_adopter_config
node_adopter_config -->|"reads settings"| node_adopter_templates
node_adopter_config -->|"runs generator"| node_config_generator
node_config_generator -->|"generates layers"| node_map_settings
node_config_generator -->|"generates themes"| node_download_settings
node_config_generator -->|"generates UI"| node_about_settings
node_operator -->|"prepares stack"| node_setup
node_setup -->|"starts infrastructure"| node_compose
node_setup -.->|"loads demo seed"| node_demo_seed
node_demo_seed -.->|"seeds data"| node_dsp_db
node_setup -.->|"runs migration"| node_migration_job
node_migration_job -.->|"writes migrated data"| node_dsp_db
node_migration_job -.->|"publishes layers"| node_geo_exhibition
node_migration_job -.->|"publishes layers"| node_geo_download
node_operator -->|"starts application"| node_starter
node_starter -->|"starts app services"| node_compose
node_compose -->|"runs service"| node_dsp_db
node_compose -->|"runs service"| node_geoserver_db
node_compose -->|"runs service"| node_geo_exhibition
node_compose -->|"runs service"| node_geo_download
node_compose -.->|"runs job"| node_migration_job
node_compose -.->|"runs scheduled job"| node_generation_job
node_compose -->|"runs service"| node_object_storage
node_compose -->|"runs service"| node_gateway
node_compose -->|"runs service"| node_backend
node_compose -->|"runs service"| node_frontend
node_gateway -->|"routes requests"| node_frontend
node_gateway -->|"routes requests"| node_backend
node_gateway -->|"routes requests"| node_geo_exhibition
node_gateway -->|"routes requests"| node_geo_download
node_generation_job -.->|"stores generated files"| node_object_storage
node_operator -.->|"installs demo"| node_installer
node_installer -.->|"starts demo stack"| node_compose
node_installer -.->|"loads seed"| node_demo_seed
node_installer -.->|"seeds database"| node_dsp_db
node_installer -.->|"seeds database"| node_geoserver_db

click node_adopter_config "https://github.com/kleber-albino/rer-dsp-core/blob/main/config.sh"
click node_config_generator "https://github.com/kleber-albino/rer-dsp-core/blob/main/scripts/apply_adopter_config.py"
click node_setup "https://github.com/kleber-albino/rer-dsp-core/blob/main/setup.sh"
click node_installer "https://github.com/kleber-albino/rer-dsp-core/blob/main/install.sh"
click node_starter "https://github.com/kleber-albino/rer-dsp-core/blob/main/start.sh"
click node_compose "https://github.com/kleber-albino/rer-dsp-core/blob/main/docker-compose.yml"
click node_dsp_db "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/dsp-db"
click node_geoserver_db "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/dsp-geoserver-db"
click node_demo_seed "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/seed/quickstart"
click node_migration_job "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Job-Data-Migration"
click node_generation_job "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Job-Geo-File-Generation"
click node_geo_exhibition "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/GeoserverExhibition"
click node_geo_download "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/GeoserverDownload"
click node_object_storage "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/ObjectStorage"
click node_gateway "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Gateway"
click node_adopter_templates "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/adopter"
click node_map_settings "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/map"
click node_download_settings "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/downloads"
click node_about_settings "https://github.com/kleber-albino/rer-dsp-core/tree/main/config/about"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_adopter_config,node_config_generator,node_setup,node_installer,node_starter toneBlue
class node_dsp_db,node_geoserver_db,node_demo_seed,node_migration_job,node_generation_job toneAmber
class node_compose,node_geo_exhibition,node_geo_download,node_object_storage,node_gateway,node_backend,node_frontend toneMint
class node_adopter_templates,node_map_settings,node_download_settings,node_about_settings toneRose
class node_operator toneIndigo
```

## Components

### Installation and configuration

- [Adopter wizard](https://github.com/kleber-albino/rer-dsp-core/blob/main/config.sh): `config.sh`
- [Config generator](https://github.com/kleber-albino/rer-dsp-core/blob/main/scripts/apply_adopter_config.py): `scripts/apply_adopter_config.py`
- [Setup orchestration](https://github.com/kleber-albino/rer-dsp-core/blob/main/setup.sh): `setup.sh`
- [Demo installer](https://github.com/kleber-albino/rer-dsp-core/blob/main/install.sh): `install.sh`
- [Application starter](https://github.com/kleber-albino/rer-dsp-core/blob/main/start.sh): `start.sh`

### Data preparation

- [DSP database](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/dsp-db): `config/db/dsp-db`
- [GeoServer database](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/dsp-geoserver-db): `config/db/dsp-geoserver-db`
- [Demo seed](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/db/seed/quickstart): `config/db/seed/quickstart`
- [Data migration job](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Job-Data-Migration): `config/Job-Data-Migration`
- [Geo-file generation job](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Job-Geo-File-Generation): `config/Job-Geo-File-Generation`

### Application runtime

- [Compose stack](https://github.com/kleber-albino/rer-dsp-core/blob/main/docker-compose.yml): `docker-compose.yml`
- [Exhibition GeoServer](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/GeoserverExhibition): `config/GeoserverExhibition`
- [Download GeoServer](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/GeoserverDownload): `config/GeoserverDownload`
- [Object storage](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/ObjectStorage): `config/ObjectStorage`
- [Nginx gateway](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/Gateway): `config/Gateway`
- **Backend**
- **Frontend**

### Runtime configuration

- [Adopter settings](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/adopter): `config/adopter`
- [Map and layers](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/map): `config/map`
- [Download themes](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/downloads): `config/downloads`
- [About content](https://github.com/kleber-albino/rer-dsp-core/tree/main/config/about): `config/about`

### Other components

- **Operator**

## Connections

- Operator → Adopter wizard: configures adopter
- Adopter wizard → Adopter settings: reads settings
- Adopter wizard → Config generator: runs generator
- Config generator → Map and layers: generates layers
- Config generator → Download themes: generates themes
- Config generator → About content: generates UI
- Operator → Setup orchestration: prepares stack
- Setup orchestration → Compose stack: starts infrastructure
- Setup orchestration → Demo seed: loads demo seed
- Demo seed → DSP database: seeds data
- Setup orchestration → Data migration job: runs migration
- Data migration job → DSP database: writes migrated data
- Data migration job → Exhibition GeoServer: publishes layers
- Data migration job → Download GeoServer: publishes layers
- Operator → Application starter: starts application
- Application starter → Compose stack: starts app services
- Compose stack → DSP database: runs service
- Compose stack → GeoServer database: runs service
- Compose stack → Exhibition GeoServer: runs service
- Compose stack → Download GeoServer: runs service
- Compose stack → Data migration job: runs job
- Compose stack → Geo-file generation job: runs scheduled job
- Compose stack → Object storage: runs service
- Compose stack → Nginx gateway: runs service
- Compose stack → Backend: runs service
- Compose stack → Frontend: runs service
- Nginx gateway → Frontend: routes requests
- Nginx gateway → Backend: routes requests
- Nginx gateway → Exhibition GeoServer: routes requests
- Nginx gateway → Download GeoServer: routes requests
- Geo-file generation job → Object storage: stores generated files
- Operator → Demo installer: installs demo
- Demo installer → Compose stack: starts demo stack
- Demo installer → Demo seed: loads seed
- Demo installer → DSP database: seeds database
- Demo installer → GeoServer database: seeds database
