Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation

This commit is contained in:
2025-07-08 23:43:13 +02:00
parent 6b87a049d4
commit 563d5fd528
1242 changed files with 2301 additions and 1355 deletions

View File

@@ -0,0 +1,30 @@
# Roulette Wheel
## Warning
This role isn't actively maintained. Use it with caution in production environments.
## Overview
This role deploys and configures the Roulette Wheel application using Docker Compose. It pulls the latest source code from a Git repository, builds a Docker image from a Node.js base, and starts the application on a user-defined local HTTP port.
## Description
Roulette Wheel is a Node.js-based front-end application that is containerized using Docker. The role accomplishes the following:
- **Repository Integration:** Automatically clones or updates the application repository from GitHub.
- **Dockerfile Management:** Uses a custom Dockerfile (built on a Node.js image) to install dependencies, build the application, and define the startup command.
- **Container Deployment:** Integrates with Docker Compose for container orchestration, making it easy to manage the application's lifecycle.
## Features
- **Dockerized Deployment:** Packages the application in a Docker container for consistent and isolated runtime.
- **Automated Builds:** Uses an automated Docker build process with a dedicated Dockerfile.
- **Configurable Ports:** Exposes the application through a customizable host port.
- **Git Integration:** Ensures that the application source code is up-to-date by pulling from the specified Git repository.
## Other Resources
- [Roulette Wheel on GitHub](https://github.com/p-wojt/roulette-wheel)
- [Packaging Front-End Projects into Docker Images (Dev.to)](https://dev.to/ms314006/how-to-package-front-end-projects-into-web-app-images-and-use-it-with-webpack-go3)
- [Stack Overflow: Dockerfile to Run NodeJS Static Content](https://stackoverflow.com/questions/53178820/dockerfile-to-run-nodejs-static-content-in-docker-container)
- [Stack Overflow: Invalid Host Header Message with Webpack Dev Server](https://stackoverflow.com/questions/43619644/i-am-getting-an-invalid-host-header-message-when-connecting-to-webpack-dev-ser)
## Credits
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [veen.world](https://www.veen.world).
Licensed under the [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl).

View File

@@ -0,0 +1 @@
- Optimize or implement alternative

View File

@@ -0,0 +1,25 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: >
This role deploys and configures the Roulette Wheel application using Docker Compose.
It automates the process of pulling the latest source code from GitHub,
building a Docker image, and deploying the application.
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
galaxy_tags:
- docker
- nodejs
- roulette
- application
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
logo:
class: "fa-solid fa-dice"
dependencies:
- docker-compose

View File

@@ -0,0 +1,13 @@
---
- name: "include docker-compose role"
include_role:
name: docker-compose
- name: pull app repository
git:
repo: "https://github.com/kevinveenbirkenbach/roulette-wheel.git"
dest: "{{app_path}}"
update: yes
notify: docker compose up
become: true
ignore_errors: true

View File

@@ -0,0 +1,7 @@
FROM node:latest
WORKDIR /app
COPY ./app/package.json ./
RUN npm install
COPY ./app/ ./
RUN npm run build
CMD ["npm", "run", "start"]

View File

@@ -0,0 +1,10 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
application:
container_name: roulette_application
build:
context: .
ports:
- 127.0.0.1:{{ports.localhost.http[application_id]}}:8080
restart: {{docker_restart_policy}}
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@@ -0,0 +1,3 @@
domains:
canonical:
- "wheel.{{ primary_domain }}"

View File

@@ -0,0 +1,2 @@
application_id: "roulette-wheel"
app_path: "{{docker_compose.directories.instance}}/app/"