mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-03 19:58:14 +00:00 
			
		
		
		
	- Normalize domain blocks across apps:
  - Add explicit 'aliases: []' everywhere (no implicit aliases)
  - Standardize canonical subdomains for consistency:
    * Bluesky: web/api under *.bluesky.<PRIMARY_DOMAIN>
    * EspoCRM: espo.crm.<PRIMARY_DOMAIN>
    * Gitea:   tea.git.<PRIMARY_DOMAIN>
    * GitLab:  lab.git.<PRIMARY_DOMAIN>
    * Joomla:  joomla.cms.<PRIMARY_DOMAIN>
    * Magento: magento.shop.<PRIMARY_DOMAIN>
    * OpenProject: open.project.<PRIMARY_DOMAIN>
    * Pretix:  ticket.shop.<PRIMARY_DOMAIN>
    * Taiga:   kanban.project.<PRIMARY_DOMAIN>
  - Remove legacy/duplicate aliases and use empty list instead
  - Fix 'alias' -> 'aliases' where applicable
Context: preparing for AUTO_BUILD_ALIASES=False and deterministic redirect mapping.
Ref: conversation https://chatgpt.com/share/68cd512c-c878-800f-bdf2-81737adf7e0e
		
	
		
			
				
	
	
		
			278 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version:                      "production" # @see https://nextcloud.com/blog/nextcloud-release-channels-and-how-to-track-them/
 | 
						|
server:
 | 
						|
  csp:
 | 
						|
    flags:
 | 
						|
      style-src:
 | 
						|
        unsafe-inline: true
 | 
						|
      script-src-elem:
 | 
						|
        unsafe-inline: true
 | 
						|
    whitelist:
 | 
						|
      font-src:
 | 
						|
        - "data:"
 | 
						|
      connect-src:
 | 
						|
        - "{{ WEBSOCKET_PROTOCOL }}://collabora.{{ PRIMARY_DOMAIN }}"
 | 
						|
        - "{{ WEB_PROTOCOL }}://collabora.{{ PRIMARY_DOMAIN }}"
 | 
						|
      frame-src:
 | 
						|
        - "{{ WEB_PROTOCOL }}://collabora.{{ PRIMARY_DOMAIN }}"
 | 
						|
        - "{{ WEBSOCKET_PROTOCOL }}://collabora.{{ PRIMARY_DOMAIN }}"
 | 
						|
  domains:
 | 
						|
    canonical:
 | 
						|
      - "cloud.{{ PRIMARY_DOMAIN }}"
 | 
						|
    aliases: []
 | 
						|
docker:
 | 
						|
  volumes:
 | 
						|
    data: nextcloud_data
 | 
						|
  services:
 | 
						|
    redis:
 | 
						|
      enabled: true
 | 
						|
    database: 
 | 
						|
      enabled: true
 | 
						|
    nextcloud:
 | 
						|
      name:     "nextcloud"
 | 
						|
      image:    "nextcloud"
 | 
						|
      version:  "production-fpm-alpine"
 | 
						|
      backup:
 | 
						|
        no_stop_required: true
 | 
						|
    proxy: 
 | 
						|
      name:     "nextcloud-proxy"
 | 
						|
      image:    "nginx"
 | 
						|
      version:  "alpine"
 | 
						|
      backup:
 | 
						|
        no_stop_required: true
 | 
						|
    cron:
 | 
						|
      name:     "nextcloud-cron"
 | 
						|
    talk:
 | 
						|
      name:     "nextcloud-talk"
 | 
						|
      image:    "nextcloud/aio-talk"
 | 
						|
      version:  "latest"
 | 
						|
      backup:
 | 
						|
        no_stop_required: false
 | 
						|
    whiteboard:
 | 
						|
      name:     "nextcloud-whiteboard"
 | 
						|
      image:    "ghcr.io/nextcloud-releases/whiteboard"
 | 
						|
      version:  "latest"
 | 
						|
      backup:
 | 
						|
        no_stop_required: true
 | 
						|
  enabled:  "{{ applications | get_app_conf('web-app-nextcloud', 'features.oidc', False, True) }}"   # Activate OIDC for Nextcloud
 | 
						|
  # floavor decides which OICD plugin should be used. 
 | 
						|
  # Available options: oidc_login, sociallogin
 | 
						|
  # @see https://apps.nextcloud.com/apps/oidc_login
 | 
						|
  # @see https://apps.nextcloud.com/apps/sociallogin
 | 
						|
  flavor:                       "oidc_login"                                    # Keeping on sociallogin because the other option is not implemented yet                                             
 | 
						|
features:
 | 
						|
  matomo:                       true
 | 
						|
  css:                          false
 | 
						|
  desktop:                      true
 | 
						|
  ldap:                         true
 | 
						|
  oidc:                         true
 | 
						|
  central_database:             true
 | 
						|
  logout:                       true
 | 
						|
default_quota:                 '1000000000'                                     # Quota to assign if no quota is specified in the OIDC response (bytes)
 | 
						|
legacy_login_mask:   
 | 
						|
  enabled:                      False                                           # If true, then legacy  login mask is shown. Otherwise just SSO
 | 
						|
                           
 | 
						|
performance:
 | 
						|
  php:
 | 
						|
    memory_limit:               "{{ ((ansible_memtotal_mb | int) / 30)|int }}M" # Dynamic set memory limit
 | 
						|
    upload_limit:               "5G"                                            # Set upload limit to 5GB for big media files
 | 
						|
    opcache_memory_consumption: "{{ ((ansible_memtotal_mb | int) / 30)|int }}M" # Dynamic set memory consumption
 | 
						|
 | 
						|
plugins_enabled:                true                                            # Implemented for speeding up testing and debugging process. For productive environments keep it true and steer the apps via the plugins config
 | 
						|
oidc:
 | 
						|
  flavor:                       "{{ _applications_nextcloud_oidc_flavor }}" 
 | 
						|
plugins:                                                  
 | 
						|
# List for Nextcloud Plugin Routine
 | 
						|
# Decides if plugins should be activated or deactivated
 | 
						|
  appointments:
 | 
						|
    # Nextcloud appointments: handles scheduling and appointment management (https://apps.nextcloud.com/apps/appointments)
 | 
						|
    enabled: true
 | 
						|
  bbb:
 | 
						|
    # Nextcloud BigBlueButton integration: enables video conferencing using BigBlueButton (https://apps.nextcloud.com/apps/bbb)
 | 
						|
    enabled: "{{ 'web-app-bigbluebutton' in group_names | lower }}"
 | 
						|
  #- bookmarks 
 | 
						|
  #  # Nextcloud Bookmarks: manage and share your bookmarks easily (https://apps.nextcloud.com/apps/bookmarks)
 | 
						|
  #  enabled: false
 | 
						|
  calendar:
 | 
						|
    # Nextcloud calendar: manages calendar events and scheduling (https://apps.nextcloud.com/apps/calendar)
 | 
						|
    enabled: true
 | 
						|
  cfg_share_links:
 | 
						|
    # Nextcloud share links configuration: customizes sharing settings and link options (https://apps.nextcloud.com/apps/cfg_share_links)
 | 
						|
    enabled: true
 | 
						|
  collectives:
 | 
						|
    # Nextcloud collectives: supports collaborative group management and sharing (https://apps.nextcloud.com/apps/collectives)
 | 
						|
    enabled: true
 | 
						|
  contacts:
 | 
						|
    # Nextcloud contacts: manages address book and contact information (https://apps.nextcloud.com/apps/contacts)
 | 
						|
    enabled: true
 | 
						|
  cospend:
 | 
						|
    # Nextcloud cospend: manages shared expenses and spending tracking (https://apps.nextcloud.com/apps/cospend)
 | 
						|
    enabled: true
 | 
						|
  deck:
 | 
						|
    # Nextcloud Deck: organizes tasks and projects using Kanban boards (https://apps.nextcloud.com/apps/deck)
 | 
						|
    # When Taiga is activated, this plugin is deactivated, because Taiga is the prefered application.
 | 
						|
    enabled: "{{ 'web-app-taiga' not in group_names | lower }}"
 | 
						|
  drawio:
 | 
						|
    # Nextcloud draw.io: integrates diagram creation and editing tools (https://apps.nextcloud.com/apps/drawio)
 | 
						|
    enabled: true
 | 
						|
  duplicatefinder:
 | 
						|
    # Nextcloud duplicate finder: scans and identifies duplicate files (https://apps.nextcloud.com/apps/duplicatefinder)
 | 
						|
    enabled: true
 | 
						|
  emlviewer:
 | 
						|
    # Nextcloud EML Viewer: previews and manages EML email files (https://apps.nextcloud.com/apps/emlviewer)
 | 
						|
    enabled: true
 | 
						|
  event_update_notification:
 | 
						|
    # Nextcloud event update notification: sends alerts when events are updated (https://apps.nextcloud.com/apps/event_update_notification)
 | 
						|
    enabled: true
 | 
						|
  epubviewer:
 | 
						|
    # Nextcloud EPUB Viewer: enables reading and previewing EPUB e-books (https://apps.nextcloud.com/apps/epubviewer)
 | 
						|
    enabled: true
 | 
						|
  external:
 | 
						|
    # Nextcloud External: Adds links to external services (https://apps.nextcloud.com/apps/external)
 | 
						|
    enabled: true 
 | 
						|
  #files_accesscontrol
 | 
						|
  #  # Nextcloud Files Access Control: restricts file access based on defined rules (https://apps.nextcloud.com/apps/files_accesscontrol)
 | 
						|
  #  enabled: false
 | 
						|
  #files_archive
 | 
						|
  #  # Nextcloud Files Archive: compresses and archives files for efficient storage (https://apps.nextcloud.com/apps/files_archive)
 | 
						|
  #  enabled: false
 | 
						|
  #files_automatedtagging
 | 
						|
  #  # Nextcloud Files Automated Tagging: automatically tags files to improve organization (https://apps.nextcloud.com/apps/files_automatedtagging)
 | 
						|
  #  enabled: false
 | 
						|
  files_bpm:
 | 
						|
    # Nextcloud Files BPM: integrates business process management for file workflows (https://apps.nextcloud.com/apps/files_bpm)
 | 
						|
    enabled: true
 | 
						|
  files_downloadactivity:
 | 
						|
    # Nextcloud Files Download Activity: tracks and logs file download events (https://apps.nextcloud.com/apps/files_downloadactivity)
 | 
						|
    enabled: true
 | 
						|
  files_linkeditor:
 | 
						|
    # Nextcloud files link editor: allows customization of shared file links (https://apps.nextcloud.com/apps/files_linkeditor)
 | 
						|
    enabled: true
 | 
						|
  files_mindmap:
 | 
						|
    # Nextcloud Files Mindmap: visualizes file relationships as mind maps (https://apps.nextcloud.com/apps/files_mindmap)
 | 
						|
    enabled: true
 | 
						|
  files_texteditor:
 | 
						|
    # Nextcloud Files Text Editor: provides an online editor for text files (https://apps.nextcloud.com/apps/files_texteditor)
 | 
						|
    # Not available for Nextcloud < 27
 | 
						|
    enabled: false
 | 
						|
  fileslibreofficeedit:
 | 
						|
    # Nextcloud LibreOffice integration: allows online editing of documents with LibreOffice (https://apps.nextcloud.com/apps/fileslibreofficeedit)
 | 
						|
    enabled: "{{ not (applications | get_app_conf('web-app-nextcloud', 'plugins.richdocuments.enabled', False, True)) }}"
 | 
						|
  forms:
 | 
						|
    # Nextcloud forms: facilitates creation of forms and surveys (https://apps.nextcloud.com/apps/forms)
 | 
						|
    enabled: true
 | 
						|
  gestion:
 | 
						|
    # Nextcloud Gestion: manages administrative tasks and workflows (https://apps.nextcloud.com/apps/gestion)
 | 
						|
    enabled: true
 | 
						|
  groupfolders:
 | 
						|
    # Nextcloud Group Folders: centralizes shared folders for group collaboration (https://apps.nextcloud.com/apps/groupfolders)
 | 
						|
    enabled: true
 | 
						|
  gpxpod:
 | 
						|
    # Nextcloud GPX pod: visualizes GPS tracks and GPX data (https://apps.nextcloud.com/apps/gpxpod)
 | 
						|
    enabled: true
 | 
						|
  integration_discourse:
 | 
						|
    # Nextcloud Integration Discourse: connects Nextcloud with Discourse forums (https://apps.nextcloud.com/apps/integration_discourse)
 | 
						|
    enabled: false
 | 
						|
  integration_gitlab:
 | 
						|
    # Nextcloud Integration GitLab: connects Nextcloud with GitLab repositories (https://apps.nextcloud.com/apps/integration_gitlab)
 | 
						|
    enabled: "{{ 'web-app-gitlab' in group_names | lower }}"
 | 
						|
  integration_github:
 | 
						|
    # Nextcloud Integration GitHub: integrates GitHub repositories with Nextcloud (https://apps.nextcloud.com/apps/integration_github)
 | 
						|
    enabled: false
 | 
						|
  integration_google:
 | 
						|
    # Nextcloud Integration Google: connects Google services with Nextcloud (https://apps.nextcloud.com/apps/integration_google)
 | 
						|
    enabled: true
 | 
						|
  integration_mastodon:
 | 
						|
    # Nextcloud Integration Mastodon: connects Nextcloud with the Mastodon social network (https://apps.nextcloud.com/apps/integration_mastodon)
 | 
						|
    enabled: "{{ 'web-app-mastodon' in group_names | lower }}"
 | 
						|
  integration_openai:
 | 
						|
    # Nextcloud Integration OpenAI: brings OpenAI functionalities into Nextcloud (https://apps.nextcloud.com/apps/integration_openai)
 | 
						|
    enabled: false
 | 
						|
  integration_openproject:
 | 
						|
    # Nextcloud Integration OpenProject: integrates project management features from OpenProject (https://apps.nextcloud.com/apps/integration_openproject)
 | 
						|
    enabled: "{{ 'web-app-openproject' in group_names | lower }}"
 | 
						|
  integration_peertube:
 | 
						|
    # Nextcloud Integration PeerTube: connects to PeerTube for video sharing (https://apps.nextcloud.com/apps/integration_peertube)
 | 
						|
    enabled: "{{ 'web-app-peertube' in group_names | lower }}"
 | 
						|
  #keeweb 
 | 
						|
  #  # Nextcloud KeeWeb: integrates the KeeWeb password manager within Nextcloud (https://apps.nextcloud.com/apps/keeweb)
 | 
						|
  #  # This isn't maintained anymore. The alternatives don't support keepass files
 | 
						|
  #  enabled: false
 | 
						|
  keeporsweep:
 | 
						|
    # Nextcloud keep or sweep: helps manage and clean up files and data (https://apps.nextcloud.com/apps/keeporsweep)
 | 
						|
    enabled: true
 | 
						|
  mail:
 | 
						|
    # Nextcloud mail: integrated email client for managing mail accounts (https://apps.nextcloud.com/apps/mail)
 | 
						|
    enabled: true
 | 
						|
  maps:
 | 
						|
    # Nextcloud maps: provides mapping and location services integration (https://apps.nextcloud.com/apps/maps)
 | 
						|
    enabled: true
 | 
						|
  metadata:
 | 
						|
    # Nextcloud Metadata: manages and displays file metadata for enhanced organization (https://apps.nextcloud.com/apps/metadata)
 | 
						|
    enabled: true
 | 
						|
  news:
 | 
						|
    # Nextcloud News: aggregates and displays news feeds directly in Nextcloud (https://apps.nextcloud.com/apps/news)
 | 
						|
    enabled: true
 | 
						|
  oidc_login:
 | 
						|
    # Nextcloud User OIDC: integrates OpenID Connect for user authentication (https://apps.nextcloud.com/apps/oidc_login)
 | 
						|
    enabled:    "{{ _applications_nextcloud_oidc_flavor=='oidc_login' | lower }}"
 | 
						|
    incompatible_plugins:  
 | 
						|
      - user_oidc   # Will be disabled
 | 
						|
      - sociallogin # Will be disabled
 | 
						|
  phonetrack:
 | 
						|
    # Nextcloud phone track: tracks and monitors mobile device usage (https://apps.nextcloud.com/apps/phonetrack)
 | 
						|
    enabled: true
 | 
						|
  polls:
 | 
						|
    # Nextcloud polls: facilitates creation and management of user polls (https://apps.nextcloud.com/apps/polls)
 | 
						|
    enabled: true
 | 
						|
  quota_warning:
 | 
						|
    # Nextcloud quota warning: notifies users when storage limits are reached (https://apps.nextcloud.com/apps/quota_warning)
 | 
						|
    enabled: true
 | 
						|
  recognize:
 | 
						|
    # Nextcloud recognize: performs image recognition tasks (https://apps.nextcloud.com/apps/recognize)
 | 
						|
    enabled: false # Deactivated because it let to bugs
 | 
						|
  richdocuments:
 | 
						|
    # Nextcloud Rich Documents: provides collaborative document editing capabilities (https://apps.nextcloud.com/apps/richdocuments)
 | 
						|
    enabled: true # @todo To set it default to true activate https://hub.docker.com/r/collabora/code before
 | 
						|
  sociallogin:
 | 
						|
    # Nextcloud social login: allows authentication using social networks (https://apps.nextcloud.com/apps/sociallogin)
 | 
						|
    enabled:    "{{ _applications_nextcloud_oidc_flavor=='sociallogin' | lower }}"
 | 
						|
    incompatible_plugins:  
 | 
						|
      - user_oidc   # Will be disabled
 | 
						|
      - oidc_login  # Will be disabled
 | 
						|
  spreed:
 | 
						|
    # Nextcloud Spreed: offers video conferencing and chat functionalities (https://apps.nextcloud.com/apps/spreed)
 | 
						|
    enabled: true
 | 
						|
  tables:
 | 
						|
    # Nextcloud tables: allows creation and editing of tables within the interface (https://apps.nextcloud.com/apps/tables)
 | 
						|
    enabled: true
 | 
						|
  tasks:
 | 
						|
    # Nextcloud tasks: manages personal or group tasks and to-do lists (https://apps.nextcloud.com/apps/tasks)
 | 
						|
    enabled: true
 | 
						|
  #terms_of_service 
 | 
						|
  #  # Nextcloud Terms of Service: manages user acceptance of terms and conditions (https://apps.nextcloud.com/apps/terms_of_service)
 | 
						|
  #  enabled: false
 | 
						|
  twofactor_nextcloud_notification:
 | 
						|
    # Nextcloud two-factor notification: sends notifications for two-factor authentication events (https://apps.nextcloud.com/apps/twofactor_nextcloud_notification)
 | 
						|
    enabled: "{{ not applications | get_app_conf('web-app-nextcloud', 'features.oidc', False, True) }}" # Deactivate 2FA if oidc is active
 | 
						|
  twofactor_totp:
 | 
						|
    # Nextcloud two-factor TOTP: provides time-based one-time password authentication (https://apps.nextcloud.com/apps/twofactor_totp)
 | 
						|
    enabled: "{{ not applications | get_app_conf('web-app-nextcloud', 'features.oidc', False, True) }}" # Deactivate 2FA if oidc is active
 | 
						|
  user_ldap:
 | 
						|
    # Nextcloud user LDAP: integrates LDAP for user management and authentication (https://apps.nextcloud.com/apps/user_ldap)
 | 
						|
    enabled: "{{ applications | get_app_conf('web-app-nextcloud', 'features.ldap', False, True) }}"
 | 
						|
    user_directory:
 | 
						|
      enabled:  true # Enables the LDAP User Directory Search
 | 
						|
  user_oidc:
 | 
						|
    # Nextcloud User OIDC: integrates OpenID Connect for user authentication (https://apps.nextcloud.com/apps/user_oidc)
 | 
						|
    enabled:    "{{ _applications_nextcloud_oidc_flavor=='user_oidc' | lower }}"
 | 
						|
    incompatible_plugins:  
 | 
						|
      - oidc_login
 | 
						|
      - sociallogin
 | 
						|
  whiteboard:
 | 
						|
    # Nextcloud Whiteboard: provides a collaborative drawing and brainstorming tool (https://apps.nextcloud.com/apps/whiteboard)
 | 
						|
    enabled: true
 | 
						|
 | 
						|
  xwiki:
 | 
						|
    # XWiki Integration: search & display XWiki content from Nextcloud
 | 
						|
    # https://apps.nextcloud.com/apps/xwiki
 | 
						|
    enabled: "{{ 'web-app-xwiki' in group_names | lower }}" |