mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-06-25 03:38:59 +02:00
Little tweaks
This commit is contained in:
parent
c7ff39169a
commit
2717651189
@ -120,17 +120,28 @@ def generate_playbook_entries(roles_dir, prefix=None):
|
|||||||
# Include the remaining unsorted roles
|
# Include the remaining unsorted roles
|
||||||
final_sorted_roles += [role for role in sorted_role_names if role not in final_sorted_roles]
|
final_sorted_roles += [role for role in sorted_role_names if role not in final_sorted_roles]
|
||||||
|
|
||||||
|
# Remove duplicates, keeping only the last occurrence of each role
|
||||||
|
seen = set()
|
||||||
|
deduplicated_roles = []
|
||||||
|
for role in reversed(final_sorted_roles):
|
||||||
|
if role not in seen:
|
||||||
|
deduplicated_roles.insert(0, role)
|
||||||
|
seen.add(role)
|
||||||
|
|
||||||
# Generate the playbook entries
|
# Generate the playbook entries
|
||||||
entries = []
|
entries = []
|
||||||
for role_name in final_sorted_roles:
|
for role_name in deduplicated_roles:
|
||||||
role = roles[role_name]
|
role = roles[role_name]
|
||||||
entry = (
|
entries.append(
|
||||||
f"- name: setup {role['application_id']}\n" # Use application_id here
|
f"- name: setup {role['application_id']}\n"
|
||||||
f" when: ('{role['application_id']}' in group_names)\n" # Correct condition format
|
f" when: ('{role['application_id']}' in group_names)\n"
|
||||||
f" include_role:\n"
|
f" include_role:\n"
|
||||||
f" name: {role['role_name']}\n"
|
f" name: {role['role_name']}\n"
|
||||||
)
|
)
|
||||||
entries.append(entry)
|
entries.append(
|
||||||
|
f"- name: flush handlers after {role['application_id']}\n"
|
||||||
|
f" meta: flush_handlers\n"
|
||||||
|
)
|
||||||
|
|
||||||
return entries
|
return entries
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
Elevate your website management with Joomla, a powerful content management system that fuses versatility with dynamic design. Experience a vibrant platform that inspires creativity and drives your digital presence to new, energetic heights.
|
Elevate your website management with [Joomla](https://www.joomla.org/), a powerful content management system that fuses versatility with dynamic design. Experience a vibrant platform that inspires creativity and drives your digital presence to new, energetic heights.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
@ -19,6 +19,6 @@ galaxy_info:
|
|||||||
documentation: https://s.veen.world/cymais
|
documentation: https://s.veen.world/cymais
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-lock"
|
class: "fa-solid fa-lock"
|
||||||
run_after:
|
run_after:
|
||||||
- docker-matomo
|
- docker-matomo
|
||||||
dependencies: []
|
dependencies: []
|
||||||
|
@ -10,4 +10,8 @@ features:
|
|||||||
central_database: true
|
central_database: true
|
||||||
domains:
|
domains:
|
||||||
canonical:
|
canonical:
|
||||||
- "microblog.{{ primary_domain }}"
|
- "microblog.{{ primary_domain }}"
|
||||||
|
csp:
|
||||||
|
whitelist:
|
||||||
|
frame-src:
|
||||||
|
- "*"
|
@ -29,5 +29,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-project-diagram"
|
class: "fa-solid fa-project-diagram"
|
||||||
run_after:
|
run_after:
|
||||||
- docker-keycloak
|
- docker-keycloak
|
||||||
|
@ -28,5 +28,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-video"
|
class: "fa-solid fa-video"
|
||||||
run_after:
|
run_after:
|
||||||
- docker-keycloak
|
- docker-keycloak
|
||||||
|
@ -24,4 +24,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-database"
|
class: "fa-solid fa-database"
|
||||||
dependencies: []
|
run_after:
|
||||||
|
- docker-postgres
|
||||||
|
@ -23,4 +23,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-user-lock"
|
class: "fa-solid fa-user-lock"
|
||||||
dependencies: []
|
run_after:
|
||||||
|
- docker-ldap
|
||||||
|
@ -25,4 +25,5 @@ galaxy_info:
|
|||||||
documentation: https://s.veen.world/cymais
|
documentation: https://s.veen.world/cymais
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-database"
|
class: "fa-solid fa-database"
|
||||||
dependencies: []
|
run_after:
|
||||||
|
- docker-mariadb
|
@ -24,4 +24,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-camera"
|
class: "fa-solid fa-camera"
|
||||||
dependencies: []
|
run_after:
|
||||||
|
- docker-keycloak
|
@ -112,7 +112,7 @@
|
|||||||
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
||||||
icon:
|
icon:
|
||||||
class: fas fa-book
|
class: fas fa-book
|
||||||
url: https://{{domains.sphinx}}
|
url: https://{{domains | get_domain('sphinx')}}
|
||||||
iframe: {{ applications | is_feature_enabled('portfolio_iframe','sphinx') }}
|
iframe: {{ applications | is_feature_enabled('portfolio_iframe','sphinx') }}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -123,10 +123,16 @@
|
|||||||
description: Checkout the presentation
|
description: Checkout the presentation
|
||||||
icon:
|
icon:
|
||||||
class: "fas fa-chalkboard-teacher"
|
class: "fas fa-chalkboard-teacher"
|
||||||
url: https://{{domains.presentation}}
|
url: https://{{domains | get_domain('presentation')}}
|
||||||
iframe: {{ applications | is_feature_enabled('portfolio_iframe','presentation') }}
|
iframe: {{ applications | is_feature_enabled('portfolio_iframe','presentation') }}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
- name: Solutions
|
||||||
|
description: "Software and IT Infrastructure Solutions by Kevin Veen-Birkenbach"
|
||||||
|
icon:
|
||||||
|
class: fa-solid fa-rocket
|
||||||
|
url: "https://cybermaster.space/"
|
||||||
|
iframe: false
|
||||||
|
|
||||||
- name: Imprint
|
- name: Imprint
|
||||||
description: Check out the imprint information
|
description: Check out the imprint information
|
||||||
|
@ -19,6 +19,8 @@ csp:
|
|||||||
flags:
|
flags:
|
||||||
style-src:
|
style-src:
|
||||||
unsafe-inline: true
|
unsafe-inline: true
|
||||||
|
script-src:
|
||||||
|
unsafe-inline: true
|
||||||
domains:
|
domains:
|
||||||
canonical:
|
canonical:
|
||||||
- "{{ primary_domain }}"
|
- "{{ primary_domain }}"
|
||||||
|
@ -27,5 +27,5 @@ galaxy_info:
|
|||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
logo:
|
logo:
|
||||||
class: "fa-solid fa-blog"
|
class: "fa-solid fa-blog"
|
||||||
run_after:
|
run_after:
|
||||||
- docker-keycloak
|
- docker-keycloak
|
@ -1,2 +1,4 @@
|
|||||||
application_id: "html-server"
|
application_id: "html-server"
|
||||||
domain: "{{domains | get_domain(application_id)}}"
|
domain: "{{domains | get_domain(application_id)}}"
|
||||||
|
features:
|
||||||
|
portfolio_iframe: true # Necessary for imprint loading
|
@ -28,6 +28,8 @@ class TestCspConfigurationConsistency(unittest.TestCase):
|
|||||||
return True
|
return True
|
||||||
if entry.startswith(('data:', 'blob:')):
|
if entry.startswith(('data:', 'blob:')):
|
||||||
return True
|
return True
|
||||||
|
if entry == '*':
|
||||||
|
return True
|
||||||
parsed = urlparse(entry)
|
parsed = urlparse(entry)
|
||||||
return parsed.scheme in ('http', 'https') and bool(parsed.netloc)
|
return parsed.scheme in ('http', 'https') and bool(parsed.netloc)
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ class TestCspFilters(unittest.TestCase):
|
|||||||
# Expect '*.domain-example.com' in the frame-ancestors directive
|
# Expect '*.domain-example.com' in the frame-ancestors directive
|
||||||
self.assertRegex(
|
self.assertRegex(
|
||||||
header,
|
header,
|
||||||
r"frame-ancestors\s+'self'\s+\*\.domain-example\.com;"
|
r"frame-ancestors\s+'self'\s+domain-example\.com;"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Now disable the feature and rebuild
|
# Now disable the feature and rebuild
|
||||||
|
Loading…
x
Reference in New Issue
Block a user