Deployment View

Infrastructure Level 1

deployment view

The LibreHousehold system is deployed using a simple container-based architecture that provides both flexibility and easy maintenance.

Server Infrastructure

Nginx Container (Frontend)

Technology: Nginx Web Server in Docker Container

Responsibilities: - Serving static PWA files (HTML, JavaScript, CSS) - Reverse proxy for API calls to the backend

Quality attributes: - Fast delivery of static content - Simple configuration and deployment - Low resource requirements

Backend Container

Technology: Kotlin Spring Boot Application in Docker Container

Responsibilities: - REST API for all business logic - Database connection and persistence - User authentication and authorization - Integration with email services

Quality attributes: - Scalability through container replication - Easy deployments through container updates - Application isolation

Client Devices

Desktop Browser

Technology: Standard Web Browser (Chrome, Firefox, Safari)

Responsibilities: - Execution of the Progressive Web App - Local data storage for offline functionality - Service Worker for background synchronization

Mobile Browser/PWA

Technology: Embedded Browser (WebView) or PWA installation

Responsibilities: - Native app-like experience on smartphones - Offline functionality

Quality attributes: - Cross-platform compatibility - No app store dependencies - Automatic updates via browser

External Services

E-Mail Server

Technology: SMTP-compatible email service

Responsibilities: - Sending household invitations - Notifications about important events - Password reset emails

Database

Can be either a (cloud) hosted database service or a containerized database instance.

Technology: PostgreSQL Database

Responsibilities: - Persistent storage of user data, household data, and application state - Data integrity and consistency

Deployment Mapping

Software Module Infrastructure Element Deployment Artifact

Frontend PWA

Nginx Container

Static files (HTML, JS, CSS)

Backend API

Backend Container

Docker Image (Kotlin JAR)

Web Server

Nginx Container

Nginx configuration

E-Mail Service

External SMTP Server

SMTP configuration