Sign inSign up

achaabni/vaadin-starwars

By achaabni

•Updated 2 months ago

Image
1

2.7K

achaabni/vaadin-starwars repository overview

⁠Vaadin 25 Star Wars Demo Application

A modern, lightweight containerized demo application built with Vaadin Flow 25.2 and Spring Boot 4.1 (running on Java 21). It showcases advanced Vaadin UI concepts, dynamic light/dark theme switching, custom web component integration, and multi-language support (I18N) set against a Star Wars universe backdrop.


ā šŸš€ How to Run the Container

You can launch the application instantly without needing Java or Maven installed on your machine.

⁠Quick Start (Run in foreground)
docker run -p 8080:8080 achaabni/vaadin-starwars:latest
⁠Run in Background (Detached Mode)
docker run -d -p 8080:8080 --name vaadin-starwars achaabni/vaadin-starwars:latest

Once started, open your browser and navigate to: šŸ‘‰ http://localhost:8080⁠


ā šŸ› ļø Tech Stack & Architecture

  • UI Framework: Vaadin 25 (with Vite frontend compilation)
  • Backend: Spring Boot 4.1 (Java 21)
  • Base Image: Eclipse Temurin OpenJDK 21 Alpine (optimized for size & security)
  • Features Integrated:
    • Aura Theme Integration: Advanced CSS variable overrides for custom visual spacing, colors, and layout control.
    • Dynamic Theme Switcher: Reactively toggles between light and dark modes.
    • Full I18N Support: Dynamic translation keys supporting English, French, German, Arabic, and more.
    • Kitchen Sink Component Showcase: Demonstrates modern inputs, sliders, responsive grid lists, cards, and modal dialogs.

ā āš™ļø Custom Configuration

You can pass environment variables to configure specific behaviors of the application at runtime:

docker run -p 8080:8080 \
  -e RYBBIT_ANALYTICS_ENABLED=true \
  -e RYBBIT_ANALYTICS_SITE_ID="RYBBIT-STARWARS-PROD" \
  -e APP_META_OG_TITLE="Resistance Command Center" \
  achaabni/vaadin-starwars:latest
⁠Supported Environment Variables
Environment VariableDefault ValueDescription
PORT8080The port the application server will listen on.
RYBBIT_ANALYTICS_ENABLEDfalseSet to true to enable Rybbit user engagement analytics.
RYBBIT_ANALYTICS_SITE_IDRYBBIT-DEMO-IDYour site ID for Rybbit tracking.
RYBBIT_ANALYTICS_SCRIPT_URLhttps://analytics.example.com/api/script.jsEndpoint URL of the analytics tracking script.
RYBBIT_ANALYTICS_ENABLE_WEB_VITALSfalseEnable/disable tracking of core browser performance vitals.
APP_META_OG_TITLEVaadin 25 Star Wars DemoOpenGraph SEO title applied to the page header metadata.
APP_META_OG_DESCRIPTIONStar Wars Signal Demo DescriptionOpenGraph SEO description applied to metadata.
APP_META_OG_IMAGEhttps://starwars.gladtek.com/icons/icon.pngOpenGraph preview thumbnail image URL.
APP_META_OG_URLhttps://starwars.gladtek.comOpenGraph site URL reference.
APP_META_OG_TYPEwebsiteOpenGraph content type categorizing the site.

ā šŸ‘Øā€šŸ’» Source Code & Forking

The full source code and GitHub Actions CI/CD workflows are hosted on GitHub: šŸ”— GitHub Repository⁠

If you wish to fork this project, you can automate your own Docker builds using the built-in GitHub Actions workflow and the version.json file. Check out the project's README for the step-by-step Forking Guide.

Tag summary

Content type

Image

Digest

sha256:2444af92e…

Size

108.3 MB

Last updated

2 months ago

docker pull achaabni/vaadin-starwars