# Roles This directory contains all of the Ansible roles used throughout the CyMaIS project. Roles are organized by function and prefixed accordingly. For a complete list of role categories and detailed definitions, see: - [Application Glossary](application_glosar.rst) - [Application Categories](application_categories.rst) --- ## Core & System - **core-*** Fundamental system configuration (SSH, journald, sudo, etc.) - **gen-*** Generic helpers and language/tool installers (e.g. `gen-git`, `gen-locales`, `gen-timer`) - **desk-*** Desktop environment and application roles (e.g. `desk-gnome`, `utils-desk-browser`, `desk-libreoffice`) --- ## Webserver & HTTP - **srv-web-core** Installs and configures the base Nginx server. - **srv-web-tls-*** Manages TLS certificates and renewal (formerly “https”). - **srv-web-proxy-*** Proxy and vhost orchestration roles (domain setup, OAuth2 proxy, etc.) - **srv-web-injector-*** HTML response modifiers: CSS, JS, Matomo tracking, iframe notifier. - **srv-web-composer** Aggregates multiple sub-filters into one include for your vhost. - **web-service-*** Static‐content servers (assets, HTML, legal pages, file hosting). - **web-app-*** Application-specific Docker/Compose roles (e.g. GitLab, Nextcloud, Mastodon). --- ## Network - **net-*** Network infrastructure (DNS records, WireGuard, Let’s Encrypt entrypoints). - **service-*** Docker‐deployed services that aren’t “apps” (RDBMS, LDAP, Redis, OpenLDAP). --- ## Monitoring & Alerting - **mon-bot-*** “Bot”-style health checks with alerts via Telegram, email, etc. - **monitor-core-*** Low-level system monitors (journalctl, Docker containers, disk space). - **alert-*** Failure or status notification handlers (core, email, Telegram). --- ## Maintenance & Healing - **maint-*** Periodic maintenance tasks (Btrfs balancing, swapfile management). - **maint-docker-*** Automated recovery and restarts for Docker Compose workloads. - **cln-*** Housekeeping tasks (old backups, certs, log rotation). --- ## Backup & Restore - **bkp-*** Local and remote backup strategies for files, Docker volumes, databases. --- ## Updates & Package Management - **update-*** Keeps OS and language packages up to date (`update-apt`, `update-docker`, `update-pip`, etc.) - **pkgmgr-*** Language or platform package managers (npm, pip, AUR helper). --- ## Users & Access - **user-*** Creates user accounts and SSH keys. - **user-administrator**, **user-root** Specialized account configurations for privileged users. --- > **Tip:** To find a role quickly, search for its prefix: > `core-`, `gen-`, `desk-`, `srv-web-`, `web-service-`, `web-app-`, > `net-`, `service-`, `monitor-`, `alert-`, `maint-`, `cln-`, > `bkp-`, `update-`, `pkgmgr-`, `user-`. --- _For more details on which applications each role supports, see the [Application Categories](application_categories.rst) and the full [Application Glossary](application_glosar.rst)._