From 218303824092b5dba98be2bdb3337954991b4efa Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Thu, 10 Apr 2025 17:49:47 +0200 Subject: [PATCH] Optimized for portfolio, presentation and docs --- LICENSE.md | 8 +- roles/docker-attendize/README.md | 4 +- roles/docker-attendize/TODO.md | 1 + roles/docker-bigbluebutton/meta/main.yml | 3 +- roles/docker-bluesky/meta/main.yml | 2 +- roles/docker-central-database/README.md | 2 +- roles/docker-compose/README.md | 2 +- roles/docker-elk/README.md | 38 +++- roles/docker-elk/TODO.md | 1 + roles/docker-elk/meta/main.yml | 25 ++- roles/docker-friendica/meta/main.yml | 2 +- roles/docker-fusiondirectory/README.md | 6 +- roles/docker-fusiondirectory/TODO.md | 1 + roles/docker-mastodon/meta/main.yml | 4 +- roles/docker-matrix-ansible/README.md | 36 +++- roles/docker-matrix-ansible/meta/main.yml | 27 ++- roles/docker-mybb/README.md | 2 +- roles/docker-peertube/meta/main.yml | 1 + roles/docker-portfolio/README.md | 2 +- .../lookup_plugins/docker_cards_grouped.py | 6 +- roles/docker-portfolio/tasks/main.yml | 12 +- .../docker-portfolio/templates/config.yaml.j2 | 66 +------ .../templates/footer_menu.yaml.j2 | 166 +++++++++++++----- .../docker-portfolio/vars/menu_categories.yml | 16 +- roles/docker-postgres/README.md | 2 +- roles/docker-repository-setup/README.md | 2 +- roles/docker-roulette-wheel/README.md | 33 +++- roles/docker-roulette-wheel/TODO.md | 1 + roles/docker-roulette-wheel/meta/main.yml | 25 ++- roles/docker-taiga/README.md | 2 +- roles/docker-wordpress/meta/main.yml | 1 + roles/docker-yourls/README.md | 2 +- 32 files changed, 346 insertions(+), 155 deletions(-) create mode 100644 roles/docker-attendize/TODO.md create mode 100644 roles/docker-elk/TODO.md create mode 100644 roles/docker-fusiondirectory/TODO.md create mode 100644 roles/docker-roulette-wheel/TODO.md diff --git a/LICENSE.md b/LICENSE.md index e158a1a4..7555bd0b 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,12 +1,12 @@ # License Agreement -**CyMaIS NonCommercial License (CNCL)** +## CyMaIS NonCommercial License (CNCL) -## Definitions +### Definitions - **"Software":** Refers to *"[CyMaIS - Cyber Master Infrastructure Solution](https://cymais.cloud/)"* and its associated source code. - **"Commercial Use":** Any use of the Software intended for direct or indirect financial gain, including but not limited to sales, rentals, or provision of services. -## Provisions +### Provisions 1. **Attribution of the Original Licensor:** In any distribution or publication of the Software or derivative works, the original licensor, *Kevin Veen-Birkenbach, Email: [license@veen.world](mailto:license@veen.world), Website: [https://www.veen.world/](https://www.veen.world/)* must be explicitly named. @@ -25,5 +25,5 @@ 7. **Ownership of Rights:** All rights, including copyright, trademark, and other forms of intellectual property related to the Software, belong exclusively to Kevin Veen-Birkenbach. -## Consent +### Consent By using, modifying, or distributing the Software, you agree to these terms. \ No newline at end of file diff --git a/roles/docker-attendize/README.md b/roles/docker-attendize/README.md index 33c7c88f..33ddc241 100644 --- a/roles/docker-attendize/README.md +++ b/roles/docker-attendize/README.md @@ -1,4 +1,6 @@ -# Docker Attendize (WIP) +# Attendize + +## Warning > **Note:** This role is a work in progress. Use with caution and check for updates. diff --git a/roles/docker-attendize/TODO.md b/roles/docker-attendize/TODO.md new file mode 100644 index 00000000..269e08aa --- /dev/null +++ b/roles/docker-attendize/TODO.md @@ -0,0 +1 @@ +- Implement this role \ No newline at end of file diff --git a/roles/docker-bigbluebutton/meta/main.yml b/roles/docker-bigbluebutton/meta/main.yml index df36e8c9..8b97f592 100644 --- a/roles/docker-bigbluebutton/meta/main.yml +++ b/roles/docker-bigbluebutton/meta/main.yml @@ -22,7 +22,8 @@ galaxy_info: - sso - oidc - ldap - - archlinux + - video + - conference repository: https://s.veen.world/cymais issue_tracker_url: https://s.veen.world/cymaisissues documentation: https://s.veen.world/cymais diff --git a/roles/docker-bluesky/meta/main.yml b/roles/docker-bluesky/meta/main.yml index 63a13a15..ebbc1177 100644 --- a/roles/docker-bluesky/meta/main.yml +++ b/roles/docker-bluesky/meta/main.yml @@ -11,7 +11,7 @@ galaxy_info: galaxy_tags: - bluesky - docker - - social networking + - social network - decentralized repository: https://s.veen.world/cymais issue_tracker_url: https://s.veen.world/cymaisissues diff --git a/roles/docker-central-database/README.md b/roles/docker-central-database/README.md index 800533d4..dd6e0dad 100644 --- a/roles/docker-central-database/README.md +++ b/roles/docker-central-database/README.md @@ -1,4 +1,4 @@ -# Docker Central Database 🐳 +# Central Database ## Description diff --git a/roles/docker-compose/README.md b/roles/docker-compose/README.md index 7bf5352e..9a1f07bd 100644 --- a/roles/docker-compose/README.md +++ b/roles/docker-compose/README.md @@ -1,4 +1,4 @@ -# Docker Compose 🧱 +# Docker Compose ## Description diff --git a/roles/docker-elk/README.md b/roles/docker-elk/README.md index 21305359..4a6ba044 100644 --- a/roles/docker-elk/README.md +++ b/roles/docker-elk/README.md @@ -1,8 +1,34 @@ -# DRAFT docker-elk +# ELK Stack -I decided against using this role for security reasons. I recommend to use another tool if you don't want to pay for keeping your logs save and if you don't want to depend on external servers. +## Warning +For security reasons, this role is not recommended. If you prefer to keep your logs safe without relying on external servers, consider using an alternative tool. -## see -- https://logz.io/blog/elk-stack-on-docker/ -- https://github.com/kevinveenbirkenbach/docker-elk -- https://logz.io/blog/docker-logging/ +## Overview +This Ansible role deploys and configures an [ELK Stack](https://en.wikipedia.org/wiki/Elastic_stack) (comprising [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch), [Logstash](https://en.wikipedia.org/wiki/Elastic_stack), and [Kibana](https://en.wikipedia.org/wiki/Kibana)) using [Docker Compose](https://en.wikipedia.org/wiki/Docker_Compose). The ELK Stack is widely used for centralized log collection, analysis, and visualization of log and machine-generated data. + +## Description +This role performs the following tasks: +- **Setup & Configuration:** Installs and configures the three main components—Elasticsearch, Logstash, and Kibana. +- **Template-Driven Adjustments:** Adapts configuration files through templates and variables. +- **Docker Integration:** Deploys the stack using Docker Compose, integrating it into your containerized environment. +- **Service Management:** Handles service restarts and updates through Ansible handlers. + +## Purpose +The ELK Stack is primarily used for: +- **Centralized Log Management:** Consolidating logs from various systems into one location. +- **Real-Time Troubleshooting:** Quickly diagnosing issues through live log analysis. +- **Performance Monitoring:** Tracking system performance and identifying anomalies. +- **Security Analysis:** Detecting and investigating security incidents based on log data. + +## Features +- **Centralized Log Management:** Collects and aggregates logs from disparate systems. +- **Real-Time Analysis:** Leverages Elasticsearch for fast data search and analytics. +- **Flexible Data Pipelines:** Processes and transforms log data with Logstash. +- **Interactive Visualization:** Creates dashboards and visual reports with Kibana. +- **Scalable & Extensible:** Easily integrates additional tools and custom configurations via templates. + +## Credits 📝 +Developed and maintained by **Kevin Veen-Birkenbach**. +For more information, visit [www.veen.world](https://www.veen.world). +Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais). +License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl) \ No newline at end of file diff --git a/roles/docker-elk/TODO.md b/roles/docker-elk/TODO.md new file mode 100644 index 00000000..47744e43 --- /dev/null +++ b/roles/docker-elk/TODO.md @@ -0,0 +1 @@ +- implement \ No newline at end of file diff --git a/roles/docker-elk/meta/main.yml b/roles/docker-elk/meta/main.yml index d3606e63..664cc2c2 100644 --- a/roles/docker-elk/meta/main.yml +++ b/roles/docker-elk/meta/main.yml @@ -1,2 +1,23 @@ -dependencies: -- nginx-docker-reverse-proxy +--- +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: "Transform online learning and collaboration with BigBlueButton, an interactive web conferencing solution designed to energize virtual classrooms and meetings. Enjoy dynamic tools and an engaging environment that makes every session a powerful learning experience." + 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: + - "latest" + galaxy_tags: + - elk + - docker + - log-management + - administration + repository: "https://s.veen.world/cymais" + issue_tracker_url: "https://s.veen.world/cymaisissues" + documentation: "https://s.veen.world/cymais" diff --git a/roles/docker-friendica/meta/main.yml b/roles/docker-friendica/meta/main.yml index 465d049b..7f43512a 100644 --- a/roles/docker-friendica/meta/main.yml +++ b/roles/docker-friendica/meta/main.yml @@ -11,7 +11,7 @@ galaxy_info: galaxy_tags: - friendica - docker - - social networking + - social network - decentralized repository: https://s.veen.world/cymais issue_tracker_url: https://s.veen.world/cymaisissues diff --git a/roles/docker-fusiondirectory/README.md b/roles/docker-fusiondirectory/README.md index ef51ef21..14307b45 100644 --- a/roles/docker-fusiondirectory/README.md +++ b/roles/docker-fusiondirectory/README.md @@ -1,7 +1,7 @@ -# DRAFT FusionDirectory DRAFT🐳 +# FusionDirectory -# TODO -This needs to be implemented +# Warning +This application isn't implemented yet ## Description diff --git a/roles/docker-fusiondirectory/TODO.md b/roles/docker-fusiondirectory/TODO.md new file mode 100644 index 00000000..269e08aa --- /dev/null +++ b/roles/docker-fusiondirectory/TODO.md @@ -0,0 +1 @@ +- Implement this role \ No newline at end of file diff --git a/roles/docker-mastodon/meta/main.yml b/roles/docker-mastodon/meta/main.yml index d6e14f4c..bbe5e299 100644 --- a/roles/docker-mastodon/meta/main.yml +++ b/roles/docker-mastodon/meta/main.yml @@ -11,9 +11,11 @@ galaxy_info: galaxy_tags: - mastodon - docker - - social networking - federated - decentralized + - microblog + - social network + repository: "https://s.veen.world/cymais" issue_tracker_url: "https://s.veen.world/cymaisissues" documentation: "https://s.veen.world/cymais" diff --git a/roles/docker-matrix-ansible/README.md b/roles/docker-matrix-ansible/README.md index 605a82ca..e3095956 100644 --- a/roles/docker-matrix-ansible/README.md +++ b/roles/docker-matrix-ansible/README.md @@ -1,12 +1,36 @@ -# Docker Setup Matrix via Ansible +# Matrix (Ansible) + +## Warning +This role is experimental and may not be actively maintained. Use it with caution in production environments. For a more stable deployment, please consider using the Matrix Compose role or another alternative solution. + +## Description + +Step into the future of communication with Matrix, a dynamic and decentralized platform that delivers secure, real-time messaging and collaboration. This role deploys a Matrix homeserver using Ansible automation. Benefit from a federated architecture, end-to-end encryption, and versatile bridging support that connects you globally—all while safeguarding your data. ## Overview -This document serves as the README for the `docker-ansible-matrix` role, a part of the `CyMaIS` project. This role automates the deployment of a Matrix server using Ansible. +This role automates the deployment and configuration of a Matrix homeserver with Ansible. It sets up the Synapse server along with essential components such as bridges and the Element web client. Designed for high performance, scalability, and secure communication, this role streamlines the installation of Matrix in your environment. -Matrix is an open-source project that provides a protocol for secure, decentralized, real-time communication. It offers features like end-to-end encrypted chat, VoIP, and file sharing, catering to both individual and enterprise users. With a focus on interoperability, Matrix can bridge with other communication systems, offering a unified platform for messaging and collaboration. +For detailed configuration and operational instructions, please refer to the included documentation: +- [Administration.md](./Administration.md) -This software uses https://github.com/spantaleev/matrix-docker-ansible-deploy as a base. +## Features -## Alternativ Matrix Setup Role -An alternativ role to deploy Matrix you will find [here](../docker-matrix-compose/) \ No newline at end of file +- **Decentralized and Federated:** Connect with a global network of Matrix homeservers, ensuring there is no single point of failure. +- **End-to-End Encryption:** Protect your communications with robust encryption methods. +- **Interoperability:** Bridge communications with external platforms, enabling seamless messaging across diverse systems. +- **Scalable Architecture:** Handle increasing user loads and message volumes with high performance. +- **Ansible Automation:** Enjoy a fully automated, reproducible deployment using Ansible. + +## Additional Resources + +- [Matrix Official Website](https://matrix.org/) +- [Matrix Documentation](https://matrix.org/docs/) + +## Credits + +Developed and maintained by **Kevin Veen-Birkenbach**. +Learn more at [veen.world](https://www.veen.world). + +Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais) +Licensed under [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl) \ No newline at end of file diff --git a/roles/docker-matrix-ansible/meta/main.yml b/roles/docker-matrix-ansible/meta/main.yml index d3606e63..2650a67f 100644 --- a/roles/docker-matrix-ansible/meta/main.yml +++ b/roles/docker-matrix-ansible/meta/main.yml @@ -1,2 +1,27 @@ -dependencies: +--- +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: > + This role deploys and configures a Matrix homeserver using Ansible automation. + Benefit from a secure, federated, and scalable communication platform with integrated support + for bridges and modern web clients. + 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: + - matrix + - ansible + - federated + - decentralized + - real-time + - encrypted + 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-satellite-dish" +dependencies: - nginx-docker-reverse-proxy diff --git a/roles/docker-mybb/README.md b/roles/docker-mybb/README.md index 44d06963..4acf1e47 100644 --- a/roles/docker-mybb/README.md +++ b/roles/docker-mybb/README.md @@ -1,4 +1,4 @@ -# MyBB Forum +# MyBB ## Description diff --git a/roles/docker-peertube/meta/main.yml b/roles/docker-peertube/meta/main.yml index 58e7892a..48a56d74 100644 --- a/roles/docker-peertube/meta/main.yml +++ b/roles/docker-peertube/meta/main.yml @@ -22,6 +22,7 @@ galaxy_info: - compose - decentralized - open-source + - video platform repository: "https://s.veen.world/cymais" issue_tracker_url: "https://s.veen.world/cymaisissues" documentation: "https://s.veen.world/cymais" diff --git a/roles/docker-portfolio/README.md b/roles/docker-portfolio/README.md index 2e622995..6a82ff20 100644 --- a/roles/docker-portfolio/README.md +++ b/roles/docker-portfolio/README.md @@ -1,4 +1,4 @@ -# Portfolio 🚀 +# Portfolio ## Description diff --git a/roles/docker-portfolio/lookup_plugins/docker_cards_grouped.py b/roles/docker-portfolio/lookup_plugins/docker_cards_grouped.py index fe71056d..d611207e 100644 --- a/roles/docker-portfolio/lookup_plugins/docker_cards_grouped.py +++ b/roles/docker-portfolio/lookup_plugins/docker_cards_grouped.py @@ -10,11 +10,11 @@ class LookupModule(LookupBase): Group the given cards into categorized and uncategorized lists based on the tags from menu_categories. """ - if len(terms) < 1: - raise AnsibleError("Missing required argument: cards") + if len(terms) < 2: + raise AnsibleError("Missing required arguments") cards = terms[0] - menu_categories = variables.get("menu_categories", {}) + menu_categories = terms[1] categorized = {} uncategorized = [] diff --git a/roles/docker-portfolio/tasks/main.yml b/roles/docker-portfolio/tasks/main.yml index 2b6d71a8..e1ef21d0 100644 --- a/roles/docker-portfolio/tasks/main.yml +++ b/roles/docker-portfolio/tasks/main.yml @@ -21,22 +21,26 @@ become: false register: config_file +- name: Load menu categories + include_vars: + file: "menu_categories.yml" + - name: Load docker cards set_fact: portfolio_cards: "{{ lookup('docker_cards', 'roles') }}" - name: Group docker cards set_fact: - portfolio_menu_data: "{{ lookup('docker_cards_grouped', portfolio_cards) }}" + portfolio_menu_data: "{{ lookup('docker_cards_grouped', portfolio_cards, portfolio_menu_categories) }}" - name: Debug portfolio data debug: msg: - cards: "{{ portfolio_cards }}" - menu_data: "{{ portfolio_menu_data }}" + portfolio_cards: "{{ portfolio_cards }}" + portfolio_menu_categories: "{{ portfolio_menu_categories}}" + portfolio_menu_data: "{{ portfolio_menu_data }}" when: enable_debug | bool - - name: Copy host-specific config.yaml if it exists template: src: "{{ config_inventory_path }}" diff --git a/roles/docker-portfolio/templates/config.yaml.j2 b/roles/docker-portfolio/templates/config.yaml.j2 index 6fb120f8..3ad4e115 100644 --- a/roles/docker-portfolio/templates/config.yaml.j2 +++ b/roles/docker-portfolio/templates/config.yaml.j2 @@ -163,68 +163,4 @@ navigation: {% endif %} - footer: - children: - - link: accounts - - name: Solution Hub - description: Curated collection of self hosted tools - icon: - class: fa-solid fa-network-wired - children: - -{% include 'footer_menu.yaml.j2' %} - - - name: Support Us - description: "Discover all the ways you can support our work." - icon: - class: fa-solid fa-hands-helping - children: - - name: Buy me a Coffee - description: "Support our work with a coffee – every cup helps!" - icon: - class: fa-solid fa-mug-hot - url: https://s.veen.world/buymeacoffee - - name: Patreon - description: "Become a member and support me monthly with exclusive content." - icon: - class: fa-brands fa-patreon - url: https://s.veen.world/patreon - - name: PayPal - description: "Donate to our open source projects with a one-time or monthly PayPal contribution." - icon: - class: fa-brands fa-paypal - url: https://s.veen.world/paypaldonate - - name: GitHub Sponsors - description: "Directly support our projects through GitHub Sponsors." - icon: - class: fa-brands fa-github - url: https://s.veen.world/githubsponsors - -{% if "sphinx" in group_names %} - - - name: Documentation - description: Access our comprehensive documentation and support resources to help you get the most out of the software. - icon: - class: fas fa-book - url: https://{{domains.sphinx}} - iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }} - -{% endif %} - -{% if "presentation" in group_names %} - - - name: Slides - description: Access our comprehensive documentation and support resources to help you get the most out of the software. - icon: - class: fas fa-book - url: https://{{domains.sphinx}} - iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }} - -{% endif %} - - - name: Imprint - description: Check out the imprint information - icon: - class: fa-solid fa-scale-balanced - url: "{{service_provider.legal.imprint}}" - iframe: true \ No newline at end of file +{% include 'footer_menu.yaml.j2' %} \ No newline at end of file diff --git a/roles/docker-portfolio/templates/footer_menu.yaml.j2 b/roles/docker-portfolio/templates/footer_menu.yaml.j2 index 72a234e2..e713f0d0 100644 --- a/roles/docker-portfolio/templates/footer_menu.yaml.j2 +++ b/roles/docker-portfolio/templates/footer_menu.yaml.j2 @@ -1,52 +1,136 @@ -{# Render all categories #} -{% for category, apps in portfolio_menu_data.categorized %} - - name: {{ category }} - description: {{ category_data.menu_categories[category].description }} + + footer: + children: + - link: accounts + +{% if (portfolio_menu_data.categorized is mapping and portfolio_menu_data.categorized | length > 0) + or (portfolio_menu_data.uncategorized is sequence and portfolio_menu_data.uncategorized | length > 0) %} + + - name: Solution Hub + description: Curated collection of self hosted tools icon: - class: {{ category_data.menu_categories[category].icon }} + class: fa-solid fa-network-wired children: - {% for app in apps %} + + {# Render all categories #} + {% for category, apps in portfolio_menu_data.categorized.items() %} + + - name: {{ category }} + description: {{ portfolio_menu_categories[category].description }} + icon: + class: {{ portfolio_menu_categories[category].icon }} + children: + + {% for app in apps %} + + - name: {{ app.title }} + description: {{ app.text }} + icon: {{ app.icon }} + url: {{ app.url }} + iframe: {{ app.iframe }} + + {% if app.title == 'Keycloak' %} + + children: + - name: Administration + description: Access the central admin console + icon: + class: fa-solid fa-shield-halved + url: https://{{domains.keycloak}}/admin + iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }} + - name: Profile + description: Update your personal admin settings + icon: + class: fa-solid fa-user-gear + url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/account + iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }} + - name: Logout + description: End your admin session securely + icon: + class: fa-solid fa-right-from-bracket + url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/protocol/openid-connect/logout + iframe: false + + {% endif %} + + {% endfor %} + + {% endfor %} + +{# Render Uncategorized #} +{% if portfolio_menu_data.uncategorized %} + + - name: Uncategorized + description: Tools without a defined category + icon: + class: fa-solid fa-question + children: + +{% for app in portfolio_menu_data.uncategorized %} + - name: {{ app.title }} description: {{ app.text }} icon: {{ app.icon }} url: {{ app.url }} iframe: {{ app.iframe }} - {% if app.title == 'Keycloak' %} - children: - - name: Administration - description: Access the central admin console - icon: - class: fa-solid fa-shield-halved - url: https://{{domains.keycloak}}/admin - iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }} - - name: Profile - description: Update your personal admin settings - icon: - class: fa-solid fa-user-gear - url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/account - iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }} - - name: Logout - description: End your admin session securely - icon: - class: fa-solid fa-right-from-bracket - url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/protocol/openid-connect/logout - iframe: false - {% endif %} - {% endfor %} + {% endfor %} -{# Render Uncategorized -{% if portfolio_menu_data.uncategorized %} - - name: Uncategorized - description: Tools without a defined category +{% endif %} + +{% endif %} + + - name: Support Us + description: "Discover all the ways you can support our work." icon: - class: fa-solid fa-question + class: fa-solid fa-hands-helping children: - {% for app in portfolio_menu_data.uncategorized %} - - name: {{ app.title }} - description: {{ app.text }} - icon: {{ app.icon }} - url: {{ app.url }} - iframe: {{ app.iframe }} - {% endfor %} -{% endif %} #} + - name: Buy me a Coffee + description: "Support our work with a coffee – every cup helps!" + icon: + class: fa-solid fa-mug-hot + url: https://s.veen.world/buymeacoffee + - name: Patreon + description: "Become a member and support me monthly with exclusive content." + icon: + class: fa-brands fa-patreon + url: https://s.veen.world/patreon + - name: PayPal + description: "Donate to our open source projects with a one-time or monthly PayPal contribution." + icon: + class: fa-brands fa-paypal + url: https://s.veen.world/paypaldonate + - name: GitHub Sponsors + description: "Directly support our projects through GitHub Sponsors." + icon: + class: fa-brands fa-github + url: https://s.veen.world/githubsponsors + +{% if "sphinx" in group_names %} + + - name: Documentation + description: Access our comprehensive documentation and support resources to help you get the most out of the software. + icon: + class: fas fa-book + url: https://{{domains.sphinx}} + iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }} + +{% endif %} + +{% if "presentation" in group_names %} + + - name: Slides + description: Access our comprehensive documentation and support resources to help you get the most out of the software. + icon: + class: fas fa-book + url: https://{{domains.sphinx}} + iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }} + +{% endif %} + + - name: Imprint + description: Check out the imprint information + icon: + class: fa-solid fa-scale-balanced + url: "{{service_provider.legal.imprint}}" + iframe: true \ No newline at end of file diff --git a/roles/docker-portfolio/vars/menu_categories.yml b/roles/docker-portfolio/vars/menu_categories.yml index 19559bf1..b9127208 100644 --- a/roles/docker-portfolio/vars/menu_categories.yml +++ b/roles/docker-portfolio/vars/menu_categories.yml @@ -1,4 +1,5 @@ -menu_categories: +portfolio_menu_categories: + Community: description: Tools to manage the community icon: fa-solid fa-users @@ -15,6 +16,18 @@ menu_categories: - project - kanban - management + + Social Media: + description: Social Media Tools + icon: fa-solid fa-share-nodes + tags: + - microblog + - blog + - video platform + - streaming platform + - music platform + - social network + - portfolio Communication: description: Tools for communication @@ -24,6 +37,7 @@ menu_categories: - communication - video - mail + - email Administration: description: Administration Tools diff --git a/roles/docker-postgres/README.md b/roles/docker-postgres/README.md index f357b28a..d93d0b13 100644 --- a/roles/docker-postgres/README.md +++ b/roles/docker-postgres/README.md @@ -1,4 +1,4 @@ -# PostgreSQL 🐳 +# PostgreSQL ## Description diff --git a/roles/docker-repository-setup/README.md b/roles/docker-repository-setup/README.md index 655173c8..0be5e8ca 100644 --- a/roles/docker-repository-setup/README.md +++ b/roles/docker-repository-setup/README.md @@ -1,4 +1,4 @@ -# Docker Repository Setup 🚀 +# Docker Repository Setup This Ansible role sets up and manages your Docker repository. It ensures that the repository is pulled from your remote Git source, and it automatically triggers a rebuild of your Docker images using Docker Compose. diff --git a/roles/docker-roulette-wheel/README.md b/roles/docker-roulette-wheel/README.md index a51b80fe..e93d5abe 100644 --- a/roles/docker-roulette-wheel/README.md +++ b/roles/docker-roulette-wheel/README.md @@ -1,7 +1,30 @@ -# docker roulette-wheel +# 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 -- https://github.com/p-wojt/roulette-wheel -- https://dev.to/ms314006/how-to-package-front-end-projects-into-docker-images-and-use-it-with-webpack-go3 -- https://stackoverflow.com/questions/53178820/dockerfile-to-run-nodejs-static-content-in-docker-container -- https://stackoverflow.com/questions/43619644/i-am-getting-an-invalid-host-header-message-when-connecting-to-webpack-dev-ser \ No newline at end of file +- [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-docker-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). diff --git a/roles/docker-roulette-wheel/TODO.md b/roles/docker-roulette-wheel/TODO.md new file mode 100644 index 00000000..4a01d3be --- /dev/null +++ b/roles/docker-roulette-wheel/TODO.md @@ -0,0 +1 @@ +- Optimize or implement alternative \ No newline at end of file diff --git a/roles/docker-roulette-wheel/meta/main.yml b/roles/docker-roulette-wheel/meta/main.yml index 03045ca5..8ccf01a6 100644 --- a/roles/docker-roulette-wheel/meta/main.yml +++ b/roles/docker-roulette-wheel/meta/main.yml @@ -1,2 +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 + - docker-compose diff --git a/roles/docker-taiga/README.md b/roles/docker-taiga/README.md index 8e882837..20cc713b 100644 --- a/roles/docker-taiga/README.md +++ b/roles/docker-taiga/README.md @@ -1,4 +1,4 @@ -# Docker Taiga 🐳📋 +# Taiga ## Description diff --git a/roles/docker-wordpress/meta/main.yml b/roles/docker-wordpress/meta/main.yml index cc40a7b0..4036bd0b 100644 --- a/roles/docker-wordpress/meta/main.yml +++ b/roles/docker-wordpress/meta/main.yml @@ -21,6 +21,7 @@ galaxy_info: - multisite - msmtp - automation + - blog repository: "https://s.veen.world/cymais" issue_tracker_url: "https://s.veen.world/cymaisissues" documentation: "https://s.veen.world/cymais" diff --git a/roles/docker-yourls/README.md b/roles/docker-yourls/README.md index a075eb22..05a85639 100644 --- a/roles/docker-yourls/README.md +++ b/roles/docker-yourls/README.md @@ -1,4 +1,4 @@ -# YOURLS URL Shortener +# YOURLS ## Description