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:
32
roles/web-app-presentation/README.md
Normal file
32
roles/web-app-presentation/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Presentation
|
||||
|
||||
## Description
|
||||
|
||||
This **CyMaIS Presentation** is a powerful tool designed for showcasing the CyMaIS platform to various audiences, including **Administrators**, **Developers**, **End-Users**, **Businesses**, and **Investors**. The presentation leverages **Reveal.js** to create an interactive, engaging, and fully containerized experience that can be easily deployed with Docker.
|
||||
|
||||
This role automates the process of setting up and running the CyMaIS presentation in a Docker container, ensuring a reproducible and isolated environment for displaying the content.
|
||||
|
||||
## Overview
|
||||
|
||||
The **CyMaIS Presentation** role automates the setup of an environment using Docker, providing a seamless process for pulling your source repository, building the presentation, and serving the slides through a lightweight HTTP server. It uses **[Reveal.js](https://revealjs.com/)** for building and serving the presentation slides and can be deployed with **Kevin's Package Manager**.
|
||||
|
||||
### Features
|
||||
|
||||
- **Fully Automated Setup**: The role handles all tasks, including pulling the source repository, building the Docker image, and serving the presentation through a web server.
|
||||
- **Dockerized Environment**: The entire process is contained within Docker, ensuring consistent builds and easy deployment.
|
||||
- **Interactive Slides**: The presentation is built with **Reveal.js**, allowing for interactive slides with advanced features like fragments, transitions, and more.
|
||||
- **Customizable**: Easily configurable to point to your own source code or documentation.
|
||||
|
||||
## Further Resources
|
||||
|
||||
For more information about the **CyMaIS Presentation**, check out the GitHub repository: [CyMaIS Presentation](https://github.com/kevinveenbirkenbach/cymais-presentation)
|
||||
|
||||
For more about **Reveal.js**, visit: [Reveal.js](https://revealjs.com/)
|
||||
|
||||
## License 📄
|
||||
|
||||
This project is licensed under the **CyMaIS NonCommercial License (CNCL)** - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
---
|
||||
|
||||
For additional details about CyMaIS, visit: [cymais.cloud](https://cymais.cloud)
|
28
roles/web-app-presentation/meta/main.yml
Normal file
28
roles/web-app-presentation/meta/main.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "This Presentation Software is a powerful tool designed for showcasing the CyMaIS platform to various audiences, including Administrators, Developers, End-Users, Businesses, and Investors."
|
||||
license: "CyMaIS NonCommercial License (CNCL)"
|
||||
license_url: "https://s.veen.world/cncl"
|
||||
company: |
|
||||
Kevin Veen-Birkenbach
|
||||
Consulting & Coaching Solutions
|
||||
https://www.veen.world
|
||||
min_ansible_version: "2.9"
|
||||
platforms:
|
||||
- name: Docker
|
||||
versions:
|
||||
- all
|
||||
- name: Linux
|
||||
versions:
|
||||
- all
|
||||
galaxy_tags:
|
||||
- presentation
|
||||
- revealjs
|
||||
- docker
|
||||
- automation
|
||||
- deployment
|
||||
repository: "https://github.com/kevinveenbirkenbach/cymais-presentation"
|
||||
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||
documentation: "https://s.veen.world/cymais"
|
||||
logo:
|
||||
class: "fas fa-chalkboard-teacher"
|
31
roles/web-app-presentation/tasks/main.yml
Normal file
31
roles/web-app-presentation/tasks/main.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
- name: "pkgmgr install"
|
||||
include_role:
|
||||
name: pkgmgr-install
|
||||
vars:
|
||||
package_name: cymais-presentation
|
||||
# package_notify: docker compose up
|
||||
|
||||
- name: Get path of cymais-presentation using pkgmgr
|
||||
command: pkgmgr path cymais-presentation
|
||||
register: path_cymais_presentation_output
|
||||
|
||||
- name: Get path of cymais using pkgmgrpull docker repository
|
||||
command: pkgmgr path cymais
|
||||
register: path_cymais_output
|
||||
|
||||
- name: "include docker-compose role"
|
||||
include_role:
|
||||
name: docker-compose
|
||||
|
||||
- name: "include role webserver-proxy-domain for {{application_id}}"
|
||||
include_role:
|
||||
name: webserver-proxy-domain
|
||||
vars:
|
||||
domain: "{{ domains | get_domain(application_id) }}"
|
||||
http_port: "{{ ports.localhost.http[application_id] }}"
|
||||
|
||||
# Hack because it wasn't possible to fix an handler bug in pkgmgr install
|
||||
- name: „Trigger“ docker compose up
|
||||
command: /bin/true
|
||||
notify: docker compose up
|
15
roles/web-app-presentation/templates/docker-compose.yml.j2
Normal file
15
roles/web-app-presentation/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,15 @@
|
||||
{% include 'roles/docker-compose/templates/base.yml.j2' %}
|
||||
cymais-presentation:
|
||||
build:
|
||||
context: {{ path_cymais_presentation_output.stdout }}
|
||||
dockerfile: {{ path_cymais_presentation_output.stdout }}/Dockerfile
|
||||
ports:
|
||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:5000"
|
||||
volumes:
|
||||
- {{ path_cymais_presentation_output.stdout }}:/app
|
||||
- {{ path_cymais_output.stdout }}:/source
|
||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||
{% include 'roles/docker-container/templates/networks.yml.j2' %}
|
||||
|
||||
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||
|
1
roles/web-app-presentation/templates/env.j2
Normal file
1
roles/web-app-presentation/templates/env.j2
Normal file
@@ -0,0 +1 @@
|
||||
FLASK_DEBUG={{ enable_debug }}
|
26
roles/web-app-presentation/vars/configuration.yml
Normal file
26
roles/web-app-presentation/vars/configuration.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
features:
|
||||
matomo: true
|
||||
css: true
|
||||
portfolio_iframe: true
|
||||
|
||||
csp:
|
||||
whitelist:
|
||||
script-src-elem:
|
||||
- https://cdnjs.cloudflare.com
|
||||
- https://code.jquery.com
|
||||
- https://cdn.jsdelivr.net
|
||||
style-src:
|
||||
- https://cdnjs.cloudflare.com
|
||||
- https://cdn.jsdelivr.net
|
||||
font-src:
|
||||
- https://cdnjs.cloudflare.com
|
||||
flags:
|
||||
style-src:
|
||||
unsafe-inline: true
|
||||
script-src:
|
||||
unsafe-eval: true
|
||||
script-src-elem:
|
||||
unsafe-inline: true
|
||||
domains:
|
||||
canonical:
|
||||
- "slides.{{ primary_domain }}"
|
1
roles/web-app-presentation/vars/main.yml
Normal file
1
roles/web-app-presentation/vars/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
application_id: "presentation"
|
Reference in New Issue
Block a user