--- # TODO: postgres support # - name: create nextcloud database (pg) # postgresql_db: # state: present # name: "{{ nextcloud_db_name }}" # login_host: "{{ postgresql_host }}" # login_port: "{{ postgresql_port }}" # login_user: "{{ postgresql_root_password }}" # login_password: "{{ postgresql_root_password }}" # - name: create nextcloud db user (pg) # postgresql_user: # state: present # name: "{{ nextcloud_db_user }}" # password: "{{ nextcloud_db_password }}" # priv: "{{ nextcloud_db_name }}.*:ALL" # login_host: "{{ postgresql_host }}" # login_port: "{{ postgresql_port }}" # login_user: root # login_password: "{{ postgresql_root_password }}" - name: create nextcloud database mysql_db: state: present name: "{{ nextcloud_db_name }}" login_host: "{{ mariadb_host }}" login_port: "{{ mariadb_port }}" login_user: root login_password: "{{ mariadb_root_password }}" when: nextcloud_db_engine in ('mariadb','mysql') - name: create nextcloud db user mysql_user: state: present name: "{{ nextcloud_db_user }}" host: "%" password: "{{ nextcloud_db_password }}" priv: "{{ nextcloud_db_name }}.*:ALL" login_host: "{{ mariadb_host }}" login_port: "{{ mariadb_port }}" login_user: root login_password: "{{ mariadb_root_password }}" when: nextcloud_db_engine in ('mariadb','mysql') - name: start nextcloud container docker_container: image: "{{ nextcloud_image }}" name: "{{ nextcloud_container }}" volumes: - "{{ nextcloud_volume }}:/var/www/html" env: SQLITE_DATABASE: "{{ nextcloud_db_name if nextcloud_db_engine == 'sqlite' else '' }}" MYSQL_DATABASE: "{{ nextcloud_db_name if nextcloud_db_engine in ('mysql','mariadb') else '' }}" MYSQL_USER: "{{ nextcloud_db_user if nextcloud_db_engine in ('mysql','mariadb') else '' }}" MYSQL_PASSWORD: "{{ nextcloud_db_password if nextcloud_db_engine in ('mysql','mariadb') else '' }}" MYSQL_HOST: "{{ nextcloud_db_host if nextcloud_db_engine in ('mysql','mariadb') else '' }}" POSTGRES_DB: "{{ nextcloud_db_name if 'postgres' in nextcloud_db_engine else '' }}" POSTGRES_USER: "{{ nextcloud_db_user if 'postgres' in nextcloud_db_engine else '' }}" POSTGRES_PASSWORD: "{{ nextcloud_db_password if 'postgres' in nextcloud_db_engine else '' }}" POSTGRES_HOST: "{{ nextcloud_db_host if 'postgres' in nextcloud_db_engine else '' }}" NEXTCLOUD_TABLE_PREFIX: "{{ nextcloud_table_prefix }}" NEXTCLOUD_ADMIN_USER: "{{ nextcloud_admin_user }}" NEXTCLOUD_ADMIN_PASSWORD: "{{ nextcloud_admin_password }}" NEXTCLOUD_TRUSTED_DOMAINS: "{{ nextcloud_trusted_domains | join(' ')}}" NEXTCLOUD_UPDATE: "{{ nextcloud_update }}" REDIS_HOST: "{{ nextcloud_redis_host }}" REDIS_HOST_PORT: "{{ nextcloud_redis_port }}" SMTP_HOST: "{{ nextcloud_smtp_host }}" SMTP_SECURE: "{{ nextcloud_smtp_secure }}" SMTP_PORT: "{{ nextcloud_smtp_port }}" SMTP_AUTHTYPE: "{{ nextcloud_smtp_authtype }}" SMTP_NAME: "{{ nextcloud_smtp_user }}" SMTP_PASSWORD: "{{ nextcloud_smtp_password }}" MAIL_FROM_ADDRESS: "{{ nextcloud_mail_from_address }}" MAIL_DOMAIN: "{{ nextcloud_mail_domain }}" LDAP_ENABLE: "{{ 'true' if nextcloud_ldap_enable else 'false' }}" LDAP_HOST: "{{ nextcloud_ldap_host }}" LDAP_PORT: "{{ nextcloud_ldap_port | string }}" LDAP_BACKUP_HOST: "{{ nextcloud_ldap_backup_host | default(omit) }}" LDAP_BACKUP_PORT: "{{ nextcloud_ldap_backup_port | string }}" LDAP_AGENT_NAME: "{{ nextcloud_ldap_agent_name | default(omit) }}" LDAP_AGENT_PASSWORD: "{{ nextcloud_ldap_agent_password | default(omit) }}" LDAP_BASE: "{{ nextcloud_ldap_base }}" LDAP_BASE_USERS: "{{ nextcloud_ldap_base_users | default(omit) }}" LDAP_BASE_GROUPS: "{{ nextcloud_ldap_base_groups | default(omit) }}" LDAP_USER_FILTER_OBJECTCLASS: "{{ nextcloud_ldap_user_filter_objectclass | default(omit) }}" LDAP_USER_FILTER: "{{ nextcloud_ldap_user_filter | default(omit) }}" LDAP_LOGIN_FILTER: "{{ nextcloud_ldap_login_filter | default(omit) }}" LDAP_GROUP_FILTER_OBJECTCLASS: "{{ nextcloud_ldap_group_filter_objectclass | default(omit) }}" LDAP_GROUP_FILTER: "{{ nextcloud_ldap_group_filter | default(omit) }}" LDAP_GID_NUMBER: "{{ nextcloud_ldap_gid_number | default(omit) }}" LDAP_USER_DISPLAY_NAME: "{{ nextcloud_ldap_user_display_name | default(omit) }}" LDAP_USER_DISPLAY_NAME_2: "{{ nextcloud_ldap_user_display_name_2 | default(omit) }}" LDAP_GROUP_DISPLAY_NAME: "{{ nextcloud_ldap_group_display_name | default(omit) }}" LDAP_EMAIL_ATTRIBUTE: "{{ nextcloud_ldap_email_attribute | default(omit) }}" LDAP_GROUP_MEMBER_ASSOC_ATTR: "{{ nextcloud_ldap_group_member_assoc_attr | default(omit) }}" LDAP_EXPERT_USERNAME_ATTR: "{{ nextcloud_ldap_expert_username_attr | default(omit) }}" networks: - name: "{{ docker_network }}" ports: - name: export nginx config set_fact: nginx_config: >- {{ nginx_config | default({}) | combine({ nextcloud_domain: { "locations": { '/': { "proxy_pass": "https://{}:9010".format(nextcloud_container) } } } }, recursive=True) }} - name: inspect nextcloud volume docker_volume_info: name: "{{ nextcloud_volume }}" register: volinfo - name: export variables set_fact: nextcloud_volume: "{{ lookup('vars','nextcloud_volume') }}" nextcloud_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}"