## 📗 `playground-frontend/README.md` # 🎨 Playground Frontend This is the **frontend** of the Playground project. Built with **Angular 21** and **Angular Material**, including a simple light/dark theme toggle and multi-language support via **ngx-translate**. The app is built as a static **Single Page Application (SPA)** served by **NGINX**, deployed at: 👉 [https://app.andreas-dahm.eu](https://app.andreas-dahm.eu) --- ## 🧩 Tech Stack | Component | Purpose | |------------|----------| | Angular 21 | Frontend framework | | Angular Material | UI components & theming | | ngx-translate | i18n / instant translation | | NGINX | Serves the compiled SPA | | Docker + GitHub Actions | Automated build & image publishing | --- ## 📁 Project Structure playground-frontend/ ├─ src/ │ ├─ app/ │ │ ├─ app.component.ts │ │ ├─ theme.service.ts │ │ └─ ... │ ├─ assets/i18n/ │ │ ├─ en.json │ │ └─ de.json │ └─ index.html ├─ Dockerfile ├─ nginx.conf └─ .github/workflows/docker.yml --- ## 🚀 Local Development # 1. Install dependencies ```bash npm install ``` # 2. Start development server ```bash ng serve --open ``` App runs at http://localhost:4200 # 3. 🐳 Docker Build (local) ```bash docker build -t playground-frontend:local . docker run -p 8080:80 playground-frontend:local ``` Then open http://localhost:8080 ## ⚙️ GitHub Actions (CI/CD) On every push to main, GitHub Actions will: Build the Angular project 1. Create a Docker image 2. Push it to Docker Hub (docker.io/andreasdahm/playground-frontend:main) 3. Workflow file: .github/workflows/docker.yml Required repository secrets: Name Description DOCKERHUB_USERNAME Your Docker Hub username DOCKERHUB_TOKEN Personal access token for Docker Hub ## 🌐 Deployment The built image is deployed via https://github.com/lobothedark/playground-deploy on the Hostinger KVM server using Traefik. docker compose pull docker compose up -d ✅ Live site at https://app.andreas-dahm.eu ## 🪄 Maintainer Andreas Dahm 📧 andreas.dahm@gmail.com 🌐 https://andreas-dahm.eu