Optimized for portfolio, presentation and docs

This commit is contained in:
Kevin Veen-Birkenbach 2025-04-10 17:49:47 +02:00
parent 33a8d8b579
commit 2183038240
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
32 changed files with 346 additions and 155 deletions

View File

@ -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.

View File

@ -1,4 +1,6 @@
# Docker Attendize (WIP)
# Attendize
## Warning
> **Note:** This role is a work in progress. Use with caution and check for updates.

View File

@ -0,0 +1 @@
- Implement this role

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,4 @@
# Docker Central Database 🐳
# Central Database
## Description

View File

@ -1,4 +1,4 @@
# Docker Compose 🧱
# Docker Compose
## Description

View File

@ -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)

1
roles/docker-elk/TODO.md Normal file
View File

@ -0,0 +1 @@
- implement

View File

@ -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"

View File

@ -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

View File

@ -1,7 +1,7 @@
# DRAFT FusionDirectory DRAFT🐳
# FusionDirectory
# TODO
This needs to be implemented
# Warning
This application isn't implemented yet
## Description

View File

@ -0,0 +1 @@
- Implement this role

View File

@ -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"

View File

@ -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/)
- **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)

View File

@ -1,2 +1,27 @@
---
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

View File

@ -1,4 +1,4 @@
# MyBB Forum
# MyBB
## Description

View File

@ -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"

View File

@ -1,4 +1,4 @@
# Portfolio 🚀
# Portfolio
## Description

View File

@ -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 = []

View File

@ -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 }}"

View File

@ -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

View File

@ -1,17 +1,36 @@
{# Render all categories #}
{% for category, apps in portfolio_menu_data.categorized %}
- name: {{ category }}
description: {{ category_data.menu_categories[category].description }}
icon:
class: {{ category_data.menu_categories[category].icon }}
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: fa-solid fa-network-wired
children:
{# 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
@ -31,22 +50,87 @@
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
{% 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 %}
{% for app in portfolio_menu_data.uncategorized %}
- name: {{ app.title }}
description: {{ app.text }}
icon: {{ app.icon }}
url: {{ app.url }}
iframe: {{ app.iframe }}
{% endfor %}
{% endif %} #}
{% endfor %}
{% endif %}
{% endif %}
- 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

View File

@ -1,4 +1,5 @@
menu_categories:
portfolio_menu_categories:
Community:
description: Tools to manage the community
icon: fa-solid fa-users
@ -16,6 +17,18 @@ menu_categories:
- 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
icon: fa-solid fa-comments
@ -24,6 +37,7 @@ menu_categories:
- communication
- video
- mail
- email
Administration:
description: Administration Tools

View File

@ -1,4 +1,4 @@
# PostgreSQL 🐳
# PostgreSQL
## Description

View File

@ -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.

View File

@ -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
- [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).

View File

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

View File

@ -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

View File

@ -1,4 +1,4 @@
# Docker Taiga 🐳📋
# Taiga
## Description

View File

@ -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"

View File

@ -1,4 +1,4 @@
# YOURLS URL Shortener
# YOURLS
## Description