mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
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:
30
roles/web-app-roulette-wheel/README.md
Normal file
30
roles/web-app-roulette-wheel/README.md
Normal 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).
|
1
roles/web-app-roulette-wheel/TODO.md
Normal file
1
roles/web-app-roulette-wheel/TODO.md
Normal file
@@ -0,0 +1 @@
|
||||
- Optimize or implement alternative
|
25
roles/web-app-roulette-wheel/meta/main.yml
Normal file
25
roles/web-app-roulette-wheel/meta/main.yml
Normal 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
|
13
roles/web-app-roulette-wheel/tasks/main.yml
Normal file
13
roles/web-app-roulette-wheel/tasks/main.yml
Normal 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
|
7
roles/web-app-roulette-wheel/templates/Dockerfile.j2
Normal file
7
roles/web-app-roulette-wheel/templates/Dockerfile.j2
Normal 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"]
|
10
roles/web-app-roulette-wheel/templates/docker-compose.yml.j2
Normal file
10
roles/web-app-roulette-wheel/templates/docker-compose.yml.j2
Normal 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' %}
|
3
roles/web-app-roulette-wheel/vars/configuration.yml
Normal file
3
roles/web-app-roulette-wheel/vars/configuration.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
domains:
|
||||
canonical:
|
||||
- "wheel.{{ primary_domain }}"
|
2
roles/web-app-roulette-wheel/vars/main.yml
Normal file
2
roles/web-app-roulette-wheel/vars/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
application_id: "roulette-wheel"
|
||||
app_path: "{{docker_compose.directories.instance}}/app/"
|
Reference in New Issue
Block a user