From 6fe310248096bd6ed2585319cc2365daa2aed123 Mon Sep 17 00:00:00 2001 From: Virkkunen Date: Thu, 24 Apr 2025 12:32:57 +0200 Subject: [PATCH] migration from conduwuit --- docs/configuring-playbook-continuwuity.md | 4 ++ .../custom/matrix-continuwuity/tasks/main.yml | 6 ++ .../tasks/migrate_from_conduwuit.yml | 58 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 roles/custom/matrix-continuwuity/tasks/migrate_from_conduwuit.yml diff --git a/docs/configuring-playbook-continuwuity.md b/docs/configuring-playbook-continuwuity.md index 62de241f3..ac08f852e 100644 --- a/docs/configuring-playbook-continuwuity.md +++ b/docs/configuring-playbook-continuwuity.md @@ -99,6 +99,10 @@ Then, send its content to the existing admin room: url: http://matrix-mautrix-signal:29328 ``` +## Migrating from conduwuit + +Since continuwuity is a drop-in replacement for conduwuit, migration is possible. First, make sure that continuwuity is properly set up on your `vars.yml` and run the tag `just run-tags migrate-conduwuit` + ## Troubleshooting As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-continuwuity`. diff --git a/roles/custom/matrix-continuwuity/tasks/main.yml b/roles/custom/matrix-continuwuity/tasks/main.yml index 4d8fe9a51..73fbe4d9f 100644 --- a/roles/custom/matrix-continuwuity/tasks/main.yml +++ b/roles/custom/matrix-continuwuity/tasks/main.yml @@ -32,3 +32,9 @@ - when: matrix_continuwuity_enabled | bool ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_federation_api.yml" + +- tags: + - migrate-conduwuit + block: + - when: matrix_continuwuity_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/migrate_from_conduwuit.yml" diff --git a/roles/custom/matrix-continuwuity/tasks/migrate_from_conduwuit.yml b/roles/custom/matrix-continuwuity/tasks/migrate_from_conduwuit.yml new file mode 100644 index 000000000..734bf67bc --- /dev/null +++ b/roles/custom/matrix-continuwuity/tasks/migrate_from_conduwuit.yml @@ -0,0 +1,58 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +# This migrates the conduwuit server implementation (`/matrix/conduwuit`) to continuwuity (`/matrix/continuwuity`), +# +# Here, we merely backup the fresh continuwuity folder, relocate conduwuit directory to continuwuity (`/matrix/conduwuit`) +# +# and restore continuwuity labels. + +- name: Check existence of conduwuit directory ({{ matrix_base_data_path }}/conduwuit) + ansible.builtin.stat: + path: "{{ matrix_base_data_path }}/conduwuit" + register: matrix_conduwuit_directory_stat + +- name: Check existence of continuwuity directory ({{ matrix_base_data_path }}/continuwuity) + ansible.builtin.stat: + path: "{{ matrix_base_data_path }}/continuwuity" + register: matrix_continuwuity_directory_stat + +- when: > + matrix_conduwuit_directory_stat.stat.exists | bool and + matrix_continuwuity_directory_stat.stat.exists | bool + block: + - name: Ensure matrix-continuwuity.service systemd service is stopped + ansible.builtin.systemd: + name: matrix-continuwuity + state: stopped + enabled: false + daemon_reload: true + + - name: Ensure continuwuity folder is removed + ansible.builtin.command: + cmd: "mv {{ matrix_base_data_path }}/continuwuity {{ matrix_base_data_path }}/continuwuity_old" + creates: "{{ matrix_base_data_path }}/continuwuity_old" + + - name: Ensure conduwuit directory relocated + ansible.builtin.command: + cmd: "mv {{ matrix_base_data_path }}/conduwuit {{ matrix_base_data_path }}/continuwuity" + creates: "{{ matrix_base_data_path }}/continuwuity" + removes: "{{ matrix_base_data_path }}" + + - name: Ensure conduwuit.toml file is renamed + ansible.builtin.command: + cmd: "mv {{ matrix_base_data_path }}/continuwuity/config/conduwuit.toml {{ matrix_base_data_path }}/continuwuity/config/continuwuity.toml" + + - name: Ensure continuwuity labels are restored + ansible.builtin.command: + cmd: "mv {{ matrix_base_data_path }}/continuwuity_old/labels {{ matrix_base_data_path }}/continuwuity/labels" + + - name: Ensure matrix-continuwuity.service systemd service is started + ansible.builtin.systemd: + name: matrix-continuwuity + state: started + enabled: true + daemon_reload: true