diff options
| author | Kumar Damani <me@kumardamani.net> | 2023-08-11 16:28:54 +0000 |
|---|---|---|
| committer | Kumar Damani <me@kumardamani.net> | 2023-08-11 16:28:54 +0000 |
| commit | 1f321db8949b3aeb80afdd7a94e92b7743c3e275 (patch) | |
| tree | f48b7040615af1bda263faa4d2657636c77ba2a4 /ansible/roles/nextcloud | |
| parent | 9bae899e227e4899a5ee629bf305a00a39044bc2 (diff) | |
Work
Diffstat (limited to 'ansible/roles/nextcloud')
| -rw-r--r-- | ansible/roles/nextcloud/tasks/main.yaml | 5 | ||||
| -rw-r--r-- | ansible/roles/nextcloud/tasks/setup.yaml | 40 | ||||
| -rw-r--r-- | ansible/roles/nextcloud/templates/docker-compose.yaml.j2 | 41 |
3 files changed, 86 insertions, 0 deletions
diff --git a/ansible/roles/nextcloud/tasks/main.yaml b/ansible/roles/nextcloud/tasks/main.yaml new file mode 100644 index 0000000..0d3697b --- /dev/null +++ b/ansible/roles/nextcloud/tasks/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: 'Run the setup tasks' + ansible.builtin.import_tasks: 'setup.yaml' + tags: 'nextcloud' diff --git a/ansible/roles/nextcloud/tasks/setup.yaml b/ansible/roles/nextcloud/tasks/setup.yaml new file mode 100644 index 0000000..ac17702 --- /dev/null +++ b/ansible/roles/nextcloud/tasks/setup.yaml @@ -0,0 +1,40 @@ +--- + +- name: 'setup | Ensure required vars are set' + ansible.builtin.assert: + that: + - item | mandatory + loop: + - '{{ nextcloud_nas_mount_path }}' + - '{{ nextcloud_php_max_mem_mb }}' + - '{{ nextcloud_php_max_upload_size_gb }}' + no_log: true + +- name: 'setup | Install required pkgs' + ansible.builtin.package: + name: + - 'nfs-common' + +- name: 'setup | Create the mount dir' + ansible.builtin.file: + path: '/mnt/data' + state: 'directory' + mode: '755' + +- name: 'setup | Setup the NFS mount' + ansible.posix.mount: + src: '{{ nextcloud_nas_mount_path }}' + path: '/mnt/data' + state: 'mounted' + fstype: 'nfs' + +- name: 'setup | Copy the docker-compose file' + ansible.builtin.template: + src: 'docker-compose.yaml.j2' + dest: 'docker-compose.yaml' + mode: '644' + +- name: 'setup | Start the service' + ansible.builtin.command: 'docker-compose up -d' + register: '_compose_up_cmd' + changed_when: '_compose_up_cmd.rc == 0' diff --git a/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 b/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 new file mode 100644 index 0000000..3571432 --- /dev/null +++ b/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 @@ -0,0 +1,41 @@ +{{ ansible_managed | comment }} +version: "3" +services: + nextcloud: + image: nextcloud/all-in-one:latest + restart: always + container_name: nextcloud-aio-mastercontainer + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 8080:8080 + environment: + - APACHE_PORT=11000 + - APACHE_IP_BINDING=0.0.0.0 + - COLLABORA_SECCOMP_DISABLED=true + - NEXTCLOUD_DATADIR=/mnt/data + - NEXTCLOUD_MOUNT=/mnt/ + - NEXTCLOUD_UPLOAD_LIMIT={{ nextcloud_php_max_upload_size_gb }}G + - NEXTCLOUD_MAX_TIME=3600 + - NEXTCLOUD_MEMORY_LIMIT={{ nextcloud_php_max_mem_mb }}M + - NEXTCLOUD_STARTUP_APPS=deck twofactor_totp tasks calendar contacts notes memories richdocuments -photos + - NEXTCLOUD_ADDITIONAL_APKS=imagemagick + - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick + - NEXTCLOUD_ENABLE_DRI_DEVICE={{ nextcloud_enable_dri }} + - TALK_PORT=3478 + - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock + - SKIP_DOMAIN_VALIDATION=true + networks: + - nextcloud-aio + +volumes: + nextcloud_aio_mastercontainer: + name: nextcloud_aio_mastercontainer + +networks: + nextcloud-aio: + name: nextcloud-aio + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1420 |
