mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	Optimized for portfolio, presentation and docs
This commit is contained in:
		| @@ -1,4 +1,4 @@ | ||||
| # Portfolio 🚀 | ||||
| # Portfolio | ||||
|  | ||||
| ## Description | ||||
|  | ||||
|   | ||||
| @@ -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 = [] | ||||
|   | ||||
| @@ -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 }}" | ||||
|   | ||||
| @@ -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 | ||||
| {% include '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 | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user