Nextcloud 31 #12

Merged
jotbe merged 9 commits from feature/nextcloud-31 into master 2025-04-18 23:36:52 +02:00
4 changed files with 87 additions and 3 deletions

View file

@ -9,6 +9,9 @@ nextcloud_admin_user: admin
nextcloud_admin_password: mynextcloud
nextcloud_trusted_domains: localhost
nextcloud_trusted_proxies: [ '172.18.0.0/16' ]
nextcloud_default_phone_region: DE
nextcloud_database_utils:
- nextcloud-mysql-innodb-convert-row-format.sh
virtual_host: localhost
letsencrypt_host:
letsencrypt_email:

View file

@ -0,0 +1,16 @@
#!/bin/sh
# Source: https://help.nextcloud.com/t/upgrade-to-nextcloud-hub-10-31-0-0-incorrect-row-format-found-in-your-database/218366/13
# # Prompt for database credentials
# read -p "Enter Database Name: " MYSQL_DATABASE
# read -p "Enter Username: " MYSQL_USER
# read -s -p "Enter Password: " MYSQL_PASSWORD
# echo
mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" -Bse "
SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '$MYSQL_DATABASE'
AND ENGINE = 'InnoDB'
" | mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"

View file

@ -15,6 +15,25 @@
group: "{{ docker_user }}"
mode: '0644'
- name: Ensure database utils scripts directory exists
file:
path: /home/{{ docker_user }}/nextcloud/utils
state: directory
owner: '{{ docker_user }}'
group: '{{ docker_user }}'
- name: Provide database utils scripts
copy:
src: "{{ item }}"
dest: /home/{{ docker_user }}/nextcloud/utils/
owner: "{{ docker_user }}"
group: "{{ docker_user }}"
mode: '0644'
loop: "{{ nextcloud_database_utils }}"
when:
- nextcloud_database_utils is defined
- nextcloud_database_utils | length > 0
- name: Provide docker-compose.yml
template:
src: templates/docker-compose.nextcloud.yml.j2
@ -101,15 +120,16 @@
CRON_SCHEDULE="{{ restic_cron_schedule }}"
when: nextcloud_enable_restic_compose_backup == true
- name: "docker-compose: Teardown existing Nextcloud service"
- name: "docker-compose: Teardown existing Nextcloud service (will keep your volumes)"
docker_compose:
project_src: "/home/{{ docker_user }}/nextcloud/"
state: absent
tags: ['never', 'teardown']
tags: ['teardown']
- name: "docker-compose: Start Nextcloud service"
docker_compose:
project_src: "/home/{{ docker_user }}/nextcloud/"
pull: true
register: output
tags: service_start
@ -131,6 +151,11 @@
host: "{{ nextcloud_ip }}"
port: 80
- name: "docker-compose: Enable maintenance mode using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ maintenance:mode --on'
- name: "docker-compose: Set overwriteprotocol using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
@ -172,6 +197,45 @@
debug:
var: "{{ nextcloud_app_install_result }}"
- name: "docker-compose: Set default_phone_region using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ config:system:set default_phone_region --value="{{ nextcloud_default_phone_region }}"'
- name: "docker-compose: Set maintenance_window_start to 1 using occ (This will run maintenance tasks between 01:00-05:00 UTC)"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ config:system:set maintenance_window_start --value=1 --type=integer'
- name: "docker-compose: Update all apps using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ app:update --all'
- name: "docker-compose: Add missing indices using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ db:add-missing-indices'
- name: "docker-compose: Run maintenance:repair --include-expensive using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ maintenance:repair --include-expensive'
- name: "docker-compose: Run database utils"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T mysqldb /bin/sh '/opt/utils/{{ item }}'
loop: "{{ nextcloud_database_utils }}"
when:
- nextcloud_database_utils is defined
- nextcloud_database_utils | length > 0
- name: "docker-compose: Disable maintenance mode using occ"
shell:
chdir: /home/{{ docker_user }}/nextcloud/
cmd: docker-compose exec -T -u www-data nextcloud-app /bin/sh -c './occ maintenance:mode --off'
- name: "Test whether Nextcloud is healthy from the outside"
when: not ansible_check_mode
become: false

View file

@ -12,6 +12,7 @@ services:
volumes:
- mysqldb:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
- ./utils/:/opt/utils:ro
env_file:
- db.env
{% if nextcloud_enable_restic_compose_backup %}
@ -21,7 +22,7 @@ services:
restart: unless-stopped
nextcloud-app:
image: nextcloud:29-fpm-alpine
image: nextcloud:31-fpm-alpine
restart: unless-stopped
container_name: nextcloud-app
depends_on: