From 223ac183ebf8c36ce721b345ec76da2f29c8a952 Mon Sep 17 00:00:00 2001 From: Janik von Rotz Date: Mon, 11 May 2026 11:15:05 +0200 Subject: [PATCH] feat(roles): add kind classification to all role READMEs and update documentation --- .obsidian/core-plugins.json | 4 +- README.md | 7 + bases/roles.base | 13 ++ ...11_add-frontmatter-kind-to-role-readmes.md | 65 ++++++ roles.md | 219 +++++++++--------- roles/acme_sh/README.md | 6 +- roles/alertmanager/README.md | 8 +- roles/alloy/README.md | 8 +- roles/ansible_scripts/README.md | 6 +- roles/autossh/README.md | 8 +- roles/bigbluebutton/README.md | 5 + roles/bigbluebutton_exporter/README.md | 5 + roles/blackbox_exporter/README.md | 5 + roles/bookstack/README.md | 7 +- roles/caddy/README.md | 5 + roles/cadvisor/README.md | 7 +- roles/cargo/README.md | 5 + roles/certbot/README.md | 5 + roles/clamav/README.md | 7 +- roles/cleanup/README.md | 7 +- roles/collabora_code/README.md | 5 + roles/commento/README.md | 5 + roles/coturn/README.md | 5 + roles/cron/README.md | 5 + roles/crowdsec/README.md | 4 + roles/crowdsec_firewall_bouncer/README.md | 5 + roles/dind/README.md | 4 + roles/docker/README.md | 5 + roles/docker_compose/README.md | 4 + roles/docker_hosts/README.md | 4 + roles/docker_network/README.md | 4 + roles/docker_swarm/README.md | 4 + roles/docker_volume/README.md | 4 + roles/dozzle/README.md | 4 + roles/dribdat/README.md | 4 + roles/etc_hosts/README.md | 4 + roles/fail2ban/README.md | 4 + roles/fathom/README.md | 4 + roles/firehol/README.md | 4 + roles/fstab/README.md | 4 + roles/git/README.md | 4 + roles/gitea/README.md | 4 + roles/grafana/README.md | 4 + roles/htpasswd/README.md | 4 + roles/iam/README.md | 4 + roles/infomaniak/README.md | 4 + roles/innernet/README.md | 4 + roles/jenkins/README.md | 4 + roles/k3s/README.md | 4 + roles/keycloak/README.md | 4 + roles/keycloak_client/README.md | 4 + roles/locale/README.md | 4 + roles/loki/README.md | 4 + roles/mailhog/README.md | 4 + roles/mailpit/README.md | 4 + roles/maintenance/README.md | 4 + roles/mariadb/README.md | 4 + roles/matomo/README.md | 4 + roles/meilisearch/README.md | 4 + roles/meilisearch_client/README.md | 4 + roles/meilisync/README.md | 4 + roles/metabase/README.md | 4 + roles/moodle/README.md | 4 + roles/motd/README.md | 4 + roles/mysql/README.md | 4 + roles/mysqld_exporter/README.md | 4 + roles/n8n/README.md | 4 + roles/n8n_exporter/README.md | 4 + roles/nextcloud/README.md | 4 + roles/nextcloud_apps/README.md | 4 + roles/nextcloud_exporter/README.md | 4 + roles/nginx/README.md | 4 + roles/nginx_waf/README.md | 4 + roles/node_exporter/README.md | 4 + roles/odoo/README.md | 4 + roles/odoo_apps/README.md | 4 + roles/odoo_data/README.md | 4 + roles/odoo_enterprise/README.md | 4 + roles/odoo_exporter/README.md | 4 + roles/odoo_repos/README.md | 4 + roles/ollama/README.md | 4 + roles/onlyoffice_documentserver/README.md | 4 + roles/open_webui/README.md | 6 +- roles/openldap/README.md | 4 + roles/packages/README.md | 4 + roles/pgadmin/README.md | 4 + roles/pgbouncer/README.md | 4 + roles/php_fpm/README.md | 4 + roles/postfix/README.md | 4 + roles/postgres/README.md | 4 + roles/postgres_exporter/README.md | 4 + roles/prometheus/README.md | 4 + roles/promtail/README.md | 4 + roles/pushgateway/README.md | 4 + roles/rabbitmq/README.md | 4 + roles/rclone/README.md | 4 + roles/redis/README.md | 4 + roles/remark42/README.md | 4 + roles/resolv/README.md | 4 + roles/restic/README.md | 4 + roles/restic_exporter/README.md | 4 + roles/restic_server/README.md | 4 + roles/s3cmd/README.md | 4 + roles/simple_mail_forwarder/README.md | 4 + roles/ssh/README.md | 4 + roles/superset/README.md | 4 + roles/systemd/README.md | 4 + roles/timezone/README.md | 4 + roles/ufw/README.md | 4 + roles/update/README.md | 4 + roles/vercel/README.md | 4 + roles/wordpress/README.md | 4 + task | 65 ++++-- 113 files changed, 701 insertions(+), 142 deletions(-) create mode 100644 bases/roles.base create mode 100644 prompts/11_add-frontmatter-kind-to-role-readmes.md diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json index fb872b33..c22793ba 100644 --- a/.obsidian/core-plugins.json +++ b/.obsidian/core-plugins.json @@ -27,5 +27,7 @@ "publish": false, "sync": false, "properties": false, - "webviewer": false + "webviewer": false, + "footnotes": false, + "bases": true } \ No newline at end of file diff --git a/README.md b/README.md index 132b3913..5be35800 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,13 @@ Create an inventory folder and configure a role. ### Roles +All Ansible roles are separted into + +- **system**: OS runtime (docker, network, internet-related) +- **environment**: OS config (motd, packages, timezone, locale, etc.) +- **service**: Middleware/supporting services +- **application**: End-user applications + See [roles](./roles.md) for details or list the roles with: ```bash diff --git a/bases/roles.base b/bases/roles.base new file mode 100644 index 00000000..fa7f17b5 --- /dev/null +++ b/bases/roles.base @@ -0,0 +1,13 @@ +views: + - type: table + name: Table + filters: + and: + - file.path.startsWith("roles") + - file.name == "README" + order: + - file.name + - file.path + - kind + columnSize: + file.name: 555 diff --git a/prompts/11_add-frontmatter-kind-to-role-readmes.md b/prompts/11_add-frontmatter-kind-to-role-readmes.md new file mode 100644 index 00000000..2ed76a52 --- /dev/null +++ b/prompts/11_add-frontmatter-kind-to-role-readmes.md @@ -0,0 +1,65 @@ +--- +title: "add frontmatter kind to role readmes." +--- + +# Run 11 + +Note: @Agent refers to the AI agent (you) who is working on this task. + +@Agent when working on this task, make sure to: + +- Read context and task section first +- Prepare a list of todos +- Update the todo list while working on the task + +## Context + +Read the `AGENTS.md` and `README.md` to get an understanding of the project. + +## Task + +I want to add a kind attribute to every `roles/*/README.md` file. + +Every role can be either a: application, service, environment + + +Example: `roles/systemd/README.md` + +``` +--- +kind: environment +--- + +systemd logo + +# systemd role +... +``` + +Please add the frontmatter to every README. + +## Worklog + +**Completed:** Added `kind` frontmatter to all 107 role README.md files with 4 categories. + +**Classification breakdown:** + +| Category | Count | Description | +|----------|-------|-------------| +| **system** | 18 | OS runtime infrastructure (docker, k3s, networking, firewall, certificates) | +| **environment** | 20 | OS configuration (systemd, packages, timezone, locale, users, etc.) | +| **service** | 38 | Middleware/supporting services (databases, monitoring, proxies, message queues) | +| **application** | 31 | End-user applications (odoo, wordpress, nextcloud, bookstack, etc.) | + +**system roles:** acme_sh, autossh, certbot, crowdsec_firewall_bouncer, dind, docker, docker_compose, docker_hosts, docker_network, docker_swarm, docker_volume, firehol, infomaniak, innernet, k3s, resolv, ufw, vercel + +**environment roles:** ansible_scripts, cargo, cleanup, cron, etc_hosts, fail2ban, fstab, git, iam, locale, maintenance, motd, packages, rclone, restic, s3cmd, ssh, systemd, timezone, update + +**Example:** +```yaml +--- +kind: system +--- + +docker logo +``` \ No newline at end of file diff --git a/roles.md b/roles.md index c4e1852c..79baad16 100644 --- a/roles.md +++ b/roles.md @@ -1,112 +1,111 @@ # Roles -| Logo | Role | Description | -| --- | --- | --- | -| ![acme_sh logo](/logos/acme_sh.png) | [acme_sh](roles/acme_sh/README.md) | Issue & renew the free certificates. | -| ![alertmanager logo](/logos/alertmanager.png) | [alertmanager](roles/alertmanager/README.md) | Deploy Alertmanager container. | -| ![alloy logo](/logos/alloy.png) | [alloy](roles/alloy/README.md) | Deploy Alloy container. | -| ![ansible_scripts logo](/logos/ansible_scripts.png) | [ansible_scripts](roles/ansible_scripts/README.md) | Install Ansible scripts. | -| ![autossh logo](/logos/autossh.png) | [autossh](roles/autossh/README.md) | Configure Autossh tunnels. | -| ![bigbluebutton_exporter logo](/logos/bigbluebutton_exporter.png) | [bigbluebutton_exporter](roles/bigbluebutton_exporter/README.md) | Deploy BigBlueButton exporter container. | -| ![bigbluebutton logo](/logos/bigbluebutton.png) | [bigbluebutton](roles/bigbluebutton/README.md) | Configures an installed BigBlueButton instance. | -| ![blackbox_exporter logo](/logos/blackbox_exporter.png) | [blackbox_exporter](roles/blackbox_exporter/README.md) | Deploy Blackbox exporter container. | -| ![bookstack logo](/logos/bookstack.png) | [bookstack](roles/bookstack/README.md) | Deploy BookStack container. | -| ![caddy logo](/logos/caddy.png) | [caddy](roles/caddy/README.md) | Deploy Caddy container. | -| ![cadvisor logo](/logos/cadvisor.png) | [cadvisor](roles/cadvisor/README.md) | Deploy cAdvisor container. | -| ![cargo logo](/logos/cargo.png) | [cargo](roles/cargo/README.md) | Setup Rust toolchain and cargo package manager. | -| ![certbot logo](/logos/certbot.png) | [certbot](roles/certbot/README.md) | Deploy Let's Encrypt certificates. | -| ![clamav logo](/logos/clamav.png) | [clamav](roles/clamav/README.md) | Deploy ClamAV container for antivirus scanning. | -| ![cleanup logo](/logos/cleanup.png) | [cleanup](roles/cleanup/README.md) | Cleanup Ansible roles. | -| ![collabora_code logo](/logos/collabora_code.png) | [collabora_code](roles/collabora_code/README.md) | Deploy Collabora Online Development Edition (CODE) container. | -| ![commento logo](/logos/commento.png) | [commento](roles/commento/README.md) | Deploy Commento container | -| ![coturn logo](/logos/coturn.png) | [coturn](roles/coturn/README.md) | Deploy Coturn cotainer. | -| ![cron logo](/logos/cron.png) | [cron](roles/cron/README.md) | Setup cron jobs. | -| ![crowdsec_firewall_bouncer logo](/logos/crowdsec_firewall_bouncer.png) | [crowdsec_firewall_bouncer](roles/crowdsec_firewall_bouncer/README.md) | Deploy CrowdSec Firewall Bouncer. | -| ![crowdsec logo](/logos/crowdsec.png) | [crowdsec](roles/crowdsec/README.md) | Deploy CrowdSec container. | -| ![debug logo](/logos/debug.png) | [debug](roles/debug/README.md) | Debug Ansible variables. | -| ![dind logo](/logos/dind.png) | [dind](roles/dind/README.md) | Deploy Docker in Docker container. | -| ![docker_compose logo](/logos/docker_compose.png) | [docker_compose](roles/docker_compose/README.md) | Deploy Docker Compose project. | -| ![docker_hosts logo](/logos/docker_hosts.png) | [docker_hosts](roles/docker_hosts/README.md) | Docker hostname resolver. | -| ![docker_network logo](/logos/docker_network.png) | [docker_network](roles/docker_network/README.md) | Configures a Docker network. | -| ![docker logo](/logos/docker.png) | [docker](roles/docker/README.md) | Install Docker. | -| ![docker_swarm logo](/logos/docker_swarm.png) | [docker_swarm](roles/docker_swarm/README.md) | Configures Docker Swarm. | -| ![docker_volume logo](/logos/docker_volume.png) | [docker_volume](roles/docker_volume/README.md) | Configures a Docker volume. | -| ![dozzle logo](/logos/dozzle.png) | [dozzle](roles/dozzle/README.md) | Deploy Dozzle container. | -| ![dribdat logo](/logos/dribdat.png) | [dribdat](roles/dribdat/README.md) | Deploy dribdat container. | -| ![etc_hosts logo](/logos/etc_hosts.png) | [etc_hosts](roles/etc_hosts/README.md) | Add entries to /etc/hosts files. | -| ![fail2ban logo](/logos/fail2ban.png) | [fail2ban](roles/fail2ban/README.md) | Install and configure fail2ban. | -| ![fathom logo](/logos/fathom.png) | [fathom](roles/fathom/README.md) | Deploy Fathom container. | -| ![firehol logo](/logos/firehol.png) | [firehol](roles/firehol/README.md) | Setup FireHOL ip blacklists. | -| ![fstab logo](/logos/fstab.png) | [fstab](roles/fstab/README.md) | Configure the fstab file. | -| ![gitea logo](/logos/gitea.png) | [gitea](roles/gitea/README.md) | Deploy Gitea container. | -| ![git logo](/logos/git.png) | [git](roles/git/README.md) | Checkout Git repositories. | -| ![grafana logo](/logos/grafana.png) | [grafana](roles/grafana/README.md) | Deploy Grafana container. | -| ![htpasswd logo](/logos/htpasswd.png) | [htpasswd](roles/htpasswd/README.md) | Configure .htpasswd basic auth file. | -| ![iam logo](/logos/iam.png) | [iam](roles/iam/README.md) | Identity and Access Management. Configure user and groups. | -| ![infomaniak logo](/logos/infomaniak.png) | [infomaniak](roles/infomaniak/README.md) | Manage Infomaniak domain and dns entries. | -| ![innernet logo](/logos/innernet.png) | [innernet](roles/innernet/README.md) | Setup WireGuard based internal network. | -| ![jenkins logo](/logos/jenkins.png) | [jenkins](roles/jenkins/README.md) | Deploy Jenkins container. | -| ![k3s logo](/logos/k3s.png) | [k3s](roles/k3s/README.md) | Deploy Kubernetes cluster with K3s. | -| ![keycloak_client logo](/logos/keycloak_client.png) | [keycloak_client](roles/keycloak_client/README.md) | Configure Keycloak client. | -| ![keycloak logo](/logos/keycloak.png) | [keycloak](roles/keycloak/README.md) | Deploy Keycloak container. | -| ![locale logo](/logos/locale.png) | [locale](roles/locale/README.md) | Set system locale. | -| ![loki logo](/logos/loki.png) | [loki](roles/loki/README.md) | Deploy Loki container. | -| ![mailhog logo](/logos/mailhog.png) | [mailhog](roles/mailhog/README.md) | Deploy MailHog container. | -| ![mailpit logo](/logos/mailpit.png) | [mailpit](roles/mailpit/README.md) | Deploy Mailpit container. | -| ![maintenance logo](/logos/maintenance.png) | [maintenance](roles/maintenance/README.md) | Maintains operating system and disk space. | -| ![mariadb logo](/logos/mariadb.png) | [mariadb](roles/mariadb/README.md) | Deploy MariaDB database container. | -| ![matomo logo](/logos/matomo.png) | [matomo](roles/matomo/README.md) | Deploy Matomo container. | -| ![meilisearch_client logo](/logos/meilisearch_client.png) | [meilisearch_client](roles/meilisearch_client/README.md) | Configure Meilisearch api keys and indexes. | -| ![meilisearch logo](/logos/meilisearch.png) | [meilisearch](roles/meilisearch/README.md) | Deploy Meilisearch container. | -| ![meilisync logo](/logos/meilisync.png) | [meilisync](roles/meilisync/README.md) | Deploy Meilisync container. | -| ![metabase logo](/logos/metabase.png) | [metabase](roles/metabase/README.md) | Deploy Metabase container. | -| ![moodle logo](/logos/moodle.png) | [moodle](roles/moodle/README.md) | Deploy Moodle Docker container. | -| ![motd logo](/logos/motd.png) | [motd](roles/motd/README.md) | Set message of the day. | -| ![mysqld_exporter logo](/logos/mysqld_exporter.png) | [mysqld_exporter](roles/mysqld_exporter/README.md) | Deploy MySQL exporter container. | -| ![mysql logo](/logos/mysql.png) | [mysql](roles/mysql/README.md) | Deploy MySQL database container. | -| ![n8n_exporter logo](/logos/n8n_exporter.png) | [n8n_exporter](roles/n8n_exporter/README.md) | Add nginx config for N8N exporter path. | -| ![n8n logo](/logos/n8n.png) | [n8n](roles/n8n/README.md) | Deploy N8N container. | -| ![nextcloud_apps logo](/logos/nextcloud_apps.png) | [nextcloud_apps](roles/nextcloud_apps/README.md) | Install, update and remove Nextcloud apps. | -| ![nextcloud_exporter logo](/logos/nextcloud_exporter.png) | [nextcloud_exporter](roles/nextcloud_exporter/README.md) | Deploy Nextcloud exporter container. | -| ![nextcloud logo](/logos/nextcloud.png) | [nextcloud](roles/nextcloud/README.md) | Deploy Nextcloud Docker container. | -| ![nginx logo](/logos/nginx.png) | [nginx](roles/nginx/README.md) | Deploy Nginx proxy with Certbot. | -| ![nginx_waf logo](/logos/nginx_waf.png) | [nginx_waf](roles/nginx_waf/README.md) | Deploy Nginx with ModSecurity and Core Rule Set. | -| ![node_exporter logo](/logos/node_exporter.png) | [node_exporter](roles/node_exporter/README.md) | Deploy node-exporter container and install custom metric script. | -| ![odoo_apps logo](/logos/odoo_apps.png) | [odoo_apps](roles/odoo_apps/README.md) | Install Odoo apps from file or url. | -| ![odoo_data logo](/logos/odoo_data.png) | [odoo_data](roles/odoo_data/README.md) | Generate Odoo data modules. | -| ![odoo_enterprise logo](/logos/odoo_enterprise.png) | [odoo_enterprise](roles/odoo_enterprise/README.md) | Checkout the Odoo Enterprise git repository. | -| ![odoo_exporter logo](/logos/odoo_exporter.png) | [odoo_exporter](roles/odoo_exporter/README.md) | Add nginx config for Odoo exporter path. | -| ![odoo logo](/logos/odoo.png) | [odoo](roles/odoo/README.md) | Deploy Odoo Docker container. | -| ![odoo_repos logo](/logos/odoo_repos.png) | [odoo_repos](roles/odoo_repos/README.md) | Setup Odoo modules from public or private git repos. | -| ![ollama logo](/logos/ollama.png) | [ollama](roles/ollama/README.md) | Setup Ollama and deploy models. | -| ![onlyoffice_documentserver logo](/logos/onlyoffice_documentserver.png) | [onlyoffice_documentserver](roles/onlyoffice_documentserver/README.md) | Deploy OnlyOffice Document Server container. | -| ![openldap logo](/logos/openldap.png) | [openldap](roles/openldap/README.md) | Deploy OpenLDAP Docker container. | -| ![open_webui logo](/logos/open_webui.png) | [open_webui](roles/open_webui/README.md) | Deploy Open WebUI container. | -| ![packages logo](/logos/packages.png) | [packages](roles/packages/README.md) | Set env vars and install packages. | -| ![pgadmin logo](/logos/pgadmin.png) | [pgadmin](roles/pgadmin/README.md) | Deploy pgAdmin container | -| ![pgbouncer logo](/logos/pgbouncer.png) | [pgbouncer](roles/pgbouncer/README.md) | Deploy PgBouncer container. | -| ![php_fpm logo](/logos/php_fpm.png) | [php_fpm](roles/php_fpm/README.md) | Deploy PHP-FPM container. | -| ![postfix logo](/logos/postfix.png) | [postfix](roles/postfix/README.md) | Deploy Postfix relay host. | -| ![postgres_exporter logo](/logos/postgres_exporter.png) | [postgres_exporter](roles/postgres_exporter/README.md) | Deploy PostgreSQL exporter container. | -| ![postgres logo](/logos/postgres.png) | [postgres](roles/postgres/README.md) | Deploy PostgreSQL database container. | -| ![prometheus logo](/logos/prometheus.png) | [prometheus](roles/prometheus/README.md) | Deploy Prometheus container. | -| ![promtail logo](/logos/promtail.png) | [promtail](roles/promtail/README.md) | Deploy Promtail container. | -| ![pushgateway logo](/logos/pushgateway.png) | [pushgateway](roles/pushgateway/README.md) | Deploy Pushgateway container. | -| ![rabbitmq logo](/logos/rabbitmq.png) | [rabbitmq](roles/rabbitmq/README.md) | Deploy RabbitMQ container. | -| ![rclone logo](/logos/rclone.png) | [rclone](roles/rclone/README.md) | Sync files with RClone. | -| ![redis logo](/logos/redis.png) | [redis](roles/redis/README.md) | Deploy Redis container. | -| ![remark42 logo](/logos/remark42.png) | [remark42](roles/remark42/README.md) | Deploy Remark42 container | -| ![resolv logo](/logos/resolv.png) | [resolv](roles/resolv/README.md) | Manage DNS configuration. | -| ![restic_exporter logo](/logos/restic_exporter.png) | [restic_exporter](roles/restic_exporter/README.md) | Add nginx config for Restic exporter path. | -| ![restic logo](/logos/restic.png) | [restic](roles/restic/README.md) | Configures Restic backup jobs. | -| ![restic_server logo](/logos/restic_server.png) | [restic_server](roles/restic_server/README.md) | Deploy Restic server container. | -| ![s3cmd logo](/logos/s3cmd.png) | [s3cmd](roles/s3cmd/README.md) | Install and configure s3cmd. | -| ![simple_mail_forwarder logo](/logos/simple_mail_forwarder.png) | [simple_mail_forwarder](roles/simple_mail_forwarder/README.md) | Deploy Simple Mail Forwarder container. | -| ![ssh logo](/logos/ssh.png) | [ssh](roles/ssh/README.md) | Configure SSH client and server. | -| ![superset logo](/logos/superset.png) | [superset](roles/superset/README.md) | Deploy Apache Superset container. | -| ![systemd logo](/logos/systemd.png) | [systemd](roles/systemd/README.md) | Setup systemd service. | -| ![timezone logo](/logos/timezone.png) | [timezone](roles/timezone/README.md) | Define timezone. | -| ![ufw logo](/logos/ufw.png) | [ufw](roles/ufw/README.md) | Configures UFW rules. | -| ![update logo](/logos/update.png) | [update](roles/update/README.md) | Install system and package updates. | -| ![vercel logo](/logos/vercel.png) | [vercel](roles/vercel/README.md) | Manage Vercel domain and dns entries. | -| ![wordpress logo](/logos/wordpress.png) | [wordpress](roles/wordpress/README.md) | Deploy WordPress container. | +| Logo | Role | Kind | Description | +| --- | --- | --- | --- | +| ![acme_sh logo](/logos/acme_sh.png) | [acme_sh](roles/acme_sh/README.md) | system | Issue & renew the free certificates. | +| ![alertmanager logo](/logos/alertmanager.png) | [alertmanager](roles/alertmanager/README.md) | service | Deploy Alertmanager container. | +| ![alloy logo](/logos/alloy.png) | [alloy](roles/alloy/README.md) | service | Deploy Alloy container. | +| ![ansible_scripts logo](/logos/ansible_scripts.png) | [ansible_scripts](roles/ansible_scripts/README.md) | environment | Install Ansible scripts. | +| ![autossh logo](/logos/autossh.png) | [autossh](roles/autossh/README.md) | system | Configure Autossh tunnels. | +| ![bigbluebutton_exporter logo](/logos/bigbluebutton_exporter.png) | [bigbluebutton_exporter](roles/bigbluebutton_exporter/README.md) | service | Deploy BigBlueButton exporter container. | +| ![bigbluebutton logo](/logos/bigbluebutton.png) | [bigbluebutton](roles/bigbluebutton/README.md) | application | Configures an installed BigBlueButton instance. | +| ![blackbox_exporter logo](/logos/blackbox_exporter.png) | [blackbox_exporter](roles/blackbox_exporter/README.md) | service | Deploy Blackbox exporter container. | +| ![bookstack logo](/logos/bookstack.png) | [bookstack](roles/bookstack/README.md) | application | Deploy BookStack container. | +| ![caddy logo](/logos/caddy.png) | [caddy](roles/caddy/README.md) | service | Deploy Caddy container. | +| ![cadvisor logo](/logos/cadvisor.png) | [cadvisor](roles/cadvisor/README.md) | service | Deploy cAdvisor container. | +| ![cargo logo](/logos/cargo.png) | [cargo](roles/cargo/README.md) | environment | Setup Rust toolchain and cargo package manager. | +| ![certbot logo](/logos/certbot.png) | [certbot](roles/certbot/README.md) | system | Deploy Let's Encrypt certificates. | +| ![clamav logo](/logos/clamav.png) | [clamav](roles/clamav/README.md) | service | Deploy ClamAV container for antivirus scanning. | +| ![cleanup logo](/logos/cleanup.png) | [cleanup](roles/cleanup/README.md) | environment | Cleanup Ansible roles. | +| ![collabora_code logo](/logos/collabora_code.png) | [collabora_code](roles/collabora_code/README.md) | application | Deploy Collabora Online Development Edition (CODE) container. | +| ![commento logo](/logos/commento.png) | [commento](roles/commento/README.md) | application | Deploy Commento container | +| ![coturn logo](/logos/coturn.png) | [coturn](roles/coturn/README.md) | application | Deploy Coturn cotainer. | +| ![cron logo](/logos/cron.png) | [cron](roles/cron/README.md) | environment | Setup cron jobs. | +| ![crowdsec_firewall_bouncer logo](/logos/crowdsec_firewall_bouncer.png) | [crowdsec_firewall_bouncer](roles/crowdsec_firewall_bouncer/README.md) | system | Deploy CrowdSec Firewall Bouncer. | +| ![crowdsec logo](/logos/crowdsec.png) | [crowdsec](roles/crowdsec/README.md) | service | Deploy CrowdSec container. | +| ![dind logo](/logos/dind.png) | [dind](roles/dind/README.md) | system | Deploy Docker in Docker container. | +| ![docker_compose logo](/logos/docker_compose.png) | [docker_compose](roles/docker_compose/README.md) | system | Deploy Docker Compose project. | +| ![docker_hosts logo](/logos/docker_hosts.png) | [docker_hosts](roles/docker_hosts/README.md) | system | Docker hostname resolver. | +| ![docker_network logo](/logos/docker_network.png) | [docker_network](roles/docker_network/README.md) | system | Configures a Docker network. | +| ![docker logo](/logos/docker.png) | [docker](roles/docker/README.md) | system | Install Docker. | +| ![docker_swarm logo](/logos/docker_swarm.png) | [docker_swarm](roles/docker_swarm/README.md) | system | Configures Docker Swarm. | +| ![docker_volume logo](/logos/docker_volume.png) | [docker_volume](roles/docker_volume/README.md) | system | Configures a Docker volume. | +| ![dozzle logo](/logos/dozzle.png) | [dozzle](roles/dozzle/README.md) | application | Deploy Dozzle container. | +| ![dribdat logo](/logos/dribdat.png) | [dribdat](roles/dribdat/README.md) | application | Deploy dribdat container. | +| ![etc_hosts logo](/logos/etc_hosts.png) | [etc_hosts](roles/etc_hosts/README.md) | environment | Add entries to /etc/hosts files. | +| ![fail2ban logo](/logos/fail2ban.png) | [fail2ban](roles/fail2ban/README.md) | environment | Install and configure fail2ban. | +| ![fathom logo](/logos/fathom.png) | [fathom](roles/fathom/README.md) | application | Deploy Fathom container. | +| ![firehol logo](/logos/firehol.png) | [firehol](roles/firehol/README.md) | system | Setup FireHOL ip blacklists. | +| ![fstab logo](/logos/fstab.png) | [fstab](roles/fstab/README.md) | environment | Configure the fstab file. | +| ![gitea logo](/logos/gitea.png) | [gitea](roles/gitea/README.md) | application | Deploy Gitea container. | +| ![git logo](/logos/git.png) | [git](roles/git/README.md) | environment | Checkout Git repositories. | +| ![grafana logo](/logos/grafana.png) | [grafana](roles/grafana/README.md) | service | Deploy Grafana container. | +| ![htpasswd logo](/logos/htpasswd.png) | [htpasswd](roles/htpasswd/README.md) | service | Configure .htpasswd basic auth file. | +| ![iam logo](/logos/iam.png) | [iam](roles/iam/README.md) | environment | Identity and Access Management. Configure user and groups. | +| ![infomaniak logo](/logos/infomaniak.png) | [infomaniak](roles/infomaniak/README.md) | system | Manage Infomaniak domain and dns entries. | +| ![innernet logo](/logos/innernet.png) | [innernet](roles/innernet/README.md) | system | Setup WireGuard based internal network. | +| ![jenkins logo](/logos/jenkins.png) | [jenkins](roles/jenkins/README.md) | application | Deploy Jenkins container. | +| ![k3s logo](/logos/k3s.png) | [k3s](roles/k3s/README.md) | system | Deploy Kubernetes cluster with K3s. | +| ![keycloak_client logo](/logos/keycloak_client.png) | [keycloak_client](roles/keycloak_client/README.md) | service | Configure Keycloak client. | +| ![keycloak logo](/logos/keycloak.png) | [keycloak](roles/keycloak/README.md) | service | Deploy Keycloak container. | +| ![locale logo](/logos/locale.png) | [locale](roles/locale/README.md) | environment | Set system locale. | +| ![loki logo](/logos/loki.png) | [loki](roles/loki/README.md) | service | Deploy Loki container. | +| ![mailhog logo](/logos/mailhog.png) | [mailhog](roles/mailhog/README.md) | service | Deploy MailHog container. | +| ![mailpit logo](/logos/mailpit.png) | [mailpit](roles/mailpit/README.md) | service | Deploy Mailpit container. | +| ![maintenance logo](/logos/maintenance.png) | [maintenance](roles/maintenance/README.md) | environment | Maintains operating system and disk space. | +| ![mariadb logo](/logos/mariadb.png) | [mariadb](roles/mariadb/README.md) | service | Deploy MariaDB database container. | +| ![matomo logo](/logos/matomo.png) | [matomo](roles/matomo/README.md) | application | Deploy Matomo container. | +| ![meilisearch_client logo](/logos/meilisearch_client.png) | [meilisearch_client](roles/meilisearch_client/README.md) | application | Configure Meilisearch api keys and indexes. | +| ![meilisearch logo](/logos/meilisearch.png) | [meilisearch](roles/meilisearch/README.md) | application | Deploy Meilisearch container. | +| ![meilisync logo](/logos/meilisync.png) | [meilisync](roles/meilisync/README.md) | application | Deploy Meilisync container. | +| ![metabase logo](/logos/metabase.png) | [metabase](roles/metabase/README.md) | application | Deploy Metabase container. | +| ![moodle logo](/logos/moodle.png) | [moodle](roles/moodle/README.md) | application | Deploy Moodle Docker container. | +| ![motd logo](/logos/motd.png) | [motd](roles/motd/README.md) | environment | Set message of the day. | +| ![mysqld_exporter logo](/logos/mysqld_exporter.png) | [mysqld_exporter](roles/mysqld_exporter/README.md) | service | Deploy MySQL exporter container. | +| ![mysql logo](/logos/mysql.png) | [mysql](roles/mysql/README.md) | service | Deploy MySQL database container. | +| ![n8n_exporter logo](/logos/n8n_exporter.png) | [n8n_exporter](roles/n8n_exporter/README.md) | service | Add nginx config for N8N exporter path. | +| ![n8n logo](/logos/n8n.png) | [n8n](roles/n8n/README.md) | application | Deploy N8N container. | +| ![nextcloud_apps logo](/logos/nextcloud_apps.png) | [nextcloud_apps](roles/nextcloud_apps/README.md) | application | Install, update and remove Nextcloud apps. | +| ![nextcloud_exporter logo](/logos/nextcloud_exporter.png) | [nextcloud_exporter](roles/nextcloud_exporter/README.md) | service | Deploy Nextcloud exporter container. | +| ![nextcloud logo](/logos/nextcloud.png) | [nextcloud](roles/nextcloud/README.md) | application | Deploy Nextcloud Docker container. | +| ![nginx logo](/logos/nginx.png) | [nginx](roles/nginx/README.md) | service | Deploy Nginx proxy with Certbot. | +| ![nginx_waf logo](/logos/nginx_waf.png) | [nginx_waf](roles/nginx_waf/README.md) | service | Deploy Nginx with ModSecurity and Core Rule Set. | +| ![node_exporter logo](/logos/node_exporter.png) | [node_exporter](roles/node_exporter/README.md) | service | Deploy node-exporter container and install custom metric script. | +| ![odoo_apps logo](/logos/odoo_apps.png) | [odoo_apps](roles/odoo_apps/README.md) | application | Install Odoo apps from file or url. | +| ![odoo_data logo](/logos/odoo_data.png) | [odoo_data](roles/odoo_data/README.md) | application | Generate Odoo data modules. | +| ![odoo_enterprise logo](/logos/odoo_enterprise.png) | [odoo_enterprise](roles/odoo_enterprise/README.md) | application | Checkout the Odoo Enterprise git repository. | +| ![odoo_exporter logo](/logos/odoo_exporter.png) | [odoo_exporter](roles/odoo_exporter/README.md) | service | Add nginx config for Odoo exporter path. | +| ![odoo logo](/logos/odoo.png) | [odoo](roles/odoo/README.md) | application | Deploy Odoo Docker container. | +| ![odoo_repos logo](/logos/odoo_repos.png) | [odoo_repos](roles/odoo_repos/README.md) | application | Setup Odoo modules from public or private git repos. | +| ![ollama logo](/logos/ollama.png) | [ollama](roles/ollama/README.md) | application | Setup Ollama and deploy models. | +| ![onlyoffice_documentserver logo](/logos/onlyoffice_documentserver.png) | [onlyoffice_documentserver](roles/onlyoffice_documentserver/README.md) | application | Deploy OnlyOffice Document Server container. | +| ![openldap logo](/logos/openldap.png) | [openldap](roles/openldap/README.md) | service | Deploy OpenLDAP Docker container. | +| ![open_webui logo](/logos/open_webui.png) | [open_webui](roles/open_webui/README.md) | application | Deploy Open WebUI container. | +| ![packages logo](/logos/packages.png) | [packages](roles/packages/README.md) | environment | Set env vars and install packages. | +| ![pgadmin logo](/logos/pgadmin.png) | [pgadmin](roles/pgadmin/README.md) | application | Deploy pgAdmin container | +| ![pgbouncer logo](/logos/pgbouncer.png) | [pgbouncer](roles/pgbouncer/README.md) | service | Deploy PgBouncer container. | +| ![php_fpm logo](/logos/php_fpm.png) | [php_fpm](roles/php_fpm/README.md) | service | Deploy PHP-FPM container. | +| ![postfix logo](/logos/postfix.png) | [postfix](roles/postfix/README.md) | service | Deploy Postfix relay host. | +| ![postgres_exporter logo](/logos/postgres_exporter.png) | [postgres_exporter](roles/postgres_exporter/README.md) | service | Deploy PostgreSQL exporter container. | +| ![postgres logo](/logos/postgres.png) | [postgres](roles/postgres/README.md) | service | Deploy PostgreSQL database container. | +| ![prometheus logo](/logos/prometheus.png) | [prometheus](roles/prometheus/README.md) | service | Deploy Prometheus container. | +| ![promtail logo](/logos/promtail.png) | [promtail](roles/promtail/README.md) | service | Deploy Promtail container. | +| ![pushgateway logo](/logos/pushgateway.png) | [pushgateway](roles/pushgateway/README.md) | service | Deploy Pushgateway container. | +| ![rabbitmq logo](/logos/rabbitmq.png) | [rabbitmq](roles/rabbitmq/README.md) | service | Deploy RabbitMQ container. | +| ![rclone logo](/logos/rclone.png) | [rclone](roles/rclone/README.md) | environment | Sync files with RClone. | +| ![redis logo](/logos/redis.png) | [redis](roles/redis/README.md) | service | Deploy Redis container. | +| ![remark42 logo](/logos/remark42.png) | [remark42](roles/remark42/README.md) | application | Deploy Remark42 container | +| ![resolv logo](/logos/resolv.png) | [resolv](roles/resolv/README.md) | system | Manage DNS configuration. | +| ![restic_exporter logo](/logos/restic_exporter.png) | [restic_exporter](roles/restic_exporter/README.md) | service | Add nginx config for Restic exporter path. | +| ![restic logo](/logos/restic.png) | [restic](roles/restic/README.md) | environment | Configures Restic backup jobs. | +| ![restic_server logo](/logos/restic_server.png) | [restic_server](roles/restic_server/README.md) | service | Deploy Restic server container. | +| ![s3cmd logo](/logos/s3cmd.png) | [s3cmd](roles/s3cmd/README.md) | environment | Install and configure s3cmd. | +| ![simple_mail_forwarder logo](/logos/simple_mail_forwarder.png) | [simple_mail_forwarder](roles/simple_mail_forwarder/README.md) | service | Deploy Simple Mail Forwarder container. | +| ![ssh logo](/logos/ssh.png) | [ssh](roles/ssh/README.md) | environment | Configure SSH client and server. | +| ![superset logo](/logos/superset.png) | [superset](roles/superset/README.md) | application | Deploy Apache Superset container. | +| ![systemd logo](/logos/systemd.png) | [systemd](roles/systemd/README.md) | environment | Setup systemd service. | +| ![timezone logo](/logos/timezone.png) | [timezone](roles/timezone/README.md) | environment | Define timezone. | +| ![ufw logo](/logos/ufw.png) | [ufw](roles/ufw/README.md) | system | Configures UFW rules. | +| ![update logo](/logos/update.png) | [update](roles/update/README.md) | environment | Install system and package updates. | +| ![vercel logo](/logos/vercel.png) | [vercel](roles/vercel/README.md) | system | Manage Vercel domain and dns entries. | +| ![wordpress logo](/logos/wordpress.png) | [wordpress](roles/wordpress/README.md) | application | Deploy WordPress container. | diff --git a/roles/acme_sh/README.md b/roles/acme_sh/README.md index a514bb4c..b8409ee8 100644 --- a/roles/acme_sh/README.md +++ b/roles/acme_sh/README.md @@ -1,6 +1,10 @@ +--- +kind: system +--- + acme_sh logo -# Acme.sh role + Issue & renew the free certificates. diff --git a/roles/alertmanager/README.md b/roles/alertmanager/README.md index 2af2d65b..13d0770f 100644 --- a/roles/alertmanager/README.md +++ b/roles/alertmanager/README.md @@ -1,6 +1,10 @@ +--- +kind: service +--- + alertmanager logo -# Alertmanager role + Deploy Alertmanager container. @@ -68,4 +72,4 @@ nginx_proxies: include /etc/nginx/conf.d/proxies/mysqld-exporter.nginx; include /etc/nginx/conf.d/proxies/odoo-exporter.nginx; include /etc/nginx/conf.d/proxies/alertmanager.nginx; -``` \ No newline at end of file +``` diff --git a/roles/alloy/README.md b/roles/alloy/README.md index d2dba1c2..91339dcd 100644 --- a/roles/alloy/README.md +++ b/roles/alloy/README.md @@ -1,6 +1,10 @@ +--- +kind: service +--- + alloy logo -# Alloy role + Deploy Alloy container. @@ -51,4 +55,4 @@ Use this command to show the metrics of the Alloy container: ```bash curl http://alloy01:12345/metrics -``` \ No newline at end of file +``` diff --git a/roles/ansible_scripts/README.md b/roles/ansible_scripts/README.md index 4a1046b7..bfcae440 100644 --- a/roles/ansible_scripts/README.md +++ b/roles/ansible_scripts/README.md @@ -1,6 +1,10 @@ +--- +kind: environment +--- + ansible_scripts logo -# Ansible Scripts role + Install Ansible scripts. diff --git a/roles/autossh/README.md b/roles/autossh/README.md index 5b4c373d..2c65908f 100644 --- a/roles/autossh/README.md +++ b/roles/autossh/README.md @@ -1,6 +1,10 @@ -ssh logo +--- +kind: system +--- + +autossh logo + -# Autossh role Configure Autossh tunnels. diff --git a/roles/bigbluebutton/README.md b/roles/bigbluebutton/README.md index da1125c7..1378e952 100644 --- a/roles/bigbluebutton/README.md +++ b/roles/bigbluebutton/README.md @@ -1,5 +1,10 @@ +--- +kind: application +--- + bigbluebutton logo + # BigBlueButton role Configures an installed BigBlueButton instance. diff --git a/roles/bigbluebutton_exporter/README.md b/roles/bigbluebutton_exporter/README.md index ee5149a3..ab47d04f 100644 --- a/roles/bigbluebutton_exporter/README.md +++ b/roles/bigbluebutton_exporter/README.md @@ -1,5 +1,10 @@ +--- +kind: service +--- + bigbluebutton_exporter logo + # BigBlueButton exporter role Deploy BigBlueButton exporter container. diff --git a/roles/blackbox_exporter/README.md b/roles/blackbox_exporter/README.md index 916b8a11..770485db 100644 --- a/roles/blackbox_exporter/README.md +++ b/roles/blackbox_exporter/README.md @@ -1,5 +1,10 @@ +--- +kind: service +--- + blackbox_exporter logo + # Blackbox exporter role Deploy Blackbox exporter container. diff --git a/roles/bookstack/README.md b/roles/bookstack/README.md index a7221978..995b07c9 100644 --- a/roles/bookstack/README.md +++ b/roles/bookstack/README.md @@ -1,5 +1,10 @@ +--- +kind: application +--- + bookstack logo + # BookStack role Deploy BookStack container. @@ -33,4 +38,4 @@ And include it in your playbook. - hosts: bookstack roles: - role: bookstack -``` \ No newline at end of file +``` diff --git a/roles/caddy/README.md b/roles/caddy/README.md index b4d97729..48d88823 100644 --- a/roles/caddy/README.md +++ b/roles/caddy/README.md @@ -1,5 +1,10 @@ +--- +kind: service +--- + caddy logo + # Caddy role Deploy Caddy container. diff --git a/roles/cadvisor/README.md b/roles/cadvisor/README.md index 4667bf3e..ca5a7488 100644 --- a/roles/cadvisor/README.md +++ b/roles/cadvisor/README.md @@ -1,5 +1,10 @@ +--- +kind: service +--- + cadvisor logo + # cAdvisor role Deploy cAdvisor container. @@ -41,4 +46,4 @@ And include it in your playbook. The following tags are available: * cadvisor -* cadvisor_nginx_config \ No newline at end of file +* cadvisor_nginx_config diff --git a/roles/cargo/README.md b/roles/cargo/README.md index 846de19f..fb42966d 100644 --- a/roles/cargo/README.md +++ b/roles/cargo/README.md @@ -1,5 +1,10 @@ +--- +kind: environment +--- + cargo logo + # cargo role Setup Rust toolchain and cargo package manager. diff --git a/roles/certbot/README.md b/roles/certbot/README.md index 57c6a4c0..21f3162f 100644 --- a/roles/certbot/README.md +++ b/roles/certbot/README.md @@ -1,5 +1,10 @@ +--- +kind: system +--- + certbot logo + # Certbot role Deploy Let's Encrypt certificates. diff --git a/roles/clamav/README.md b/roles/clamav/README.md index 63b226e8..433624c7 100644 --- a/roles/clamav/README.md +++ b/roles/clamav/README.md @@ -1,5 +1,10 @@ +--- +kind: service +--- + clamav logo + # ClamAV role Deploy ClamAV container for antivirus scanning. @@ -37,4 +42,4 @@ Test Antivirus with with . Check the `cl ``` Thu Sep 25 08:37:43 2025 -> instream(10.0.0.6@46498): Win.Test.EICAR_HDB-1 FOUND -``` \ No newline at end of file +``` diff --git a/roles/cleanup/README.md b/roles/cleanup/README.md index 17d69be3..18ab923a 100644 --- a/roles/cleanup/README.md +++ b/roles/cleanup/README.md @@ -1,4 +1,9 @@ -clean logo +--- +kind: environment +--- + +cleanup logo + # Cleanup role diff --git a/roles/collabora_code/README.md b/roles/collabora_code/README.md index da461d52..3a6c0cfa 100644 --- a/roles/collabora_code/README.md +++ b/roles/collabora_code/README.md @@ -1,5 +1,10 @@ +--- +kind: application +--- + collabora_code logo + # Collabora Code role Deploy Collabora Online Development Edition (CODE) container. diff --git a/roles/commento/README.md b/roles/commento/README.md index 703710ac..825d76e1 100644 --- a/roles/commento/README.md +++ b/roles/commento/README.md @@ -1,5 +1,10 @@ +--- +kind: application +--- + commento logo + # Commento role Deploy Commento container diff --git a/roles/coturn/README.md b/roles/coturn/README.md index eeac3257..f8e0bc8b 100644 --- a/roles/coturn/README.md +++ b/roles/coturn/README.md @@ -1,5 +1,10 @@ +--- +kind: application +--- + coturn logo + # Coturn role Deploy Coturn cotainer. diff --git a/roles/cron/README.md b/roles/cron/README.md index af13f108..16222d67 100644 --- a/roles/cron/README.md +++ b/roles/cron/README.md @@ -1,5 +1,10 @@ +--- +kind: environment +--- + cron logo + # cron role Setup cron jobs. diff --git a/roles/crowdsec/README.md b/roles/crowdsec/README.md index 0a2a4fb3..5dd744c6 100644 --- a/roles/crowdsec/README.md +++ b/roles/crowdsec/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + crowdsec logo # CrowdSec role diff --git a/roles/crowdsec_firewall_bouncer/README.md b/roles/crowdsec_firewall_bouncer/README.md index 33f02f91..b7df1fd7 100644 --- a/roles/crowdsec_firewall_bouncer/README.md +++ b/roles/crowdsec_firewall_bouncer/README.md @@ -1,5 +1,10 @@ +--- +kind: system +--- + crowdsec_firewall_bouncer logo + # CrowdSec Firewall Bouncer role Deploy CrowdSec Firewall Bouncer. diff --git a/roles/dind/README.md b/roles/dind/README.md index ec7d6e4c..0673a27a 100644 --- a/roles/dind/README.md +++ b/roles/dind/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + dind logo # dind role diff --git a/roles/docker/README.md b/roles/docker/README.md index a026d4c2..5fa48fa8 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -1,5 +1,10 @@ +--- +kind: system +--- + docker logo + # Docker role Install Docker. diff --git a/roles/docker_compose/README.md b/roles/docker_compose/README.md index 3d398311..944c64cc 100644 --- a/roles/docker_compose/README.md +++ b/roles/docker_compose/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + docker_compose logo # Docker Compose role diff --git a/roles/docker_hosts/README.md b/roles/docker_hosts/README.md index d8ff69c5..cd0979ae 100644 --- a/roles/docker_hosts/README.md +++ b/roles/docker_hosts/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + docker_hosts logo # Docker Hosts role diff --git a/roles/docker_network/README.md b/roles/docker_network/README.md index 4d0649c0..8d2d258a 100644 --- a/roles/docker_network/README.md +++ b/roles/docker_network/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + docker_network logo # Docker Network role diff --git a/roles/docker_swarm/README.md b/roles/docker_swarm/README.md index 926998da..84dd70a6 100644 --- a/roles/docker_swarm/README.md +++ b/roles/docker_swarm/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + docker_swarm logo # Docker Swarm role diff --git a/roles/docker_volume/README.md b/roles/docker_volume/README.md index e9b38e6f..b8f942a1 100644 --- a/roles/docker_volume/README.md +++ b/roles/docker_volume/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + docker_volume logo # Docker Volume role diff --git a/roles/dozzle/README.md b/roles/dozzle/README.md index b66874c0..fd804998 100644 --- a/roles/dozzle/README.md +++ b/roles/dozzle/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + dozzle logo # Dozzle role diff --git a/roles/dribdat/README.md b/roles/dribdat/README.md index 62dcb08d..ac21506e 100644 --- a/roles/dribdat/README.md +++ b/roles/dribdat/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + dribdat logo # dribdat role diff --git a/roles/etc_hosts/README.md b/roles/etc_hosts/README.md index 10b1a4b7..7330f74b 100644 --- a/roles/etc_hosts/README.md +++ b/roles/etc_hosts/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + etc_hosts logo # etc Hosts role diff --git a/roles/fail2ban/README.md b/roles/fail2ban/README.md index c0d018bc..c31598ee 100644 --- a/roles/fail2ban/README.md +++ b/roles/fail2ban/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + fail2ban logo # fail2ban role diff --git a/roles/fathom/README.md b/roles/fathom/README.md index 8f9fd604..57e510d9 100644 --- a/roles/fathom/README.md +++ b/roles/fathom/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + fathom logo # Fathom role diff --git a/roles/firehol/README.md b/roles/firehol/README.md index 2dab48fc..c082257c 100644 --- a/roles/firehol/README.md +++ b/roles/firehol/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + firehol logo # FireHOL role diff --git a/roles/fstab/README.md b/roles/fstab/README.md index 72bc77f3..36bacbcd 100644 --- a/roles/fstab/README.md +++ b/roles/fstab/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + fstab logo # fstab role diff --git a/roles/git/README.md b/roles/git/README.md index c357d2a7..2a8ae5dd 100644 --- a/roles/git/README.md +++ b/roles/git/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + git logo # Git role diff --git a/roles/gitea/README.md b/roles/gitea/README.md index 75abea79..722d60d4 100644 --- a/roles/gitea/README.md +++ b/roles/gitea/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + gitea logo # Gitea role diff --git a/roles/grafana/README.md b/roles/grafana/README.md index 12be888d..0b471188 100644 --- a/roles/grafana/README.md +++ b/roles/grafana/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + grafana logo # Grafana role diff --git a/roles/htpasswd/README.md b/roles/htpasswd/README.md index 36236c23..38e88c4d 100644 --- a/roles/htpasswd/README.md +++ b/roles/htpasswd/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + htpasswd logo # .htpasswd role diff --git a/roles/iam/README.md b/roles/iam/README.md index e2573a54..7d020829 100644 --- a/roles/iam/README.md +++ b/roles/iam/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + iam logo # IAM role diff --git a/roles/infomaniak/README.md b/roles/infomaniak/README.md index 976d41ed..82bd5bda 100644 --- a/roles/infomaniak/README.md +++ b/roles/infomaniak/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + infomaniak logo # Infomaniak role diff --git a/roles/innernet/README.md b/roles/innernet/README.md index 1f70440f..496a7b16 100644 --- a/roles/innernet/README.md +++ b/roles/innernet/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + innernet logo # Innernet role diff --git a/roles/jenkins/README.md b/roles/jenkins/README.md index 9068c536..be44906b 100644 --- a/roles/jenkins/README.md +++ b/roles/jenkins/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + jenkins logo # Jenkins role diff --git a/roles/k3s/README.md b/roles/k3s/README.md index 0ab7a129..7f9ab893 100644 --- a/roles/k3s/README.md +++ b/roles/k3s/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + k3s logo # K3s role diff --git a/roles/keycloak/README.md b/roles/keycloak/README.md index 2db79849..0cab8b0c 100644 --- a/roles/keycloak/README.md +++ b/roles/keycloak/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + keycloak logo # Keycloak role diff --git a/roles/keycloak_client/README.md b/roles/keycloak_client/README.md index 51473618..421e020a 100644 --- a/roles/keycloak_client/README.md +++ b/roles/keycloak_client/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + keycloak_client logo # Keycloak Client role diff --git a/roles/locale/README.md b/roles/locale/README.md index 3a9524dd..1170498a 100644 --- a/roles/locale/README.md +++ b/roles/locale/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + locale logo # locale role diff --git a/roles/loki/README.md b/roles/loki/README.md index e29763dc..72d0898d 100644 --- a/roles/loki/README.md +++ b/roles/loki/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + loki logo # Loki role diff --git a/roles/mailhog/README.md b/roles/mailhog/README.md index cca65d53..327512d4 100644 --- a/roles/mailhog/README.md +++ b/roles/mailhog/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + mailhog logo # MailHog role diff --git a/roles/mailpit/README.md b/roles/mailpit/README.md index 9443880d..7f1a9c06 100644 --- a/roles/mailpit/README.md +++ b/roles/mailpit/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + mailpit logo # Mailpit role diff --git a/roles/maintenance/README.md b/roles/maintenance/README.md index 2576bfa9..227f3763 100644 --- a/roles/maintenance/README.md +++ b/roles/maintenance/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + maintenance logo # Maintenance role diff --git a/roles/mariadb/README.md b/roles/mariadb/README.md index 9a1b9b6b..3ac2d0e5 100644 --- a/roles/mariadb/README.md +++ b/roles/mariadb/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + mariadb logo # MariaDB role diff --git a/roles/matomo/README.md b/roles/matomo/README.md index 104fc17c..6d5994d6 100644 --- a/roles/matomo/README.md +++ b/roles/matomo/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + matomo logo # Matomo role diff --git a/roles/meilisearch/README.md b/roles/meilisearch/README.md index ff2fc863..005134ff 100644 --- a/roles/meilisearch/README.md +++ b/roles/meilisearch/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + meilisearch logo # Meilisearch role diff --git a/roles/meilisearch_client/README.md b/roles/meilisearch_client/README.md index acea1e8f..2a2351af 100644 --- a/roles/meilisearch_client/README.md +++ b/roles/meilisearch_client/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + meilisearch_client logo # Meilisearch Client role diff --git a/roles/meilisync/README.md b/roles/meilisync/README.md index f9b16a45..8be7530d 100644 --- a/roles/meilisync/README.md +++ b/roles/meilisync/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + meilisync logo # Meilisync role diff --git a/roles/metabase/README.md b/roles/metabase/README.md index 02da1b2d..2a250484 100644 --- a/roles/metabase/README.md +++ b/roles/metabase/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + metabase logo # Metabase role diff --git a/roles/moodle/README.md b/roles/moodle/README.md index 4cbfcf99..e47fbbba 100644 --- a/roles/moodle/README.md +++ b/roles/moodle/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + moodle logo # Moodle role diff --git a/roles/motd/README.md b/roles/motd/README.md index 00e2bf8d..9e9feacb 100644 --- a/roles/motd/README.md +++ b/roles/motd/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + motd logo # motd role diff --git a/roles/mysql/README.md b/roles/mysql/README.md index eebbe6f0..8435f420 100644 --- a/roles/mysql/README.md +++ b/roles/mysql/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + mysql logo # MySQL role diff --git a/roles/mysqld_exporter/README.md b/roles/mysqld_exporter/README.md index 7fb9b7a7..88e4e811 100644 --- a/roles/mysqld_exporter/README.md +++ b/roles/mysqld_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + mysqld_exporter logo # MySQL exporter role diff --git a/roles/n8n/README.md b/roles/n8n/README.md index f95fe8e9..67dac2b1 100644 --- a/roles/n8n/README.md +++ b/roles/n8n/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + n8n logo # N8N role diff --git a/roles/n8n_exporter/README.md b/roles/n8n_exporter/README.md index afa1ce36..247bbe75 100644 --- a/roles/n8n_exporter/README.md +++ b/roles/n8n_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + n8n_exporter logo # N8N Exporter role diff --git a/roles/nextcloud/README.md b/roles/nextcloud/README.md index 64cd7b85..a82f379b 100644 --- a/roles/nextcloud/README.md +++ b/roles/nextcloud/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + nextcloud logo # Nextcloud role diff --git a/roles/nextcloud_apps/README.md b/roles/nextcloud_apps/README.md index 1d128468..d8fccd09 100644 --- a/roles/nextcloud_apps/README.md +++ b/roles/nextcloud_apps/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + nextcloud_apps logo # Nextcloud apps role diff --git a/roles/nextcloud_exporter/README.md b/roles/nextcloud_exporter/README.md index 5f11dba5..dc6a8d52 100644 --- a/roles/nextcloud_exporter/README.md +++ b/roles/nextcloud_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + nextcloud_exporter logo # Nextcloud exporter role diff --git a/roles/nginx/README.md b/roles/nginx/README.md index b3ef4a92..82a17021 100644 --- a/roles/nginx/README.md +++ b/roles/nginx/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + nginx logo # Nginx role diff --git a/roles/nginx_waf/README.md b/roles/nginx_waf/README.md index 3dca9082..ea8fe32a 100644 --- a/roles/nginx_waf/README.md +++ b/roles/nginx_waf/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + nginx_waf logo # Nginx WAF role diff --git a/roles/node_exporter/README.md b/roles/node_exporter/README.md index 93fd07f1..cd95c9a8 100644 --- a/roles/node_exporter/README.md +++ b/roles/node_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + node_exporter logo # Node Exporter role diff --git a/roles/odoo/README.md b/roles/odoo/README.md index c03169a8..71a0fad7 100644 --- a/roles/odoo/README.md +++ b/roles/odoo/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + odoo logo # Odoo role diff --git a/roles/odoo_apps/README.md b/roles/odoo_apps/README.md index 1df2b7cb..710cd5d1 100644 --- a/roles/odoo_apps/README.md +++ b/roles/odoo_apps/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + odoo_apps logo # Odoo Apps role diff --git a/roles/odoo_data/README.md b/roles/odoo_data/README.md index 8858a772..ee12cc66 100644 --- a/roles/odoo_data/README.md +++ b/roles/odoo_data/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + odoo_data logo # Odoo Data role diff --git a/roles/odoo_enterprise/README.md b/roles/odoo_enterprise/README.md index a6fa4e4b..73393781 100644 --- a/roles/odoo_enterprise/README.md +++ b/roles/odoo_enterprise/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + odoo_enterprise logo # Odoo Enterprise role diff --git a/roles/odoo_exporter/README.md b/roles/odoo_exporter/README.md index c8eedf45..58d0bd68 100644 --- a/roles/odoo_exporter/README.md +++ b/roles/odoo_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + odoo_exporter logo # Odoo Exporter role diff --git a/roles/odoo_repos/README.md b/roles/odoo_repos/README.md index 6d99d29c..6ff6897c 100644 --- a/roles/odoo_repos/README.md +++ b/roles/odoo_repos/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + odoo_repos logo # Odoo Repos role diff --git a/roles/ollama/README.md b/roles/ollama/README.md index 62d56402..07583d20 100644 --- a/roles/ollama/README.md +++ b/roles/ollama/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + ollama logo # Ollama role diff --git a/roles/onlyoffice_documentserver/README.md b/roles/onlyoffice_documentserver/README.md index afab18a2..21576b85 100644 --- a/roles/onlyoffice_documentserver/README.md +++ b/roles/onlyoffice_documentserver/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + onlyoffice_documentserver logo # OnlyOffice Document Server role diff --git a/roles/open_webui/README.md b/roles/open_webui/README.md index bdf18a46..8b04d508 100644 --- a/roles/open_webui/README.md +++ b/roles/open_webui/README.md @@ -1,4 +1,8 @@ -open-webui logo +--- +kind: application +--- + +open_webui logo # Open WebUI role diff --git a/roles/openldap/README.md b/roles/openldap/README.md index f991d45d..30a352b2 100644 --- a/roles/openldap/README.md +++ b/roles/openldap/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + openldap logo # OpenLDAP role diff --git a/roles/packages/README.md b/roles/packages/README.md index 70cafaaa..51c889c5 100644 --- a/roles/packages/README.md +++ b/roles/packages/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + packages logo # Packages role diff --git a/roles/pgadmin/README.md b/roles/pgadmin/README.md index 1329a662..cf8f5a4b 100644 --- a/roles/pgadmin/README.md +++ b/roles/pgadmin/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + pgadmin logo # pgAdmin role diff --git a/roles/pgbouncer/README.md b/roles/pgbouncer/README.md index e69bd481..46831dd2 100644 --- a/roles/pgbouncer/README.md +++ b/roles/pgbouncer/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + pgbouncer logo # PgBouncer role diff --git a/roles/php_fpm/README.md b/roles/php_fpm/README.md index 22514c65..92a63045 100644 --- a/roles/php_fpm/README.md +++ b/roles/php_fpm/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + php_fpm logo # PHP-FPM role diff --git a/roles/postfix/README.md b/roles/postfix/README.md index 63e7cced..b1cadee8 100644 --- a/roles/postfix/README.md +++ b/roles/postfix/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + postfix logo # Postfix role diff --git a/roles/postgres/README.md b/roles/postgres/README.md index 64a00573..af6852e2 100644 --- a/roles/postgres/README.md +++ b/roles/postgres/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + postgres logo # PostgreSQL role diff --git a/roles/postgres_exporter/README.md b/roles/postgres_exporter/README.md index 38cf7dd5..f026e5d9 100644 --- a/roles/postgres_exporter/README.md +++ b/roles/postgres_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + postgres_exporter logo # PostgreSQL exporter role diff --git a/roles/prometheus/README.md b/roles/prometheus/README.md index f4e04760..8f4536b6 100644 --- a/roles/prometheus/README.md +++ b/roles/prometheus/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + prometheus logo # Prometheus role diff --git a/roles/promtail/README.md b/roles/promtail/README.md index a8068587..679e3417 100644 --- a/roles/promtail/README.md +++ b/roles/promtail/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + promtail logo # Promtail role diff --git a/roles/pushgateway/README.md b/roles/pushgateway/README.md index b2703fd3..c6448f69 100644 --- a/roles/pushgateway/README.md +++ b/roles/pushgateway/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + pushgateway logo # Pushgateway role diff --git a/roles/rabbitmq/README.md b/roles/rabbitmq/README.md index 1328ecfb..685213ee 100644 --- a/roles/rabbitmq/README.md +++ b/roles/rabbitmq/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + rabbitmq logo # RabbitMQ role diff --git a/roles/rclone/README.md b/roles/rclone/README.md index 6486c802..90810f8e 100644 --- a/roles/rclone/README.md +++ b/roles/rclone/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + rclone logo # RClone role diff --git a/roles/redis/README.md b/roles/redis/README.md index 96e5d3f5..4e65969d 100644 --- a/roles/redis/README.md +++ b/roles/redis/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + redis logo # Redis role diff --git a/roles/remark42/README.md b/roles/remark42/README.md index 92cb90a0..37d6b5c7 100644 --- a/roles/remark42/README.md +++ b/roles/remark42/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + remark42 logo # Remark42 role diff --git a/roles/resolv/README.md b/roles/resolv/README.md index 2d2305ed..9da43626 100644 --- a/roles/resolv/README.md +++ b/roles/resolv/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + resolv logo # resolv role diff --git a/roles/restic/README.md b/roles/restic/README.md index dccb7ee1..6e1af94f 100644 --- a/roles/restic/README.md +++ b/roles/restic/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + restic logo # Restic role diff --git a/roles/restic_exporter/README.md b/roles/restic_exporter/README.md index 58bfbbc3..8fdb7067 100644 --- a/roles/restic_exporter/README.md +++ b/roles/restic_exporter/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + restic_exporter logo # Restic Exporter role diff --git a/roles/restic_server/README.md b/roles/restic_server/README.md index 1705c3de..1eb726f2 100644 --- a/roles/restic_server/README.md +++ b/roles/restic_server/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + restic_server logo # Restic server role diff --git a/roles/s3cmd/README.md b/roles/s3cmd/README.md index 37886214..d5fc6cef 100644 --- a/roles/s3cmd/README.md +++ b/roles/s3cmd/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + s3cmd logo # s3cmd role diff --git a/roles/simple_mail_forwarder/README.md b/roles/simple_mail_forwarder/README.md index 8ab64437..605b3f23 100644 --- a/roles/simple_mail_forwarder/README.md +++ b/roles/simple_mail_forwarder/README.md @@ -1,3 +1,7 @@ +--- +kind: service +--- + simple_mail_forwarder logo # Simple Mail Forwarder role diff --git a/roles/ssh/README.md b/roles/ssh/README.md index 1f777e5c..ab3d76df 100644 --- a/roles/ssh/README.md +++ b/roles/ssh/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + ssh logo # SSH role diff --git a/roles/superset/README.md b/roles/superset/README.md index 7abc4c0e..072973f4 100644 --- a/roles/superset/README.md +++ b/roles/superset/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + superset logo # Apache Superset role diff --git a/roles/systemd/README.md b/roles/systemd/README.md index 8b8b768c..f270e525 100644 --- a/roles/systemd/README.md +++ b/roles/systemd/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + systemd logo # systemd role diff --git a/roles/timezone/README.md b/roles/timezone/README.md index ba79ea66..fdf1e966 100644 --- a/roles/timezone/README.md +++ b/roles/timezone/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + timezone logo # Timezone role diff --git a/roles/ufw/README.md b/roles/ufw/README.md index 62eda6b7..494eaacd 100644 --- a/roles/ufw/README.md +++ b/roles/ufw/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + ufw logo # UFW role diff --git a/roles/update/README.md b/roles/update/README.md index 04322e5d..b2101f49 100644 --- a/roles/update/README.md +++ b/roles/update/README.md @@ -1,3 +1,7 @@ +--- +kind: environment +--- + update logo # Update role diff --git a/roles/vercel/README.md b/roles/vercel/README.md index 74a9b84c..58a90603 100644 --- a/roles/vercel/README.md +++ b/roles/vercel/README.md @@ -1,3 +1,7 @@ +--- +kind: system +--- + vercel logo # Vercel role diff --git a/roles/wordpress/README.md b/roles/wordpress/README.md index b5ef0d88..f3749bbc 100644 --- a/roles/wordpress/README.md +++ b/roles/wordpress/README.md @@ -1,3 +1,7 @@ +--- +kind: application +--- + wordpress logo # WordPress role diff --git a/task b/task index ad55fb16..f5973616 100755 --- a/task +++ b/task @@ -426,21 +426,24 @@ list-hosts() { } list-roles() { - local role_width=30 - local description_width=70 - local column="| %-${role_width}s | %-${description_width}s |\n" - printf "$column" 'Role' 'Description' - echo "|$(printf '%*s' $((role_width + 2)) '' | tr ' ' '-')|$(printf '%*s' $((description_width + 2)) '' | tr ' ' '-')|" + local role_width=25 + local kind_width=15 + local description_width=50 + local column="| %-${role_width}s | %-${kind_width}s | %-${description_width}s |\n" + printf "$column" 'Role' 'Kind' 'Description' + echo "|$(printf '%*s' $((role_width + 2)) '' | tr ' ' '-')|$(printf '%*s' $((kind_width + 2)) '' | tr ' ' '-')|$(printf '%*s' $((description_width + 2)) '' | tr ' ' '-')|" local md_files md_files=$(find roles -name 'README.md' | sort) local readme for readme in $md_files; do local role - role=$(basename $(dirname "$readme")) + role=$(basename "$(dirname "$readme")") + local kind + kind=$(grep "^kind:" "$readme" | sed 's/kind: //') local description - description=$(sed '5q;d' "$readme") - printf "$column" "$role" "$description" + description=$(sed -n '5,$p' "$readme" | grep -v '^$' | grep -v ' "roles.md" echo "" >> "roles.md" - echo "| Logo | Role | Description |" >> "roles.md" - echo "| --- | --- | --- |" >> "roles.md" + echo "| Logo | Role | Kind | Description |" >> "roles.md" + echo "| --- | --- | --- | --- |" >> "roles.md" local md_files=$(find roles -name 'README.md' | sort) for readme in $md_files; do local role - role=$(basename $(dirname "$readme")) + role=$(basename "$(dirname "$readme")") + local kind + kind=$(grep "^kind:" "$readme" | sed 's/kind: //') local description - description=$(sed '5q;d' "$readme") - echo "| ![$role logo](/logos/$role.png) | [$role]($readme) | $description |" >> "roles.md" + description=$(sed -n '5,$p' "$readme" | grep -v '^$' | grep -v '> "roles.md" done } @@ -700,14 +705,38 @@ update-roles-doc() { echo "Update README of $role role." + local kind + kind=$(grep "^kind:" "$readme" | sed 's/kind: //') local logo_line="\"$role" local tmpfile tmpfile=$(mktemp) - { - echo "$logo_line" - echo "" - cat "$readme" - } > "$tmpfile" && mv "$tmpfile" "$readme" + + # Check if README already starts with frontmatter + if head -1 "$readme" | grep -q "^---$"; then + # Already has frontmatter at top, rebuild with single logo + { + echo "---" + echo "kind: $kind" + echo "---" + echo "" + echo "$logo_line" + echo "" + # Get content after frontmatter (skip first 5 lines), remove duplicate logo + tail -n +6 "$readme" | grep -v "^ "$tmpfile" && mv "$tmpfile" "$readme" + else + # No frontmatter at top, add it and remove duplicates + { + echo "---" + echo "kind: $kind" + echo "---" + echo "" + echo "$logo_line" + echo "" + # Skip first 8 lines (logo, blank, frontmatter 3 lines, blank, logo, blank) + tail -n +9 "$readme" + } > "$tmpfile" && mv "$tmpfile" "$readme" + fi done }