| 
							
							
							
						 |  |  | @@ -1,140 +0,0 @@ | 
		
	
		
			
				|  |  |  |  | # Copyright (C) 2019-2020  Free I.T. Athens | 
		
	
		
			
				|  |  |  |  | # | 
		
	
		
			
				|  |  |  |  | # This program is free software: you can redistribute it and/or modify | 
		
	
		
			
				|  |  |  |  | # it under the terms of the GNU General Public License as published by | 
		
	
		
			
				|  |  |  |  | # the Free Software Foundation, version 3 of the License. | 
		
	
		
			
				|  |  |  |  | # | 
		
	
		
			
				|  |  |  |  | # This program is distributed in the hope that it will be useful, | 
		
	
		
			
				|  |  |  |  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
		
	
		
			
				|  |  |  |  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
		
	
		
			
				|  |  |  |  | # GNU General Public License for more details. | 
		
	
		
			
				|  |  |  |  | # | 
		
	
		
			
				|  |  |  |  | # You should have received a copy of the GNU General Public License | 
		
	
		
			
				|  |  |  |  | # along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Install MySQL Support for Python | 
		
	
		
			
				|  |  |  |  |   apt: | 
		
	
		
			
				|  |  |  |  |     name: python-pymysql | 
		
	
		
			
				|  |  |  |  |     state: present | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Create Database | 
		
	
		
			
				|  |  |  |  |   mysql_db: | 
		
	
		
			
				|  |  |  |  |     name: "{{ nc_db_name }}" | 
		
	
		
			
				|  |  |  |  |     state: present | 
		
	
		
			
				|  |  |  |  |     login_unix_socket: /var/run/mysqld/mysqld.sock | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Create Database User | 
		
	
		
			
				|  |  |  |  |   mysql_user: | 
		
	
		
			
				|  |  |  |  |     name: "{{ nc_db_user }}" | 
		
	
		
			
				|  |  |  |  |     password: "{{ nc_db_pass }}" | 
		
	
		
			
				|  |  |  |  |     priv: "{{ nc_db_name }}.*:ALL,GRANT" | 
		
	
		
			
				|  |  |  |  |     state: present | 
		
	
		
			
				|  |  |  |  |     login_unix_socket: /var/run/mysqld/mysqld.sock | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Install PHP Modules | 
		
	
		
			
				|  |  |  |  |   apt: | 
		
	
		
			
				|  |  |  |  |     name: [ | 
		
	
		
			
				|  |  |  |  |             # Required | 
		
	
		
			
				|  |  |  |  |             'php-ctype', 'php-curl', 'php-dom', | 
		
	
		
			
				|  |  |  |  |             'php-gd', 'php-iconv', 'php-json', 'php-xml', | 
		
	
		
			
				|  |  |  |  |             'php-mbstring', 'php-posix', 'php-simplexml', | 
		
	
		
			
				|  |  |  |  |             'php-xmlreader', 'php-xmlwriter', 'php-zip', | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             # Database Connectors | 
		
	
		
			
				|  |  |  |  |             'php-pgsql', | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             # Recommended Packages | 
		
	
		
			
				|  |  |  |  |             'php-fileinfo', 'php-bz2', 'php-intl', | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             # Enhanced Performance | 
		
	
		
			
				|  |  |  |  |             'php-redis', 'redis-server', | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             # Preview Generation | 
		
	
		
			
				|  |  |  |  |             'php-imagick' | 
		
	
		
			
				|  |  |  |  |           ] | 
		
	
		
			
				|  |  |  |  |     state: present | 
		
	
		
			
				|  |  |  |  |   notify: Reload Apache2 | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Create Public HTML Directory | 
		
	
		
			
				|  |  |  |  |   file: | 
		
	
		
			
				|  |  |  |  |     path: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |     state: directory | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Create Nextcloud Directories | 
		
	
		
			
				|  |  |  |  |   file: | 
		
	
		
			
				|  |  |  |  |     path: "{{ nc_dir }}/public_html/data" | 
		
	
		
			
				|  |  |  |  |     state: directory | 
		
	
		
			
				|  |  |  |  |     owner: www-data | 
		
	
		
			
				|  |  |  |  |     group: www-data | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Create Logs Directory | 
		
	
		
			
				|  |  |  |  |   file: | 
		
	
		
			
				|  |  |  |  |     path: "{{ nc_dir }}/logs" | 
		
	
		
			
				|  |  |  |  |     state: directory | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Download Nextcloud | 
		
	
		
			
				|  |  |  |  |   get_url: | 
		
	
		
			
				|  |  |  |  |     url: "https://download.nextcloud.com/server/releases/\ | 
		
	
		
			
				|  |  |  |  |           nextcloud-{{ nc_version }}.tar.bz2" | 
		
	
		
			
				|  |  |  |  |     dest: /tmp/nextcloud-{{ nc_version }}.tar.bz2 | 
		
	
		
			
				|  |  |  |  |     checksum: sha256:{{ nc_sha256_hash }} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Extract Nextcloud | 
		
	
		
			
				|  |  |  |  |   unarchive: | 
		
	
		
			
				|  |  |  |  |     src: /tmp/nextcloud-{{ nc_version }}.tar.bz2 | 
		
	
		
			
				|  |  |  |  |     dest: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |     owner: www-data | 
		
	
		
			
				|  |  |  |  |     group: www-data | 
		
	
		
			
				|  |  |  |  |     extra_opts: [--strip-components=1] | 
		
	
		
			
				|  |  |  |  |     remote_src: yes | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Install Nextcloud | 
		
	
		
			
				|  |  |  |  |   command: | | 
		
	
		
			
				|  |  |  |  |     php occ maintenance:install --database mysql \ | 
		
	
		
			
				|  |  |  |  |     --database-name {{ nc_db_name }} --database-host {{ nc_db_host }} \ | 
		
	
		
			
				|  |  |  |  |     --database-user {{ nc_db_user }} --database-pass {{ nc_db_pass }} \ | 
		
	
		
			
				|  |  |  |  |     --admin-user {{ nc_admin }} --admin-pass {{ nc_admin_pass }} \ | 
		
	
		
			
				|  |  |  |  |     --data-dir {{ nc_dir }}/public_html/data | 
		
	
		
			
				|  |  |  |  |   become_user: www-data | 
		
	
		
			
				|  |  |  |  |   register: nextcloud_install | 
		
	
		
			
				|  |  |  |  |   args: | 
		
	
		
			
				|  |  |  |  |     chdir: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |     creates: "{{ nc_dir }}/public_html/config/config.php" | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Add Missing Database Indexes | 
		
	
		
			
				|  |  |  |  |   command: php occ db:add-missing-indices | 
		
	
		
			
				|  |  |  |  |   become_user: www-data | 
		
	
		
			
				|  |  |  |  |   register: nextcloud_db_update | 
		
	
		
			
				|  |  |  |  |   args: | 
		
	
		
			
				|  |  |  |  |     chdir: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |   when: nextcloud_install.changed | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Convert Database Columns to BIGINT | 
		
	
		
			
				|  |  |  |  |   command: php occ db:convert-filecache-bigint | 
		
	
		
			
				|  |  |  |  |   become_user: www-data | 
		
	
		
			
				|  |  |  |  |   args: | 
		
	
		
			
				|  |  |  |  |     chdir: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |   when: nextcloud_db_update.changed | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Add Domain Name to Trusted Domains | 
		
	
		
			
				|  |  |  |  |   command: | | 
		
	
		
			
				|  |  |  |  |     php occ config:system:set trusted_domains 0 --value={{ nc_domain }} | 
		
	
		
			
				|  |  |  |  |   become_user: www-data | 
		
	
		
			
				|  |  |  |  |   args: | 
		
	
		
			
				|  |  |  |  |     chdir: "{{ nc_dir }}/public_html" | 
		
	
		
			
				|  |  |  |  |   when: nextcloud_install.changed | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: "Enable Apache2 Module: rewrite" | 
		
	
		
			
				|  |  |  |  |   apache2_module: name=rewrite state=present | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Apply Apache Configuration | 
		
	
		
			
				|  |  |  |  |   template: | 
		
	
		
			
				|  |  |  |  |     src: nextcloud.conf.j2 | 
		
	
		
			
				|  |  |  |  |     dest: /etc/apache2/sites-available/{{ nc_domain }}.conf | 
		
	
		
			
				|  |  |  |  |   notify: Reload Apache2 | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | - name: Enable Apache Website | 
		
	
		
			
				|  |  |  |  |   shell: a2ensite {{ nc_domain }} | 
		
	
		
			
				|  |  |  |  |   args: | 
		
	
		
			
				|  |  |  |  |     creates: /etc/apache2/sites-enabled/{{ nc_domain }}.conf | 
		
	
		
			
				|  |  |  |  |   notify: Reload Apache2 |