Kolophon

Technische Details des Bluesky Profile Roast

Zurück zur Hauptseite

Technologie-Stack

Programmiersprachen

  • Backend: Java 21 (Amazon Corretto)
  • Frontend: HTML, JavaScript, CSS
  • Datenbankmigrationen: SQL

Frameworks & Bibliotheken

  • Backend: Quarkus 3.19.1 (Jakarta EE-kompatibles Framework)
  • ORM: Hibernate mit Panache für vereinfachte Datenbankoperationen
  • Datenbankmigration: Flyway für automatisierte Schemaänderungen
  • Authentifizierung: SmallRye JWT für JSON Web Token-Implementierung
  • Frontend: HTMX für interaktive Benutzeroberfläche, TailwindCSS für Styling
  • Testing: JUnit 5, Mockito, RestAssured, Selenium für UI-Tests
  • Logging: Quarkus-Logging mit JSON-Formatierung

Datenbank

  • RDBMS: PostgreSQL 15
  • Tabellen: Nutzer, OTP-Tokens, OTP-Throttling, Bluesky-Profile, Roast-Daten
  • Transaktionsmanagement: Jakarta Persistence API (JPA) mit Hibernate

Externe Dienste & Integrationen

  • Bluesky API: Integration mit dem Bluesky-Protokoll für Profilabrufe
  • Google Gemini API: KI-gestützte Textgenerierung für Roast-Inhalte
  • SMTP: E-Mail-Versand für Magic-Link-Authentifizierung
  • Telegram API: Monitoring-Benachrichtigungen für Systemereignisse

Infrastruktur & Deployment

Containerisierung

  • Docker: Multi-Stage-Builds für optimierte Container-Images
  • docker-compose: Orchestrierung der Anwendungscontainer und Datenbank
  • GitHub Container Registry: Speicherung und Verteilung der Images

CI/CD-Pipeline

  • GitHub Actions: Automatisierte Workflows für Builds und Tests
  • Automatisierte Tests: Unit-Tests, Integrationstests und UI-Tests
  • Deployment: Automatisches Deployment auf Staging und manuelle Freigabe für Produktion
  • Container-Sicherheit: Image-Scanning für Sicherheitslücken

Laufzeitumgebung

  • Server: Hetzner Cloud (ARM64-basierte virtuelle Maschinen)
  • Reverse Proxy: Traefik für Routing und automatische SSL-Zertifikate
  • SSL: Let's Encrypt für automatische Zertifikatserneuerung
  • DNS: Externe DNS-Konfiguration mit CNAME-Einträgen für Subdomain-Routing

Monitoring & Betrieb

  • Health Checks: Integrierte Quarkus-Healthchecks für Anwendung und Datenbank
  • Logging: Strukturierte JSON-Logs mit Rotation und Archivierung
  • Metriken: Smallrye Metrics für Leistungsüberwachung
  • Alarmierung: Telegram-Benachrichtigungen bei kritischen Ereignissen

Entwicklungsumgebung

Lokale Entwicklung

  • JDK: Amazon Corretto 21 (Java Development Kit)
  • Build-System: Maven mit Quarkus-Maven-Plugin
  • Dev-Mode: Quarkus-Entwicklungsmodus mit Hot-Reload-Funktionalität
  • Lokale Datenbank: PostgreSQL (entweder nativ oder Docker-Container)
  • IDE: Kompatibel mit IntelliJ IDEA, Eclipse, VS Code

Entwicklungsprozess

  • Version Control: Git mit Feature-Branch-Workflow
  • Code-Review: Pull Requests mit Peer-Reviews vor Merge
  • Qualitätssicherung: Automatisierte Tests bei jedem Commit
  • Umgebungen: Entwicklung, Test, Staging und Produktion

Architektur

Backend-Architektur

  • Schichtenarchitektur: Repository → Service → Resource (Controller)
  • Dependency Injection: CDI (Context and Dependency Injection)
  • REST API: JAX-RS-konformes API mit JSON-Datenaustausch
  • Authentifizierung: JWT-basierte Authentifizierung mit Magic Links
  • OTP-Sicherheit: Rate-Limiting und Throttling für One-Time-Passwords

Frontend-Architektur

  • HTML-first: Progressive Enhancement mit HTMX
  • JavaScript: Minimaler Einsatz von JavaScript für erweiterte Interaktivität
  • CSS: Utility-First-Ansatz mit TailwindCSS
  • Responsive Design: Mobile-first Layout für alle Bildschirmgrößen