diff --git a/docs/just.md b/docs/just.md index c12743b74..72e164b8c 100644 --- a/docs/just.md +++ b/docs/just.md @@ -43,3 +43,13 @@ For example, these two commands are different: The just recipe runs `ensure-matrix-users-created` and `start` tags after `install-all`, while the latter runs only `install-all` tag. The correct shortcut of the latter is `just run-tags install-all`. Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components, which may prevent you from importing the data. + +## Conditional service restart + +When using `just install-all` or `just install-service`, only services whose configuration or container image actually changed during the playbook run will be restarted. Unchanged services are left running (or get started if they were stopped). This reduces unnecessary downtime. + +When using `just setup-all`, all services are unconditionally restarted regardless of whether changes were detected. This is appropriate for `setup-all`'s thorough "full setup" semantics. + +`just start-all` and `just start-group` always restart all targeted services, since no installation tasks run during these commands. + +This behavior is controlled by the `devture_systemd_service_manager_conditional_restart_enabled` variable (default: `true`). To force unconditional restarts during installation, pass: `just install-all --extra-vars='devture_systemd_service_manager_conditional_restart_enabled=false'` diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index b8d4d3fe1..dd1c9d389 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -886,7 +886,7 @@ devture_systemd_service_manager_services_list_auto: | ([{ 'name': (traefik_identifier + '.service'), 'priority': 250, - 'restart_necessary': true, + 'restart_necessary': (traefik_restart_necessary | bool), 'groups': ['matrix', 'traefik', 'reverse-proxies'], }] if traefik_enabled else []) + diff --git a/justfile b/justfile index dc54828fc..f457cb71a 100644 --- a/justfile +++ b/justfile @@ -53,7 +53,7 @@ install-service service *extra_args: --extra-vars=group={{ service }} {{ extra_args }} # Runs the playbook with --tags=setup-all,ensure-matrix-users-created,start and optional arguments -setup-all *extra_args: (run-tags "setup-all,ensure-matrix-users-created,start" extra_args) +setup-all *extra_args: (run-tags "setup-all,ensure-matrix-users-created,start" "--extra-vars=devture_systemd_service_manager_conditional_restart_enabled=false" extra_args) # Runs the playbook with the given list of arguments run +extra_args: