From 245918c3e60fc49567b260bec102e888c08f7c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:53:05 -0300 Subject: [PATCH 01/14] chore(config/packages): remove transmission-qt --- config.flaudisio.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config.flaudisio.yml b/config.flaudisio.yml index bc214a4..0e0a78b 100644 --- a/config.flaudisio.yml +++ b/config.flaudisio.yml @@ -99,7 +99,6 @@ packages_apt_install: - printer-driver-cups-pdf - rename - sqlite3 - - transmission-qt - unar - unrar - unzip From ca6eb35f8db0562a3c06d84c5aa22172c1e6d0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:54:43 -0300 Subject: [PATCH 02/14] chore(git): bump git-open --- roles/local/git/defaults/main.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/roles/local/git/defaults/main.yml b/roles/local/git/defaults/main.yml index fc11eab..25cc69d 100644 --- a/roles/local/git/defaults/main.yml +++ b/roles/local/git/defaults/main.yml @@ -6,13 +6,12 @@ git_extra_packages: - qgit - tig -git_open_version: 3.1.0 +git_open_version: 41ebfceb -git_open_dl_url: https://raw.githubusercontent.com/paulirish/git-open/v{{ git_open_version }}/git-open +git_open_dl_url: https://raw.githubusercontent.com/paulirish/git-open/{{ git_open_version }}/git-open git_open_bin_path: /usr/local/bin/git-open -# Example: # git_config: | # [user] # name = Example User From 6205497e98ef60f96fcf953a09f4c5577097ecf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:55:37 -0300 Subject: [PATCH 03/14] feat(chrome): add support to set as default browser --- roles/local/chrome/defaults/main.yml | 2 ++ roles/local/chrome/tasks/main.yml | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/roles/local/chrome/defaults/main.yml b/roles/local/chrome/defaults/main.yml index c9e3390..f8bdf9a 100644 --- a/roles/local/chrome/defaults/main.yml +++ b/roles/local/chrome/defaults/main.yml @@ -1,2 +1,4 @@ --- chrome_package_url: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + +chrome_set_as_default_browser: false diff --git a/roles/local/chrome/tasks/main.yml b/roles/local/chrome/tasks/main.yml index 3cbf8b1..0d5c6db 100644 --- a/roles/local/chrome/tasks/main.yml +++ b/roles/local/chrome/tasks/main.yml @@ -9,3 +9,15 @@ deb: "{{ chrome_package_url }}" state: present when: "'google-chrome-stable' not in ansible_facts.packages" + +- name: Set Chrome as default browser in Alternatives + community.general.alternatives: + name: "{{ item }}" + link: /usr/bin/{{ item }} + path: /usr/bin/google-chrome-stable + priority: 100 + state: selected + loop: + - gnome-www-browser + - x-www-browser + when: chrome_set_as_default_browser | bool From 7538ae5f40bdb6ed0c646241d32066f1fa5e3719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:56:36 -0300 Subject: [PATCH 04/14] chore(mise): bump to v2026.5.7 --- roles/local/mise/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/local/mise/defaults/main.yml b/roles/local/mise/defaults/main.yml index dedf931..6f71a84 100644 --- a/roles/local/mise/defaults/main.yml +++ b/roles/local/mise/defaults/main.yml @@ -1,7 +1,7 @@ --- # Ref: https://mise.jdx.dev/installing-mise.html#github-releases -mise_version: 2025.12.0 +mise_version: 2026.5.7 mise_bin_dl_arch: "{{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'x64' }}" From dd08038dc2095eaea7b2b8e1fd39536fa3525ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:57:08 -0300 Subject: [PATCH 05/14] chore: remove q installation --- playbooks/common.yml | 2 -- roles/local/q/defaults/main.yml | 5 ----- roles/local/q/tasks/main.yml | 11 ----------- 3 files changed, 18 deletions(-) delete mode 100644 roles/local/q/defaults/main.yml delete mode 100644 roles/local/q/tasks/main.yml diff --git a/playbooks/common.yml b/playbooks/common.yml index 86eef9d..87259ec 100644 --- a/playbooks/common.yml +++ b/playbooks/common.yml @@ -55,8 +55,6 @@ # IDEs & development tools - role: vscode tags: vscode - - role: q - tags: q # Misc. applications - role: discord diff --git a/roles/local/q/defaults/main.yml b/roles/local/q/defaults/main.yml deleted file mode 100644 index 9e8ea1d..0000000 --- a/roles/local/q/defaults/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -q_version: 3.1.6 - -q_package_url: >- - https://github.com/harelba/q/releases/download/v{{ q_version }}/q-text-as-data-{{ q_version }}-1.{{ ansible_facts.architecture }}.deb diff --git a/roles/local/q/tasks/main.yml b/roles/local/q/tasks/main.yml deleted file mode 100644 index 31d1644..0000000 --- a/roles/local/q/tasks/main.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Gather package facts - ansible.builtin.package_facts: - manager: auto - when: ansible_facts.packages is not defined - -- name: Install package - ansible.builtin.apt: - deb: "{{ q_package_url }}" - state: present - when: q_version not in ansible_facts.packages["q-text-as-data"] | default([]) | map(attribute="version") From 65ced4b78806ae97dafe5da2d8a1d5f4933320e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:58:14 -0300 Subject: [PATCH 06/14] chore(rclone): bump to v1.74.1 --- roles/local/rclone/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/local/rclone/defaults/main.yml b/roles/local/rclone/defaults/main.yml index 492f3db..839dd2b 100644 --- a/roles/local/rclone/defaults/main.yml +++ b/roles/local/rclone/defaults/main.yml @@ -1,5 +1,5 @@ --- -rclone_version: 1.73.1 +rclone_version: 1.74.1 rclone_package_arch: "{{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64' }}" From f254ea15de6a55c7a97e1621a14a147127e3c647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 18:59:13 -0300 Subject: [PATCH 07/14] chore(resticprofile): exclude Sound Recorder data --- templates/resticprofile/excludes.txt.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/resticprofile/excludes.txt.j2 b/templates/resticprofile/excludes.txt.j2 index e46527f..c73e080 100644 --- a/templates/resticprofile/excludes.txt.j2 +++ b/templates/resticprofile/excludes.txt.j2 @@ -116,6 +116,7 @@ restic-ignored/ /home/*/.local/share/GitKrakenCLI /home/*/.local/share/helm /home/*/.local/share/mise +/home/*/.local/share/org.gnome.SoundRecorder /home/*/.local/share/Trash /home/*/.local/share/uv /home/*/.local/share/virtualenv From f790de17b6b6fa127792d8f0add796d63e01aa83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:00:01 -0300 Subject: [PATCH 08/14] chore: update default playbook --- README.md | 10 +++++----- main.yml => playbooks/default.yml | 6 ++---- 2 files changed, 7 insertions(+), 9 deletions(-) rename main.yml => playbooks/default.yml (91%) diff --git a/README.md b/README.md index f551df5..154b61d 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Run the `setup` playbook: ```bash cd ~/.local/share/linux-setup-playbook -./run.sh main.yml +./run.sh playbooks/default.yml ``` The [run.sh](run.sh) script is a tiny wrapper for the `ansible-playbook` command. By default it uses @@ -75,10 +75,10 @@ mode and so on. Example: ```bash -./run.sh main.yml --list-tasks -./run.sh main.yml -t backup -t spotify -./run.sh main.yml -t packages -t restic -./run.sh main.yml -t spotify --diff -C +./run.sh playbooks/default.yml --list-tasks +./run.sh playbooks/default.yml -t packages +./run.sh playbooks/default.yml -t packages --diff --check +./run.sh playbooks/default.yml -t git -t chrome ``` ## Thanks diff --git a/main.yml b/playbooks/default.yml similarity index 91% rename from main.yml rename to playbooks/default.yml index 36292c4..473e2df 100644 --- a/main.yml +++ b/playbooks/default.yml @@ -11,13 +11,11 @@ tags: packages - role: git tags: git + - role: mise + tags: mise - role: chrome tags: chrome - role: geerlingguy.docker tags: docker - - role: mise - tags: mise - - role: bat - tags: bat - role: vscode tags: vscode From f8f300b80b5a149c38325c12584ed05f01d7ddee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:02:58 -0300 Subject: [PATCH 09/14] feat(packages/apt): add support to pin package versions --- roles/local/packages/defaults/main.yml | 7 +++++++ roles/local/packages/tasks/apt.yml | 16 ++++++++++++++++ .../packages/templates/apt/version-pinning.j2 | 7 +++++++ 3 files changed, 30 insertions(+) create mode 100644 roles/local/packages/templates/apt/version-pinning.j2 diff --git a/roles/local/packages/defaults/main.yml b/roles/local/packages/defaults/main.yml index 9750bb5..9ad668a 100644 --- a/roles/local/packages/defaults/main.yml +++ b/roles/local/packages/defaults/main.yml @@ -6,6 +6,13 @@ packages_apt_remove: [] packages_apt_purge: true packages_apt_autoremove: false +# packages_apt_pin_versions: +# - package: alloy +# version: 1.16.1 +# - package: nginx +# version: 1.24.0-* +packages_apt_pin_versions: [] + # Snap packages_snap_remove_snapd: false diff --git a/roles/local/packages/tasks/apt.yml b/roles/local/packages/tasks/apt.yml index c3dcf51..097f5b0 100644 --- a/roles/local/packages/tasks/apt.yml +++ b/roles/local/packages/tasks/apt.yml @@ -24,3 +24,19 @@ purge: "{{ packages_apt_purge }}" when: packages_apt_autoremove | bool tags: packages:apt:autoremove + +- name: Configure version pinnings + ansible.builtin.template: + src: apt/version-pinning.j2 + dest: /etc/apt/preferences.d/ansible-version-pinning + owner: root + group: root + mode: "0644" + lstrip_blocks: true + when: packages_apt_pin_versions | length > 0 + +- name: Ensure version pinning configuration is absent + ansible.builtin.file: + path: /etc/apt/preferences.d/ansible-version-pinning + state: absent + when: packages_apt_pin_versions | length == 0 diff --git a/roles/local/packages/templates/apt/version-pinning.j2 b/roles/local/packages/templates/apt/version-pinning.j2 new file mode 100644 index 0000000..b416773 --- /dev/null +++ b/roles/local/packages/templates/apt/version-pinning.j2 @@ -0,0 +1,7 @@ +{% for item in packages_apt_pin_versions %} +Package: {{ item.package }} +Pin: version {{ item.version }} +Pin-Priority: 700 +{# Empty line for better readability #} + +{% endfor %} From dea2c2a966804c746b826b38c12fbae2278a5e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:03:49 -0300 Subject: [PATCH 10/14] chore(resticprofile): bump to v0.33.1 --- roles/local/resticprofile/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/local/resticprofile/defaults/main.yml b/roles/local/resticprofile/defaults/main.yml index fda9058..29a238f 100644 --- a/roles/local/resticprofile/defaults/main.yml +++ b/roles/local/resticprofile/defaults/main.yml @@ -1,5 +1,5 @@ --- -resticprofile_version: 0.32.0 +resticprofile_version: 0.33.1 resticprofile_dl_arch: "{{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64' }}" From eb650c941e3a9f891b59829e6b092b750f6d75e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:04:40 -0300 Subject: [PATCH 11/14] chore: improve task arguments --- roles/local/restic/tasks/main.yml | 2 +- roles/local/resticprofile/tasks/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/local/restic/tasks/main.yml b/roles/local/restic/tasks/main.yml index 5c3fb99..5b7086f 100644 --- a/roles/local/restic/tasks/main.yml +++ b/roles/local/restic/tasks/main.yml @@ -44,7 +44,7 @@ group: "{{ restic_bin_group }}" mode: "{{ restic_bin_mode }}" -- name: Configure non-root user capabilities on binary file +- name: Set binary file capabilities community.general.capabilities: path: "{{ restic_bin_path }}" capability: cap_dac_read_search=+ep diff --git a/roles/local/resticprofile/tasks/main.yml b/roles/local/resticprofile/tasks/main.yml index 3f74152..860a743 100644 --- a/roles/local/resticprofile/tasks/main.yml +++ b/roles/local/resticprofile/tasks/main.yml @@ -12,7 +12,7 @@ src: "{{ resticprofile_dl_url }}" dest: "{{ resticprofile_bin_path | dirname }}" include: - - resticprofile # Extract only the binary + - resticprofile owner: root group: root mode: "0755" From 2976d84d6f46d3c0035f5303e7cce3d554db9d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:05:19 -0300 Subject: [PATCH 12/14] chore(resticprofile): remove log file config --- templates/resticprofile/profiles.yaml.j2 | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/resticprofile/profiles.yaml.j2 b/templates/resticprofile/profiles.yaml.j2 index 15623ad..a354802 100644 --- a/templates/resticprofile/profiles.yaml.j2 +++ b/templates/resticprofile/profiles.yaml.j2 @@ -13,7 +13,6 @@ global: schedule-defaults: ignore-on-battery-less-than: 30 lock-wait: 15m - log: {{ resticprofile_log_dir }}/{{ '{{ .Profile.Name }}' }}.log .base: lock: /tmp/resticprofile.{{ '{{ .Profile.Name }}' }}.lock From 7b823c3160bfed006fff980274d8eafab29b626a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:05:42 -0300 Subject: [PATCH 13/14] chore(resticprofile): add support to extra backup dirs --- templates/resticprofile/includes.txt.j2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/resticprofile/includes.txt.j2 b/templates/resticprofile/includes.txt.j2 index c7cddf5..2c45203 100644 --- a/templates/resticprofile/includes.txt.j2 +++ b/templates/resticprofile/includes.txt.j2 @@ -4,3 +4,7 @@ /home /root /usr/local/bin + +{% for dir in __rp_extra_backup_dirs | default([]) %} +{{ dir }} +{% endfor %} From 2830065a083145be4eed90caf3a80bc5443050dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flaud=C3=ADsio=20Tolentino?= Date: Wed, 13 May 2026 19:05:58 -0300 Subject: [PATCH 14/14] chore(resticprofile): add support to prometheus-save-to-file --- templates/resticprofile/profiles.yaml.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/templates/resticprofile/profiles.yaml.j2 b/templates/resticprofile/profiles.yaml.j2 index a354802..c5a4316 100644 --- a/templates/resticprofile/profiles.yaml.j2 +++ b/templates/resticprofile/profiles.yaml.j2 @@ -74,6 +74,9 @@ global: default: inherit: {{ __rp_default_profile }} + {% if __rp_prometheus_save_to_file | default("") != "" %} + prometheus-save-to-file: {{ __rp_prometheus_save_to_file }} + {% endif %} main: inherit: .base