Jump to content
Toggle sidebar
UNITApedia
Search
English
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Talk
Contributions
Navigation
Main Page
User Guide
Documentation
Viewpoints
Structural
Strategic
Beneficiary
Semantic
Infrastructure
Data
Beneficiaries
UNITA Participants
GEMINAE
Collectives
Agile Management Guide
Quality Management Process
Tools
What links here
Related changes
Special pages
Page information
Page values
In other languages
Editing
Documentation
(section)
Page
Discussion
English
Read
Edit
Edit source
View history
More
Read
Edit
Edit source
View history
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== High-Level Overview == UNITApedia is composed of several interconnected services running in Docker containers, orchestrated via Docker Compose. The main components are: === Nginx-Proxy Service === * '''Role''': Acts as a reverse proxy, routing external HTTP/HTTPS requests to the appropriate backend service based on URL paths. * '''Security''': Integrates with the ACME Companion service for automatic SSL certificate management and renewal, ensuring secure connections via HTTPS. * '''Endpoints''': Forwards traffic to MediaWiki, [https://unitapedia.univ-unita.eu/strapi/ Strapi], phpMyAdmin, [https://unitapedia.univ-unita.eu/pga/ pgAdmin], [https://unitapedia.univ-unita.eu/minio/ MinIO], [https://unitapedia.univ-unita.eu/hop/ Apache HOP], and any additional admin interfaces. [[File:Nging-proxy service.jpg|thumb|930px|center|Nginx-proxy Service Architeture]] ===MediaWiki Container=== * '''Primary Role''': Serves as the user-facing front-end, allowing UNITA stakeholders to view, edit, and query data related to alliance activities and indicators. * '''Extensions''': ** [https://www.mediawiki.org/wiki/Extension:External_Data External Data] – Dynamically queries the [https://unitapedia.univ-unita.eu/pga/ PostgreSQL] data warehouse (datamart) to display indicators, metrics, and other information. ** [https://www.mediawiki.org/wiki/Extension:Page_Forms Page Forms] / [https://www.mediawiki.org/wiki/Extension:Semantic_Media_Wiki Semantic MediaWiki] – Enables structured data input and advanced semantic queries within the wiki. ** [https://www.mediawiki.org/wiki/Extension:Scribunto Scribunto (Lua)] – Allows for more advanced scripting and data manipulation. ** [https://www.mediawiki.org/wiki/Extension:PluggableAuth PluggableAuth] + [https://www.mediawiki.org/wiki/Extension:OpenID_Connect OpenID Connect] – Integrates SSO (e.g., Keycloak) for institutional login. * '''Configuration''': Managed via LocalSettings.php, which includes namespace definitions (e.g., DataSrc and Doc) and data source connections (prepared SQL statements). [[File:MediaWiki Service.jpg|thumb|930px|center|MediaWiki Service Architeture]] ===PostgreSQL (Data Warehouse)=== * '''Role''': Central repository storing structured data such as deliverables, indicators, and metrics. * '''Multi-Database Setup''': ** ''strapi'': Contains raw input tables from [https://unitapedia.univ-unita.eu/strapi/ Strapi] forms. ** ''datamart'': Holds transformed and processed data ready for MediaWiki queries. ** ''unita-data'': Contain additional metadata or wiki configuration tables. * '''Administration''': Managed via pgAdmin for database operations (e.g., backups, user management). ===Apache HOP (ETL and Reporting)=== * '''Processes''': ** '''Data Retrieval''': Fetches raw datasets from [https://unitapedia.univ-unita.eu/minio/ MinIO] buckets (CSV files) or [https://unitapedia.univ-unita.eu/strapi/ Strapi] tables in [https://unitapedia.univ-unita.eu/pga/ PostgreSQL]. ** '''Data Transformation''': Cleans and normalizes data, ensuring consistency (e.g., date formatting, numeric checks, selecting values). ** '''Data Integration''': Loads validated data into the datamart schema for consumption by MediaWiki. * '''Scheduling & Monitoring''': Deployed [https://unitapedia.univ-unita.eu/hop/ Apache HOP] “Carte Server” allows scheduling of jobs and transformations, with logs for error handling and performance monitoring. [[File:Apache Service.jpg|thumb|930px|center|Apache HOP Service Architeture]] ===MinIO (Object Storage)=== * '''Role''': Stores raw data files (CSV, PDFs, images, etc.) uploaded by UNITA Offices. * '''Integration''': [https://unitapedia.univ-unita.eu/hop/ Apache HOP] connects to [https://unitapedia.univ-unita.eu/minio/ MinIO] using an S3-compatible interface, retrieving files for ETL processing. * '''Organization''': Multiple buckets can be created (e.g., “dev” for storing [https://unitapedia.univ-unita.eu/hop/ Apache HOP] transformations, indicators buckets to store CSV files coming from UNITA Offices). [[File:Minio Service.jpg|thumb|930px|center|MinIO Service Architeture]] === Strapi (Middleware / Headless CMS) === * '''Purpose''': Provides a user-friendly interface for UNITA Offices to manually input or update indicator data. * '''Data Flow''': Stores raw records in its own [https://unitapedia.univ-unita.eu/pga/ PostgreSQL]L database schema, which [https://unitapedia.univ-unita.eu/hop/ Apache HOP] then reads, transforms, and pushes into datamart. * '''APIs''': Exposes REST or GraphQL endpoints if needed for external integrations or advanced use cases. [[File:Strapi Service.jpg|thumb|930px|center|Strapi Service Architeture]] === Administrative Interfaces === * '''phpMyAdmin''': Web-based administration tool for MariaDB (if used, e.g., for certain MediaWiki tables or other services). * '''pgAdmin''': Used to manage [https://unitapedia.univ-unita.eu/pga/ PostgreSQL] databases, including creation of new schemas, user roles, and backups. === Docker-Based Infrastructure === * '''Containerization''': Each service (MediaWiki, [https://unitapedia.univ-unita.eu/strapi/ Strapi], [https://unitapedia.univ-unita.eu/hop/ Apache HOP], [https://unitapedia.univ-unita.eu/pga/ PostgreSQL], [https://unitapedia.univ-unita.eu/minio/ MinIO], Nginx) runs in its own container, simplifying updates and scaling. * '''Networking''': Docker Compose defines an internal network allowing containers to communicate securely without exposing internal ports directly to the public internet. * '''Environment Variables''': Credentials and configuration details (e.g., database passwords, S3 access keys) are injected at runtime to keep them out of version control.
Summary:
Please note that all contributions to UNITApedia are considered to be released under the Creative Commons Zero (public domain) (see
UNITApedia:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Debug data: