Optimized Mastodon, Discourse etc. for Flock.Town

This commit is contained in:
Kevin Veen-Birkenbach 2025-02-20 01:19:25 +01:00
parent a70b0ed48f
commit 6e02e09471
8 changed files with 147 additions and 51 deletions

View File

@ -116,6 +116,8 @@ defaults_applications:
version: "latest" version: "latest"
oauth2_proxy: oauth2_proxy:
enabled: false # Deactivated atm. @todo implement enabled: false # Deactivated atm. @todo implement
# database_password: Null # Needs to be set in inventory file
# auth_token: Null # Needs to be set in inventory file
## Mastodon ## Mastodon
mastodon: mastodon:

View File

@ -13,15 +13,15 @@ SINGLE_USER_MODE={{applications.mastodon.single_user_mode}}
# ------- # -------
# Make sure to use `bundle exec rails secret` to generate secrets # Make sure to use `bundle exec rails secret` to generate secrets
# ------- # -------
SECRET_KEY_BASE= {{mastodon.credentials.secret_key_base}} SECRET_KEY_BASE= {{applications.mastodon.credentials.secret_key_base}}
OTP_SECRET= {{mastodon.credentials.otp_secret}} OTP_SECRET= {{applications.mastodon.credentials.otp_secret}}
# Web Push # Web Push
# -------- # --------
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key` # Generate with `bundle exec rails mastodon:webpush:generate_vapid_key`
# -------- # --------
VAPID_PRIVATE_KEY= {{mastodon.credentials.vapid.private_key}} VAPID_PRIVATE_KEY= {{applications.mastodon.credentials.vapid.private_key}}
VAPID_PUBLIC_KEY= {{mastodon.credentials.vapid.public_key}} VAPID_PUBLIC_KEY= {{applications.mastodon.credentials.vapid.public_key}}
# Encryption secrets # Encryption secrets
# ------------------ # ------------------
@ -29,9 +29,9 @@ VAPID_PUBLIC_KEY= {{mastodon.credentials.vapid.public_key}}
# These are private/secret values, do not share outside hosting environment # These are private/secret values, do not share outside hosting environment
# Use `bin/rails db:encryption:init` to generate fresh secrets # Use `bin/rails db:encryption:init` to generate fresh secrets
# Do NOT change these secrets once in use, as this would cause data loss and other issues # Do NOT change these secrets once in use, as this would cause data loss and other issues
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY= {{mastodon.credentials.active_record_encryption.deterministic_key}} ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY= {{applications.mastodon.credentials.active_record_encryption.deterministic_key}}
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT= {{mastodon.credentials.active_record_encryption.key_derivation_salt}} ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT= {{applications.mastodon.credentials.active_record_encryption.key_derivation_salt}}
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY= {{mastodon.credentials.active_record_encryption.primary_key}} ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY= {{applications.mastodon.credentials.active_record_encryption.primary_key}}
DB_HOST={{database_host}} DB_HOST={{database_host}}
DB_PORT={{database_port}} DB_PORT={{database_port}}

View File

@ -1,3 +1,3 @@
application_id: "mastodon" application_id: "mastodon"
database_password: "{{mastodon.credentials.database_password}}" database_password: "{{applications.mastodon.credentials.database_password}}"
database_type: "postgres" database_type: "postgres"

View File

@ -2,12 +2,6 @@
This Ansible role deploys a [Matomo](https://matomo.org/) analytics platform instance using Docker. This Ansible role deploys a [Matomo](https://matomo.org/) analytics platform instance using Docker.
## Requirements
- Docker and Docker-Compose installed on the host machine.
- Nginx installed for reverse proxy configuration.
- Certbot installed for SSL certificate generation.
## AI Generated ## AI Generated
This script was created with the help of ChatGPT. The full conversation is [here](https://chat.openai.com/share/49e0c7e4-a2af-4a04-adad-7a735bdd85c4) available. This script was created with the help of ChatGPT. The full conversation is [here](https://chat.openai.com/share/49e0c7e4-a2af-4a04-adad-7a735bdd85c4) available.

View File

@ -1,7 +1,7 @@
--- ---
application_id: "matomo" application_id: "matomo"
database_type: "mariadb" database_type: "mariadb"
database_password: "{{matomo_database_password}}" database_password: "{{applications.matomo.database_password}}"
domain: "{{domains.matomo}}" # Don't know if this is still necessary domain: "{{domains.matomo}}" # Don't know if this is still necessary
# Disable matomo tracking for matomo, because otherwise recursiv loading technics would be neccessary # Disable matomo tracking for matomo, because otherwise recursiv loading technics would be neccessary

View File

@ -1,3 +1,4 @@
{# The Linebreak here are intentional due to tab bugs #}
--- ---
accounts: accounts:
name: Online Presence name: Online Presence
@ -16,14 +17,17 @@ accounts:
class: fa-solid fa-pen-nib class: fa-solid fa-pen-nib
children: children:
{% if service_provider.contact.mastodon is defined %} {% if service_provider.contact.mastodon is defined %}
- name: Mastodon - name: Mastodon
description: Follow {{ 'our' if service_provider.type == 'legal' else 'my' }} updates on Mastodon. description: Follow {{ 'our' if service_provider.type == 'legal' else 'my' }} updates on Mastodon.
icon: icon:
class: fa-brands fa-mastodon class: fa-brands fa-mastodon
url: "https://{{ service_provider.contact.mastodon.split('@')[2] }}/@{{ service_provider.contact.mastodon.split('@')[1] }}" url: "https://{{ service_provider.contact.mastodon.split('@')[2] }}/@{{ service_provider.contact.mastodon.split('@')[1] }}"
identifier: "{{service_provider.contact.mastodon}}" identifier: "{{service_provider.contact.mastodon}}"
{% endif %} {% endif %}
{% if service_provider.contact.bluesky is defined %} {% if service_provider.contact.bluesky is defined %}
- name: Bluesky - name: Bluesky
description: Follow {{ 'our' if service_provider.type == 'legal' else 'my' }} on Bluesky. description: Follow {{ 'our' if service_provider.type == 'legal' else 'my' }} on Bluesky.
icon: icon:
@ -31,328 +35,373 @@ accounts:
alternatives: alternatives:
- link: accounts.publishingchannels.microblogs.mastodon - link: accounts.publishingchannels.microblogs.mastodon
identifier: "{{service_provider.contact.bluesky}}" identifier: "{{service_provider.contact.bluesky}}"
{% endif %} {% endif %}
{% if service_provider.contact.pixelfed is defined %} {% if service_provider.contact.pixelfed is defined %}
- name: Pictures - name: Pictures
description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} photo gallery on Pixelfed. description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} photo gallery on Pixelfed.
icon: icon:
class: fa-solid fa-camera class: fa-solid fa-camera
identifier: "{{service_provider.contact.pixelfed}}" identifier: "{{service_provider.contact.pixelfed}}"
url: "https://{{ service_provider.contact.pixelfed.split('@')[2] }}/@{{ service_provider.contact.pixelfed.split('@')[1] }}" url: "https://{{ service_provider.contact.pixelfed.split('@')[2] }}/@{{ service_provider.contact.pixelfed.split('@')[1] }}"
{% endif %} {% endif %}
{% if service_provider.contact.peertube is defined %} {% if service_provider.contact.peertube is defined %}
- name: Peertube - name: Peertube
description: Discover {{ 'our' if service_provider.type == 'legal' else 'my' }} videos on Peertube. description: Discover {{ 'our' if service_provider.type == 'legal' else 'my' }} videos on Peertube.
icon: icon:
class: fa-solid fa-video class: fa-solid fa-video
identifier: "{{service_provider.contact.peertube}}" identifier: "{{service_provider.contact.peertube}}"
url: "https://{{ service_provider.contact.peertube.split('@')[2] }}/@{{ service_provider.contact.peertube.split('@')[1] }}" url: "https://{{ service_provider.contact.peertube.split('@')[2] }}/@{{ service_provider.contact.peertube.split('@')[1] }}"
{% endif %} {% endif %}
{% if service_provider.contact.wordpress is defined %} {% if service_provider.contact.wordpress is defined %}
- name: Blog - name: Blog
description: Read {{ 'our' if service_provider.type == 'legal' else 'my' }} articles and stories. description: Read {{ 'our' if service_provider.type == 'legal' else 'my' }} articles and stories.
icon: icon:
class: fa-solid fa-blog class: fa-solid fa-blog
identifier: "{{service_provider.contact.wordpress}}" identifier: "{{service_provider.contact.wordpress}}"
url: "https://{{ service_provider.contact.wordpress.split('@')[2] }}/@{{ service_provider.contact.wordpress.split('@')[1] }}" url: "https://{{ service_provider.contact.wordpress.split('@')[2] }}/@{{ service_provider.contact.wordpress.split('@')[1] }}"
{% endif %} {% endif %}
{% if service_provider.legal.source_code is defined %} {% if service_provider.legal.source_code is defined %}
- name: Our Code - name: Our Code
description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} code. description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} code.
icon: icon:
class: fa-solid fa-code class: fa-solid fa-code
url: "{{service_provider.legal.source_code}}" url: "{{service_provider.legal.source_code}}"
{% endif %} {% endif %}
{% if service_provider.contact.friendica is defined %} {% if service_provider.contact.friendica is defined %}
- name: Social Network - name: Social Network
description: Visit {{ 'our' if service_provider.type == 'legal' else 'my' }} friendica profile description: Visit {{ 'our' if service_provider.type == 'legal' else 'my' }} friendica profile
icon: icon:
class: fas fa-network-wired class: fas fa-network-wired
identifier: "{{service_provider.contact.friendica}}" identifier: "{{service_provider.contact.friendica}}"
url: "https://{{ service_provider.contact.friendica.split('@')[2] }}/@{{ service_provider.contact.friendica.split('@')[1] }}" url: "https://{{ service_provider.contact.friendica.split('@')[2] }}/@{{ service_provider.contact.friendica.split('@')[1] }}"
{% endif %} {% endif %}
- link: navigation.header.contact - link: navigation.header.contact
cards: cards:
{% if "matomo" in group_names %} {% if "matomo" in group_names %}
- icon: - icon:
class: "fa-solid fa-chart-line" class: "fa-solid fa-chart-line"
title: "Matomo Analytics" title: "Matomo Analytics"
text: "Experience the power of Matomo, an innovative open-source analytics platform that delivers real-time insights, robust visitor tracking, and privacy-first features to elevate your website performance. Dive into actionable data with unmatched precision and clarity!" text: "Experience the power of Matomo, an innovative open-source analytics platform that delivers real-time insights, robust visitor tracking, and privacy-first features to elevate your website performance. Dive into actionable data with unmatched precision and clarity!"
url: https://{{domains.matomo}} url: https://{{domains.matomo}}
link_text: "Discover Matomo Now!" link_text: "Discover Matomo Now!"
{% endif %}
{% endif %}
{% if "ldap" in group_names %} {% if "ldap" in group_names %}
- icon: - icon:
class: "fa-solid fa-users" class: "fa-solid fa-users"
title: "LDAP Directory" title: "LDAP Directory"
text: "Unleash the potential of centralized identity management with our vibrant LDAP solution. Enjoy seamless authentication, efficient user management, and enhanced security that empowers your organization to stay connected, agile, and ahead of the curve in digital transformation." text: "Unleash the potential of centralized identity management with our vibrant LDAP solution. Enjoy seamless authentication, efficient user management, and enhanced security that empowers your organization to stay connected, agile, and ahead of the curve in digital transformation."
url: https://{{domains.ldap}} url: https://{{domains.ldap}}
link_text: "Empower Your Network!" link_text: "Empower Your Network!"
{% endif %}
{% endif %}
{% if "keycloak" in group_names %} {% if "keycloak" in group_names %}
- icon: - icon:
class: "fa-solid fa-lock" class: "fa-solid fa-lock"
title: "Keycloak Identity" title: "Keycloak Identity"
text: "Step into a secure future with Keycloak! Our dynamic identity and access management solution offers streamlined SSO capabilities, robust security measures, and an intuitive user experience that propels your applications to unprecedented heights of performance and reliability." text: "Step into a secure future with Keycloak! Our dynamic identity and access management solution offers streamlined SSO capabilities, robust security measures, and an intuitive user experience that propels your applications to unprecedented heights of performance and reliability."
url: https://{{domains.keycloak}} url: https://{{domains.keycloak}}
link_text: "Secure Your Future Now!" link_text: "Secure Your Future Now!"
{% endif %}
{% endif %}
{% if "nextcloud" in group_names %} {% if "nextcloud" in group_names %}
- icon: - icon:
class: "fa-solid fa-cloud" class: "fa-solid fa-cloud"
title: "Nextcloud" title: "Nextcloud"
text: "Elevate your collaboration with Nextcloud, a vibrant self-hosted cloud solution designed for dynamic file sharing, seamless communication, and effortless teamwork. Embrace unparalleled control, flexibility, and a boosted digital workspace that adapts to your every need." text: "Elevate your collaboration with Nextcloud, a vibrant self-hosted cloud solution designed for dynamic file sharing, seamless communication, and effortless teamwork. Embrace unparalleled control, flexibility, and a boosted digital workspace that adapts to your every need."
url: https://{{domains.nextcloud}} url: https://{{domains.nextcloud}}
link_text: "Experience Nextcloud Today!" link_text: "Experience Nextcloud Today!"
{% endif %}
{% endif %}
{% if "gitea" in group_names %} {% if "gitea" in group_names %}
- icon: - icon:
class: "fa-solid fa-code" class: "fa-solid fa-code"
title: "Gitea" title: "Gitea"
text: "Boost your development journey with Gitea, a lightweight and energetic self-hosted Git service that offers efficient code collaboration, intuitive version control, and an agile environment for your projects. Ignite your coding spirit, innovate faster, and code with confidence!" text: "Boost your development journey with Gitea, a lightweight and energetic self-hosted Git service that offers efficient code collaboration, intuitive version control, and an agile environment for your projects. Ignite your coding spirit, innovate faster, and code with confidence!"
url: https://{{domains.gitea}} url: https://{{domains.gitea}}
link_text: "Ignite Your Code Now!" link_text: "Ignite Your Code Now!"
{% endif %}
{% endif %}
{% if "wordpress" in group_names %} {% if "wordpress" in group_names %}
- icon: - icon:
class: "fa-solid fa-blog" class: "fa-solid fa-blog"
title: "WordPress" title: "WordPress"
text: "Unleash your creative potential with WordPress, a dynamic platform that empowers you to build, manage, and scale stunning websites and blogs effortlessly. Experience an ever-evolving ecosystem that inspires innovation and drives digital success with every click." text: "Unleash your creative potential with WordPress, a dynamic platform that empowers you to build, manage, and scale stunning websites and blogs effortlessly. Experience an ever-evolving ecosystem that inspires innovation and drives digital success with every click."
url: https://{{domains.wordpress}} url: https://{{domains.wordpress}}
link_text: "Launch Your Site Today!" link_text: "Launch Your Site Today!"
{% endif %}
{% endif %}
{% if "mediawiki" in group_names %} {% if "mediawiki" in group_names %}
- icon: - icon:
class: "fa-solid fa-book" class: "fa-solid fa-book"
title: "MediaWiki" title: "MediaWiki"
text: "Empower your knowledge base with MediaWiki, a versatile and collaborative platform designed to build comprehensive, user-driven documentation. Embrace an energetic community and innovative tools that turn information into a vibrant, living resource." text: "Empower your knowledge base with MediaWiki, a versatile and collaborative platform designed to build comprehensive, user-driven documentation. Embrace an energetic community and innovative tools that turn information into a vibrant, living resource."
url: https://{{domains.mediawiki}} url: https://{{domains.mediawiki}}
link_text: "Explore MediaWiki Now!" link_text: "Explore MediaWiki Now!"
{% endif %}
{% endif %}
{% if "mybb" in group_names %} {% if "mybb" in group_names %}
- icon: - icon:
class: "fa-solid fa-comments" class: "fa-solid fa-comments"
title: "MyBB Forum" title: "MyBB Forum"
text: "Transform your community engagement with MyBB, a feature-rich forum solution that combines modern design with robust functionality. Enjoy dynamic discussions, intuitive moderation, and an energetic user interface that brings people together like never before." text: "Transform your community engagement with MyBB, a feature-rich forum solution that combines modern design with robust functionality. Enjoy dynamic discussions, intuitive moderation, and an energetic user interface that brings people together like never before."
url: https://{{domains.mybb}} url: https://{{domains.mybb}}
link_text: "Join the Conversation!" link_text: "Join the Conversation!"
{% endif %}
{% endif %}
{% if "yourls" in group_names %} {% if "yourls" in group_names %}
- icon: - icon:
class: "fa-solid fa-link" class: "fa-solid fa-link"
title: "YOURLS URL Shortener" title: "YOURLS URL Shortener"
text: "Streamline your online presence with YOURLS, a nimble URL shortening solution that makes sharing links faster, easier, and more engaging. Enjoy the benefits of enhanced tracking and a user-friendly interface that energizes your digital strategy." text: "Streamline your online presence with YOURLS, a nimble URL shortening solution that makes sharing links faster, easier, and more engaging. Enjoy the benefits of enhanced tracking and a user-friendly interface that energizes your digital strategy."
url: https://{{domains.yourls}} url: https://{{domains.yourls}}
link_text: "Shorten Links Instantly!" link_text: "Shorten Links Instantly!"
{% endif %}
{% endif %}
{% if "mailu" in group_names %} {% if "mailu" in group_names %}
- icon: - icon:
class: "fa-solid fa-envelope" class: "fa-solid fa-envelope"
title: "Mailu Mail Server" title: "Mailu Mail Server"
text: "Revolutionize your email communications with Mailu, a secure and flexible mail server solution that integrates seamlessly into your workflow. Experience enhanced reliability, robust security, and an energetic approach to managing your digital correspondence." text: "Revolutionize your email communications with Mailu, a secure and flexible mail server solution that integrates seamlessly into your workflow. Experience enhanced reliability, robust security, and an energetic approach to managing your digital correspondence."
url: https://{{domains.mailu}} url: https://{{domains.mailu}}
link_text: "Elevate Your Email Now!" link_text: "Elevate Your Email Now!"
{% endif %}
{% endif %}
{% if "mastodon" in group_names %} {% if "mastodon" in group_names %}
- icon: - icon:
class: "fa-solid fa-bullhorn" class: "fa-solid fa-bullhorn"
title: "Mastodon Social" title: "Mastodon Social"
text: "Dive into a decentralized social experience with Mastodon, a vibrant platform that redefines online communication with its community-driven approach. Enjoy a refreshing burst of innovation, freedom, and energetic interaction every time you connect." text: "Dive into a decentralized social experience with Mastodon, a vibrant platform that redefines online communication with its community-driven approach. Enjoy a refreshing burst of innovation, freedom, and energetic interaction every time you connect."
url: https://{{domains.mastodon}} url: https://{{domains.mastodon}}
link_text: "Join the Social Revolution!" link_text: "Join the Social Revolution!"
{% endif %}
{% endif %}
{% if "pixelfed" in group_names %} {% if "pixelfed" in group_names %}
- icon: - icon:
class: "fa-solid fa-camera" class: "fa-solid fa-camera"
title: "Pixelfed" title: "Pixelfed"
text: "Showcase your visual story with Pixelfed, an inspiring self-hosted image sharing platform that champions creativity and privacy. Revel in a dynamic, artistic environment where every photo is a window to endless possibilities and vibrant expression." text: "Showcase your visual story with Pixelfed, an inspiring self-hosted image sharing platform that champions creativity and privacy. Revel in a dynamic, artistic environment where every photo is a window to endless possibilities and vibrant expression."
url: https://{{domains.pixelfed}} url: https://{{domains.pixelfed}}
link_text: "Share Your Vision Now!" link_text: "Share Your Vision Now!"
{% endif %}
{% endif %}
{% if "peertube" in group_names %} {% if "peertube" in group_names %}
- icon: - icon:
class: "fa-solid fa-video" class: "fa-solid fa-video"
title: "PeerTube" title: "PeerTube"
text: "Embrace a new era of video hosting with PeerTube, a decentralized platform that empowers creators with freedom, innovation, and a community-focused approach. Experience seamless streaming and dynamic sharing that fuels your creative ambitions." text: "Embrace a new era of video hosting with PeerTube, a decentralized platform that empowers creators with freedom, innovation, and a community-focused approach. Experience seamless streaming and dynamic sharing that fuels your creative ambitions."
url: https://{{domains.peertube}} url: https://{{domains.peertube}}
link_text: "Stream with Freedom!" link_text: "Stream with Freedom!"
{% endif %}
{% endif %}
{% if "bigbluebutton" in group_names %} {% if "bigbluebutton" in group_names %}
- icon: - icon:
class: "fa-solid fa-chalkboard-teacher" class: "fa-solid fa-chalkboard-teacher"
title: "BigBlueButton" title: "BigBlueButton"
text: "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." text: "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."
url: https://{{domains.bigbluebutton}} url: https://{{domains.bigbluebutton}}
link_text: "Start Your Virtual Session!" link_text: "Start Your Virtual Session!"
{% endif %}
{% endif %}
{% if "funkwhale" in group_names %} {% if "funkwhale" in group_names %}
- icon: - icon:
class: "fa-solid fa-music" class: "fa-solid fa-music"
title: "Funkwhale" title: "Funkwhale"
text: "Dive into a world of rhythm and sound with Funkwhale, an innovative self-hosted music sharing platform that celebrates creativity and community. Experience an energetic soundscape and seamless music streaming that amplifies your passion for tunes." text: "Dive into a world of rhythm and sound with Funkwhale, an innovative self-hosted music sharing platform that celebrates creativity and community. Experience an energetic soundscape and seamless music streaming that amplifies your passion for tunes."
url: https://{{domains.funkwhale}} url: https://{{domains.funkwhale}}
link_text: "Jam Out Now!" link_text: "Jam Out Now!"
{% endif %}
{% endif %}
{% if "joomla" in group_names %} {% if "joomla" in group_names %}
- icon: - icon:
class: "fa-solid fa-sitemap" class: "fa-solid fa-sitemap"
title: "Joomla CMS" title: "Joomla CMS"
text: "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." text: "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."
url: https://{{domains.joomla}} url: https://{{domains.joomla}}
link_text: "Build with Joomla Today!" link_text: "Build with Joomla Today!"
{% endif %}
{% endif %}
{% if "attendize" in group_names %} {% if "attendize" in group_names %}
- icon: - icon:
class: "fa-solid fa-calendar-check" class: "fa-solid fa-calendar-check"
title: "Attendize" title: "Attendize"
text: "Revolutionize your event management with Attendize, an energetic and intuitive platform designed to streamline ticketing and event planning. Enjoy a feature-rich, user-friendly solution that transforms every event into an unforgettable experience." text: "Revolutionize your event management with Attendize, an energetic and intuitive platform designed to streamline ticketing and event planning. Enjoy a feature-rich, user-friendly solution that transforms every event into an unforgettable experience."
url: https://{{domains.attendize}} url: https://{{domains.attendize}}
link_text: "Plan Your Event Now!" link_text: "Plan Your Event Now!"
{% endif %}
{% endif %}
{% if "baserow" in group_names %} {% if "baserow" in group_names %}
- icon: - icon:
class: "fa-solid fa-table" class: "fa-solid fa-table"
title: "Baserow" title: "Baserow"
text: "Empower your data management with Baserow, an innovative platform that makes building and managing databases both fun and efficient. Enjoy a dynamic interface, seamless collaboration, and energetic tools that supercharge your workflow." text: "Empower your data management with Baserow, an innovative platform that makes building and managing databases both fun and efficient. Enjoy a dynamic interface, seamless collaboration, and energetic tools that supercharge your workflow."
url: https://{{domains.baserow}} url: https://{{domains.baserow}}
link_text: "Manage Data with Ease!" link_text: "Manage Data with Ease!"
{% endif %}
{% endif %}
{% if "listmonk" in group_names %} {% if "listmonk" in group_names %}
- icon: - icon:
class: "fa-solid fa-list" class: "fa-solid fa-list"
title: "Listmonk" title: "Listmonk"
text: "Elevate your email marketing with Listmonk, a high-energy, self-hosted solution that offers powerful newsletter management and analytics. Enjoy an intuitive design, robust features, and a spirited approach that takes your campaigns to the next level." text: "Elevate your email marketing with Listmonk, a high-energy, self-hosted solution that offers powerful newsletter management and analytics. Enjoy an intuitive design, robust features, and a spirited approach that takes your campaigns to the next level."
url: https://{{domains.listmonk}} url: https://{{domains.listmonk}}
link_text: "Boost Your Campaigns Now!" link_text: "Boost Your Campaigns Now!"
{% endif %}
{% endif %}
{% if "discourse" in group_names %} {% if "discourse" in group_names %}
- icon: - icon:
class: "fa-solid fa-comment-dots" class: "fa-solid fa-comment-dots"
title: "Discourse Forum" title: "Discourse Forum"
text: "Ignite community conversations with Discourse, an innovative forum platform that redefines online discussions with its modern, engaging interface. Experience an energetic, user-friendly environment that brings people together and fuels vibrant exchanges." text: "Ignite community conversations with Discourse, an innovative forum platform that redefines online discussions with its modern, engaging interface. Experience an energetic, user-friendly environment that brings people together and fuels vibrant exchanges."
url: https://{{domains.discourse}} url: https://{{domains.discourse}}
link_text: "Join the Discussion!" link_text: "Join the Discussion!"
{% endif %}
{% endif %}
{% if "matrix" in group_names %} {% if "matrix" in group_names %}
- icon: - icon:
class: "fa-solid fa-satellite-dish" class: "fa-solid fa-satellite-dish"
title: "Matrix" title: "Matrix"
text: "Step into the future of communication with Matrix, a dynamic and decentralized platform that delivers secure, real-time messaging and collaboration. Enjoy an innovative ecosystem that energizes your digital interactions and connects you globally." text: "Step into the future of communication with Matrix, a dynamic and decentralized platform that delivers secure, real-time messaging and collaboration. Enjoy an innovative ecosystem that energizes your digital interactions and connects you globally."
url: https://{{domains.matrix}} url: https://{{domains.matrix}}
link_text: "Connect on Matrix Now!" link_text: "Connect on Matrix Now!"
{% endif %}
{% endif %}
{% if "openproject" in group_names %} {% if "openproject" in group_names %}
- icon: - icon:
class: "fa-solid fa-project-diagram" class: "fa-solid fa-project-diagram"
title: "OpenProject" title: "OpenProject"
text: "Transform your project management with OpenProject, a vibrant and collaborative tool that brings clarity and energy to your planning, tracking, and team communication. Experience streamlined workflows and an innovative platform that propels your projects forward." text: "Transform your project management with OpenProject, a vibrant and collaborative tool that brings clarity and energy to your planning, tracking, and team communication. Experience streamlined workflows and an innovative platform that propels your projects forward."
url: https://{{domains.openproject}} url: https://{{domains.openproject}}
link_text: "Manage Projects Dynamically!" link_text: "Manage Projects Dynamically!"
{% endif %}
{% endif %}
{% if "gitlab" in group_names %} {% if "gitlab" in group_names %}
- icon: - icon:
class: "fa-solid fa-code-branch" class: "fa-solid fa-code-branch"
title: "GitLab" title: "GitLab"
text: "Accelerate your software development with GitLab, an energetic, all-in-one platform for source code management and continuous integration. Experience a robust, collaborative environment that empowers teams to innovate and deliver exceptional results." text: "Accelerate your software development with GitLab, an energetic, all-in-one platform for source code management and continuous integration. Experience a robust, collaborative environment that empowers teams to innovate and deliver exceptional results."
url: https://{{domains.gitlab}} url: https://{{domains.gitlab}}
link_text: "Revolutionize Your DevOps!" link_text: "Revolutionize Your DevOps!"
{% endif %}
{% endif %}
{% if "akaunting" in group_names %} {% if "akaunting" in group_names %}
- icon: - icon:
class: "fa-solid fa-file-invoice-dollar" class: "fa-solid fa-file-invoice-dollar"
title: "Akaunting" title: "Akaunting"
text: "Empower your financial management with Akaunting, a dynamic and feature-rich accounting platform designed to simplify your bookkeeping and boost your business growth. Enjoy intuitive tools, real-time insights, and an energetic approach to your finances." text: "Empower your financial management with Akaunting, a dynamic and feature-rich accounting platform designed to simplify your bookkeeping and boost your business growth. Enjoy intuitive tools, real-time insights, and an energetic approach to your finances."
url: https://{{domains.akaunting}} url: https://{{domains.akaunting}}
link_text: "Transform Your Finances Today!" link_text: "Transform Your Finances Today!"
{% endif %}
{% endif %}
{% if "moodle" in group_names %} {% if "moodle" in group_names %}
- icon: - icon:
class: "fa-solid fa-graduation-cap" class: "fa-solid fa-graduation-cap"
title: "Moodle" title: "Moodle"
text: "Ignite the learning experience with Moodle, a powerful and versatile platform for online education that energizes classrooms and fosters interactive learning. Embrace innovative tools, engaging content, and a dynamic community of educators and learners." text: "Ignite the learning experience with Moodle, a powerful and versatile platform for online education that energizes classrooms and fosters interactive learning. Embrace innovative tools, engaging content, and a dynamic community of educators and learners."
url: https://{{domains.moodle}} url: https://{{domains.moodle}}
link_text: "Start Learning Now!" link_text: "Start Learning Now!"
{% endif %}
{% endif %}
{% if "taiga" in group_names %} {% if "taiga" in group_names %}
- icon: - icon:
class: "fa-solid fa-tasks" class: "fa-solid fa-tasks"
title: "Taiga" title: "Taiga"
text: "Supercharge your project management with Taiga, a dynamic and agile tool designed for teams that thrive on creativity and collaboration. Experience a vibrant interface, robust task tracking, and an energetic platform that drives your projects to success." text: "Supercharge your project management with Taiga, a dynamic and agile tool designed for teams that thrive on creativity and collaboration. Experience a vibrant interface, robust task tracking, and an energetic platform that drives your projects to success."
url: https://{{domains.taiga}} url: https://{{domains.taiga}}
link_text: "Boost Your Projects Now!" link_text: "Boost Your Projects Now!"
{% endif %}
{% endif %}
{% if "friendica" in group_names %} {% if "friendica" in group_names %}
- icon: - icon:
class: "fa-solid fa-user-friends" class: "fa-solid fa-user-friends"
title: "Friendica" title: "Friendica"
text: "Connect and share like never before with Friendica, an innovative social networking platform that celebrates community, freedom, and dynamic interactions. Enjoy a spirited and open environment where every connection is a step toward a more engaging digital world." text: "Connect and share like never before with Friendica, an innovative social networking platform that celebrates community, freedom, and dynamic interactions. Enjoy a spirited and open environment where every connection is a step toward a more engaging digital world."
url: https://{{domains.friendica}} url: https://{{domains.friendica}}
link_text: "Join the Social Movement!" link_text: "Join the Social Movement!"
{% endif %}
{% endif %}
{% if "portfolio" in group_names %} {% if "portfolio" in group_names %}
- icon: - icon:
class: "fa-solid fa-briefcase" class: "fa-solid fa-briefcase"
title: "Portfolio" title: "Portfolio"
text: "Showcase your professional journey with Portfolio, a dynamic platform that combines creativity and functionality to highlight your achievements. Experience an energetic design, intuitive features, and a compelling way to present your work to the world." text: "Showcase your professional journey with Portfolio, a dynamic platform that combines creativity and functionality to highlight your achievements. Experience an energetic design, intuitive features, and a compelling way to present your work to the world."
url: https://{{domains.portfolio}} url: https://{{domains.portfolio}}
link_text: "Elevate Your Profile Now!" link_text: "Elevate Your Profile Now!"
{% endif %}
{% endif %}
{% if "bluesky" in group_names %} {% if "bluesky" in group_names %}
- icon: - icon:
class: "fa-solid fa-sun" class: "fa-solid fa-sun"
title: "Bluesky" title: "Bluesky"
text: "Soar to new digital heights with Bluesky, an innovative platform that reimagines social networking with its forward-thinking, community-driven approach. Experience a burst of energy, creativity, and the freedom to connect in a truly inspiring way." text: "Soar to new digital heights with Bluesky, an innovative platform that reimagines social networking with its forward-thinking, community-driven approach. Experience a burst of energy, creativity, and the freedom to connect in a truly inspiring way."
url: https://{{domains.bluesky}} url: https://{{domains.bluesky}}
link_text: "Soar with Bluesky Today!" link_text: "Soar with Bluesky Today!"
{% endif %}
{% endif %}
{% if "phpmyadmin" in group_names %} {% if "phpmyadmin" in group_names %}
- icon: - icon:
class: "fa-solid fa-database" class: "fa-solid fa-database"
title: "PHPMyAdmin" title: "PHPMyAdmin"
text: "Manage your databases with confidence using PHPMyAdmin, a robust and dynamic tool designed to simplify administration and enhance productivity. Enjoy an intuitive interface, powerful features, and an energetic approach that makes database management a breeze." text: "Manage your databases with confidence using PHPMyAdmin, a robust and dynamic tool designed to simplify administration and enhance productivity. Enjoy an intuitive interface, powerful features, and an energetic approach that makes database management a breeze."
url: https://{{domains.phpmyadmin}} url: https://{{domains.phpmyadmin}}
link_text: "Optimize Your Database Now!" link_text: "Optimize Your Database Now!"
{% endif %}
{% endif %}
{% if "snipe_it" in group_names %} {% if "snipe_it" in group_names %}
- icon: - icon:
class: "fa-solid fa-box" class: "fa-solid fa-box"
title: "SNIPE-IT" title: "SNIPE-IT"
text: "Streamline your asset management with SNIPE-IT, a cutting-edge solution that brings efficiency, clarity, and energy to tracking your hardware and software inventory. Experience a user-friendly design and dynamic features that make asset management simple and engaging." text: "Streamline your asset management with SNIPE-IT, a cutting-edge solution that brings efficiency, clarity, and energy to tracking your hardware and software inventory. Experience a user-friendly design and dynamic features that make asset management simple and engaging."
url: https://{{domains.snipe_it}} url: https://{{domains.snipe_it}}
link_text: "Manage Assets Effortlessly!" link_text: "Manage Assets Effortlessly!"
{% endif %} {% endif %}
platform: platform:
titel: {{service_provider.platform.titel}} titel: {{service_provider.platform.titel}}
subtitel: {{service_provider.platform.subtitel}} subtitel: {{service_provider.platform.subtitel}}
@ -377,15 +426,19 @@ navigation:
icon: icon:
class: fa-solid fa-envelope class: fa-solid fa-envelope
children: children:
{% if service_provider.contact.email is defined %} {% if service_provider.contact.email is defined %}
- name: Email - name: Email
description: Send {{ 'us' if service_provider.type == 'legal' else 'me' }} an email description: Send {{ 'us' if service_provider.type == 'legal' else 'me' }} an email
icon: icon:
class: fa-solid fa-envelope class: fa-solid fa-envelope
url: mailto:{{service_provider.contact.email}} url: mailto:{{service_provider.contact.email}}
identifier: {{service_provider.contact.email}} identifier: {{service_provider.contact.email}}
{% endif %} {% endif %}
{% if service_provider.contact.phone is defined %} {% if service_provider.contact.phone is defined %}
- name: Mobile - name: Mobile
description: Call {{ 'us' if service_provider.type == 'legal' else 'me' }} description: Call {{ 'us' if service_provider.type == 'legal' else 'me' }}
icon: icon:
@ -393,166 +446,214 @@ navigation:
url: "tel:{{service_provider.contact.phone}}" url: "tel:{{service_provider.contact.phone}}"
identifier: "{{service_provider.contact.phone}}" identifier: "{{service_provider.contact.phone}}"
target: _top target: _top
{% endif %} {% endif %}
{% if service_provider.contact.matrix is defined %} {% if service_provider.contact.matrix is defined %}
- name: Matrix - name: Matrix
description: Chat with {{ 'us' if service_provider.type == 'legal' else 'me' }} on Matrix description: Chat with {{ 'us' if service_provider.type == 'legal' else 'me' }} on Matrix
icon: icon:
class: fa-solid fa-cubes class: fa-solid fa-cubes
identifier: "{{service_provider.contact.matrix}}" identifier: "{{service_provider.contact.matrix}}"
{% endif %} {% endif %}
footer: footer:
children: children:
- link: accounts - link: accounts
{% if ["discourse","moodle","listmonk","openproject","taiga","snipe_it","matrix","bigbluebutton","mailu", "matomo","phpadmin","keycloak", "ldap", "baserow","yourls","nextcloud"] | any_in(group_names) %} {% if ["discourse","moodle","listmonk","openproject","taiga","snipe_it","matrix","bigbluebutton","mailu", "matomo","phpadmin","keycloak", "ldap", "baserow","yourls","nextcloud"] | any_in(group_names) %}
- name: Solution Hub - name: Solution Hub
description: Curated collection of self hosted tools description: Curated collection of self hosted tools
icon: icon:
class: fa-solid fa-network-wired class: fa-solid fa-network-wired
url:
children: children:
{% if ["discourse","moodle","listmonk"] | any_in(group_names) %} {% if ["discourse","moodle","listmonk"] | any_in(group_names) %}
- name: Community - name: Community
description: Tools to manage the community description: Tools to manage the community
icon: icon:
class: fa-solid fa-users class: fa-solid fa-users
children: children:
{% if "discourse" in group_names %} {% if "discourse" in group_names %}
- name: Forum - name: Forum
description: Join the discussion description: Join the discussion
icon: icon:
class: fa-brands fa-discourse class: fa-brands fa-discourse
url: https://{{domains.discourse}}/ url: https://{{domains.discourse}}/
{% endif %} {% endif %}
{% if "moodle" in group_names %} {% if "moodle" in group_names %}
- name: Learning Platform - name: Learning Platform
description: Learn with {{ 'our' if service_provider.type == 'legal' else 'my' }} academy description: Learn with {{ 'our' if service_provider.type == 'legal' else 'my' }} academy
icon: icon:
class: fa-solid fa-graduation-cap class: fa-solid fa-graduation-cap
url: https://{{domains.moodle}}/ url: https://{{domains.moodle}}/
{% endif %} {% endif %}
{% if "listmonk" in group_names %} {% if "listmonk" in group_names %}
- name: Newsletter - name: Newsletter
description: Subscribe to {{ 'our' if service_provider.type == 'legal' else 'my' }} newsletter description: Subscribe to {{ 'our' if service_provider.type == 'legal' else 'my' }} newsletter
icon: icon:
class: fa-solid fa-envelope-open-text class: fa-solid fa-envelope-open-text
url: https://{{domains.listmonk}}/subscription/form url: https://{{domains.listmonk}}/subscription/form
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if ["openproject","taiga","snipe_it"] | any_in(group_names) %} {% if ["openproject","taiga","snipe_it"] | any_in(group_names) %}
- name: Project Management - name: Project Management
description: Project Management Tools description: Project Management Tools
icon: icon:
class: fa-solid fa-chart-line class: fa-solid fa-chart-line
children: children:
{% if "openproject" in group_names %} {% if "openproject" in group_names %}
- name: Open Project - name: Open Project
description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} projects description: Explore {{ 'our' if service_provider.type == 'legal' else 'my' }} projects
icon: icon:
class: fa-solid fa-tasks class: fa-solid fa-tasks
url: https://{{domains.openproject}}/ url: https://{{domains.openproject}}/
{% endif %} {% endif %}
{% if "taiga" in group_names %} {% if "taiga" in group_names %}
- name: Taiga - name: Taiga
description: View {{ 'our' if service_provider.type == 'legal' else 'my' }} Kanban board description: View {{ 'our' if service_provider.type == 'legal' else 'my' }} Kanban board
icon: icon:
class: bi bi-clipboard2-check-fill class: bi bi-clipboard2-check-fill
url: https://{{domains.taiga}}/ url: https://{{domains.taiga}}/
{% endif %} {% endif %}
{% if "snipe_it" in group_names %} {% if "snipe_it" in group_names %}
- name: Snipe IT - name: Snipe IT
description: Manage {{ 'our' if service_provider.type == 'legal' else 'my' }} inventory description: Manage {{ 'our' if service_provider.type == 'legal' else 'my' }} inventory
icon: icon:
class: fas fa-box-open class: fas fa-box-open
url: https://{{domains.snipe_it}}/ url: https://{{domains.snipe_it}}/
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if ["matrix","bigbluebutton","mailu"] | any_in(group_names) %} {% if ["matrix","bigbluebutton","mailu"] | any_in(group_names) %}
- name: Communication - name: Communication
icon: icon:
class: fa-solid fa-comments class: fa-solid fa-comments
children: children:
{% if "matrix" in group_names %} {% if "matrix" in group_names %}
- name: Elements - name: Elements
description: Chat with the world description: Chat with the world
icon: icon:
class: fa-solid fa-comment class: fa-solid fa-comment
url: https://{{domains.matrix_element}}/ url: https://{{domains.matrix_element}}/
{% endif %} {% endif %}
{% if "bigbluebutton" in group_names %} {% if "bigbluebutton" in group_names %}
- name: Big Blue Button - name: Big Blue Button
description: Join live events description: Join live events
icon: icon:
class: fa-solid fa-video class: fa-solid fa-video
url: https://{{domains.bigbluebutton}}/ url: https://{{domains.bigbluebutton}}/
{% endif %} {% endif %}
{% if "mailu" in group_names %} {% if "mailu" in group_names %}
- name: Mailu - name: Mailu
description: Send{{ 'our' if service_provider.type == 'legal' else 'my' }}a mail description: Send{{ 'our' if service_provider.type == 'legal' else 'my' }}a mail
icon: icon:
class: fa-solid fa-envelope class: fa-solid fa-envelope
url: https://{{domains.mailu}}/ url: https://{{domains.mailu}}/
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if ["matomo","phpadmin","keycloak", "ldap"] | any_in(group_names) %} {% if ["matomo","phpadmin","keycloak", "ldap"] | any_in(group_names) %}
- name: Administration - name: Administration
icon: icon:
class: fas fa-building class: fas fa-building
children: children:
{% if "matomo" in group_names %} {% if "matomo" in group_names %}
- name: Matomo - name: Matomo
description: Analyze with Matomo description: Analyze with Matomo
icon: icon:
class: fa-solid fa-chart-simple class: fa-solid fa-chart-simple
url: https://{{domains.matomo}}/ url: https://{{domains.matomo}}/
{% endif %} {% endif %}
{% if "phpmyadmin" in group_names %} {% if "phpmyadmin" in group_names %}
- name: phpMyAdmin - name: phpMyAdmin
description: Administrate MySQL and MariaDB databases description: Administrate MySQL and MariaDB databases
icon: icon:
class: fas fa-database class: fas fa-database
url: https://{{domains.phpmyadmin}}/ url: https://{{domains.phpmyadmin}}/
{% endif %} {% endif %}
{% if "keycloak" in group_names %} {% if "keycloak" in group_names %}
- name: Keycloak - name: Keycloak
description: Manage User via Keycloak description: Manage User via Keycloak
icon: icon:
class: fas fa-user-shield class: fas fa-user-shield
url: https://{{domains.keycloak}}/admin url: https://{{domains.keycloak}}/admin
{% endif %} {% endif %}
{% if "ldap" in group_names %} {% if "ldap" in group_names %}
- name: LDAP - name: LDAP
description: Manage LDAP description: Manage LDAP
icon: icon:
class: fas fa-key class: fas fa-key
url: https://{{domains.ldap}}/ url: https://{{domains.ldap}}/
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if ["baserow","yourls","nextcloud"] | any_in(group_names) %} {% if ["baserow","yourls","nextcloud"] | any_in(group_names) %}
- name: Tools - name: Tools
icon: icon:
class: fas fa-tools class: fas fa-tools
children: children:
{% if "baserow" in group_names %} {% if "baserow" in group_names %}
- name: Baserow - name: Baserow
description: Organize with Baserow description: Organize with Baserow
icon: icon:
class: fa-solid fa-table class: fa-solid fa-table
url: https://{{domains.baserow}}/ url: https://{{domains.baserow}}/
{% endif %} {% endif %}
{% if "yourls" in group_names %} {% if "yourls" in group_names %}
- name: Yourls - name: Yourls
description: Create Shortlinks description: Create Shortlinks
icon: icon:
class: bi bi-link class: bi bi-link
url: https://{{domains.yourls}}/admin/ url: https://{{domains.yourls}}/admin/
{% endif %} {% endif %}
{% if "nextcloud" in group_names %} {% if "nextcloud" in group_names %}
- name: Nextcloud - name: Nextcloud
description: Access your cloud storage description: Access your cloud storage
icon: icon:
class: fa-solid fa-cloud class: fa-solid fa-cloud
url: https://{{domains.nextcloud}}/ url: https://{{domains.nextcloud}}/
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -562,4 +663,3 @@ navigation:
icon: icon:
class: fa-solid fa-scale-balanced class: fa-solid fa-scale-balanced
url: "{{service_provider.legal.imprint}}" url: "{{service_provider.legal.imprint}}"

View File

@ -30,7 +30,7 @@
uri: uri:
url: "https://{{ domains.matomo }}/index.php" url: "https://{{ domains.matomo }}/index.php"
method: POST method: POST
body: "module=API&method=SitesManager.addSite&siteName={{ base_domain }}&urls=https://{{ base_domain }}&token_auth={{ matomo_auth_token }}&format=json" body: "module=API&method=SitesManager.addSite&siteName={{ base_domain }}&urls=https://{{ base_domain }}&token_auth={{ applications.matomo.auth_token }}&format=json"
body_format: form-urlencoded body_format: form-urlencoded
status_code: 200 status_code: 200
return_content: yes return_content: yes

View File

@ -1,2 +1,2 @@
base_domain: "{{ domain | regex_replace('^(?:.*\\.)?(.+\\..+)$', '\\1') }}" base_domain: "{{ domain | regex_replace('^(?:.*\\.)?(.+\\..+)$', '\\1') }}"
verification_url: "https://{{domains.matomo}}/index.php?module=API&method=SitesManager.getSitesIdFromSiteUrl&url=https://{{base_domain}}&format=json&token_auth={{matomo_auth_token}}" verification_url: "https://{{domains.matomo}}/index.php?module=API&method=SitesManager.getSitesIdFromSiteUrl&url=https://{{base_domain}}&format=json&token_auth={{applications.matomo.auth_token}}"