Level 2: Containers¶
The Containers diagram breaks down the AClimate system into its main internal services and shows how they connect with external systems.
Diagram¶

Internal Containers and Services of AClimate¶
AClimate (Website)¶
The main web application built with JavaScript and Next JS. It is the interface that end users interact with to explore climate data, forecasts, and spatial information. It consumes the WebAPI to retrieve and display climate information.
ETL de datos espaciales (Spatial Data ETL)¶
A process written in Python 3.10 that downloads and processes gridded climate data from sources like ERA5 and CHIRPS. It handles the transformation of raw spatial data into indicators and climatologies, and uploads the processed rasters to GeoServer for spatial visualization.
ETL de datos puntuales (Point Data ETL)¶
A process written in Python 3.10 that handles climate data from weather stations. It validates incoming data, aggregates it to monthly values, calculates climatologies and indicators, and stores the results in the database.
DB AClimate v3¶
The main PostgreSQL database of the platform. It stores all the agroclimatic information, including catalog entities, climate data, indicators, forecasts, and configuration parameters.
DB AClimate v3 Users¶
A separate PostgreSQL database dedicated to storing user information, profiles, and access control data. This separation allows user-related data to be managed independently from the main climate data.
AClimate v3 WebAPI¶
The RESTful API service built with Python 3.10 and FastAPI. It exposes the agroclimatic data through endpoints organized by domain, such as geographic levels, climate data, indicators, and country-specific measures. All endpoints require authentication through Keycloak.
AClimate v3 Admin¶
The administrative web portal built with Python 3.10 and Flask. It provides the interface for configuring system parameters, managing geographic entities, crops, soils, indicators, users, and other configuration elements.
AClimate v3 WebAPI Users¶
A separate API service built with Python 3.10 and FastAPI. It handles user-specific functionality such as registration, profile management, user validation, and management of user weather stations and preferences.
Keycloak¶
The internal authentication service of the platform. It manages user identities, provides single sign-on across all components, and handles the tokens that secure API communications.
GeoServer¶
The internal geospatial web service. It serves climate and agroclimatic spatial data as map layers through standard OGC protocols, which the frontend uses to display interactive maps.
Integrated External Systems¶
ERA5 v2 (Copernicus API)¶
External source of global gridded climate data provided by Copernicus. It supplies reanalysis data for temperature, precipitation, solar radiation, and other variables used by the spatial ETL.
CHIRPS v3 (Copernicus API)¶
External rainfall dataset accessed through the Copernicus API. It provides historical precipitation data used by the spatial ETL to generate precipitation indicators.
Forecast API (External Forecast)¶
External service that provides seasonal and sub-seasonal climate forecasts. The platform consumes this API to complement its forecasting capabilities.