--- # 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 }}" - 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 }}" - 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 }}" 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 }}" networks: - name: "{{ docker_network_name }}" ports: - name: template nginx config copy: content: | location {{ nextcloud_web_root }} { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://{{ nextcloud_container }}; } dest: "{{ nginx_location }}/nextcloud.conf" register: ngconf - name: restart frontend docker_container: name: "{{ nginx_container_name }}" restart: yes when: ngconf is changed - 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 }}"