Architecture of the Deployment¶
This document provides an in-depth look at the architecture of the Rooms deployment. It outlines the various components involved, their interactions, and how they contribute to the overall functionality of the system.
Components Overview¶
Figure 1: Complete deployment architecture showing all components and their relationships
The deployment architecture consists of several key components, each serving a specific purpose:
- Rooms Backend: The core application server that handles business logic, API requests, and data processing.
- Rooms Frontend: The user interface that allows users to interact with the Rooms application
- PostgreSQL Database: The primary database for storing application data, user information, and configurations.
- Redis Cache: An in-memory data structure store.
- Traefik Reverse Proxy: Manages incoming traffic, routes requests to the appropriate services, and handles SSL termination.
- Dozzle: A web-based log viewer for monitoring container logs in real-time.
- Glances: A cross-platform monitoring tool that provides real-time system statistics.
- PgAdmin: A web-based administration tool for managing PostgreSQL databases.
- RedisInsight: A GUI tool for managing and monitoring Redis databases.
- Documentation Server: Hosts the mkdocs-based documentation for easy access.
Components¶
The deployment consists of three main categories: Core Services, Infrastructure, and Management Tools. Each component runs as a Docker container orchestrated via Docker Compose.
Core Application Services¶
🚀 Rooms Backend¶
Technology Stack: Go
Purpose: Handles API requests, business logic, and data processing
The backend serves as the core application server, managing all business operations and communicating with PostgreSQL for data persistence. Authentication tokens are cached in Redis for optimal performance.
- API Documentation: Swagger UI
- Technical Docs: Backend Documentation
🎨 Rooms Frontend¶
Technology Stack: React, Vite, TypeScript
Purpose: User interface for application interaction
The frontend provides an intuitive interface for users to manage rooms and interact with backend services through RESTful API calls.
- Application URL: https://www.sysdf-rooms.f4.htw-berlin.de
- Technical Docs: Frontend Documentation
Data Layer¶
🗄️ PostgreSQL Database¶
Purpose: Primary data persistence layer
PostgreSQL stores all application data including user accounts, room configurations, bookings, and system settings. The database is managed through PgAdmin for administrative tasks.
- Official Site: postgresql.org
⚡ Redis Cache¶
Purpose: In-memory caching and session management
Redis improves application performance by caching JWT tokens, session data, and frequently accessed information. This reduces database load and speeds up authentication operations.
- Official Site: redis.io
Infrastructure & Routing¶
🔀 Traefik Reverse Proxy¶
Purpose: Traffic routing, SSL termination, and load balancing
Traefik manages all incoming HTTP/HTTPS traffic, automatically routing requests to appropriate services. It handles SSL certificate provisioning and renewal through Let’s Encrypt integration.
- Dashboard: traefik.sysdf-rooms.f4.htw-berlin.de 🔒
- Official Site: traefik.io
Monitoring & Administration¶
📊 System Monitoring¶
Dozzle - Container log aggregation
Real-time log viewer for all Docker containers, essential for debugging and monitoring application behavior.
- Access: dozzle.sysdf-rooms.f4.htw-berlin.de 🔒
- Official Site: dozzle.dev
Glances - System performance metrics
Cross-platform monitoring tool displaying CPU, memory, disk, and network statistics in real-time.
- Access: glances.sysdf-rooms.f4.htw-berlin.de 🔒
- Official Site: nicolargo.github.io/glances
🛠️ Database Administration¶
PgAdmin - PostgreSQL management interface
Web-based tool for database administration, query execution, and schema management.
- Access: pgadmin.sysdf-rooms.f4.htw-berlin.de 🔒
- Official Site: pgadmin.org
RedisInsight - Redis management GUI
Visual tool for monitoring Redis performance, inspecting data structures, and executing commands.
- Access: redisinsight.sysdf-rooms.f4.htw-berlin.de 🔒
- Official Site: redis.io/insight
Documentation¶
📚 Documentation Server¶
Technology: MkDocs
Purpose: Centralized technical documentation
Hosts comprehensive documentation for the Rooms application, including architecture details, API references, and deployment guides.
- Access: docs.sysdf-rooms.f4.htw-berlin.de
- Official Site: mkdocs.org
Quick Reference¶
| Component | Type | URL | Auth |
|---|---|---|---|
| Frontend | Application | Link | User Login |
| Backend API | Application | Link | API Key |
| Swagger Docs | Documentation | Link | Public |
| Traefik | Infrastructure | Link | 🔒 Admin |
| Dozzle | Monitoring | Link | 🔒 Admin |
| Glances | Monitoring | Link | 🔒 Admin |
| PgAdmin | Admin Tool | Link | 🔒 Admin |
| RedisInsight | Admin Tool | Link | 🔒 Admin |
| Documentation | Documentation | Link | Public |
Legend: 🔒 = Requires authentication