Centralize version management

This commit is contained in:
Thomas Kleinendorst 2024-12-30 11:26:27 +01:00
parent 2445a3f622
commit 4c5a875b2c
15 changed files with 41 additions and 26 deletions

View file

@ -6,6 +6,7 @@
hosts: raspberry_pis hosts: raspberry_pis
vars_files: vars_files:
- vault.yml - vault.yml
- versions.yml
roles: roles:
# These roles are disabled after they have being applied once for performance reasons, it should be safe to enable them again. # These roles are disabled after they have being applied once for performance reasons, it should be safe to enable them again.
# Notice that this role changes some settings on reruns (on the "Change various sysctl-settings" task), doesn't seem problematic though. # Notice that this role changes some settings on reruns (on the "Change various sysctl-settings" task), doesn't seem problematic though.

View file

@ -7,7 +7,7 @@
become: true become: true
community.docker.docker_container: community.docker.docker_container:
name: actual-server name: actual-server
image: "docker.io/actualbudget/actual-server:{{ actual_version }}" image: "docker.io/actualbudget/actual-server:{{ versions.actual }}"
ports: ports:
- "127.0.0.1:5006:5006/tcp" - "127.0.0.1:5006:5006/tcp"
mounts: mounts:

View file

@ -1,2 +0,0 @@
---
actual_version: 24.12.0

View file

@ -1,7 +1,7 @@
--- ---
services: services:
changedetection-server: changedetection-server:
image: "docker.io/dgtlmoon/changedetection.io:{{ changedetection_version }}" image: "docker.io/dgtlmoon/changedetection.io:{{ versions.changedetection.self }}"
hostname: changedetection hostname: changedetection
restart: always restart: always
ports: ports:
@ -12,7 +12,7 @@ services:
- PLAYWRIGHT_DRIVER_URL=ws://browserless-chrome:3000 - PLAYWRIGHT_DRIVER_URL=ws://browserless-chrome:3000
# See configuration from: https://www.youtube.com/watch?v=o_iG4Wunh98 # See configuration from: https://www.youtube.com/watch?v=o_iG4Wunh98
browserless-chrome: browserless-chrome:
image: "browserless/chrome:{{ browserless_chrome_version }}" image: "browserless/chrome:{{ versions.changedetection.headless_chrome }}"
hostname: browserless-chrome hostname: browserless-chrome
restart: always restart: always
environment: environment:

View file

@ -1,6 +0,0 @@
---
changedetection_version: 0.47.06
# This isn't preferable, i'd rather pin a version. However
# it's quite hard to find a suitable candidate (https://hub.docker.com/r/browserless/chrome/tags)
# for arm64.
browserless_chrome_version: latest

View file

@ -2,7 +2,7 @@
- name: Install Cloudflared - name: Install Cloudflared
become: true become: true
ansible.builtin.apt: ansible.builtin.apt:
deb: https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb deb: "https://github.com/cloudflare/cloudflared/releases/download/{{ versions.cloudflared }}/cloudflared-linux-arm64.deb"
- name: Install the Cloudflared tunnel as a systemd service - name: Install the Cloudflared tunnel as a systemd service
become: true become: true
ansible.builtin.command: ansible.builtin.command:

View file

@ -9,7 +9,7 @@ DB_DATA_LOCATION={{ immich_database_location }}
TZ=Europe/Amsterdam TZ=Europe/Amsterdam
# The Immich version to use. You can pin this to a specific version like "v1.71.0" # The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION={{ immich_version }} IMMICH_VERSION={{ versions.immich }}
# Connection secret for postgres. You should change it to a random password # Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces # Please use only the characters `A-Za-z0-9`, without special characters or spaces

View file

@ -1,4 +1,3 @@
--- ---
immich_version: v1.123.0
immich_upload_location: '/bulk/immich_uploads' immich_upload_location: '/bulk/immich_uploads'
immich_database_location: '/bulk/immich_database' immich_database_location: '/bulk/immich_database'

View file

@ -29,7 +29,7 @@
become: true become: true
community.docker.docker_container: community.docker.docker_container:
name: grafana-server name: grafana-server
image: "docker.io/grafana/grafana:{{ grafana_version }}" image: "docker.io/grafana/grafana:{{ versions.monitoring.grafana }}"
ports: ports:
- "127.0.0.1:3000:3000/tcp" - "127.0.0.1:3000:3000/tcp"
mounts: mounts:

View file

@ -1,6 +1,5 @@
--- ---
# Prometheus # Prometheus
prometheus_version: "2.54.1"
prometheus_targets: prometheus_targets:
prometheus: prometheus:
- targets: - targets:
@ -37,14 +36,12 @@ prometheus_alertmanager_config:
- targets: - targets:
- raspberry-pi-1.kleinendorst.info:9093 - raspberry-pi-1.kleinendorst.info:9093
# Node exporter # Node exporter
node_exporter_version: "1.8.2"
node_exporter_enabled_collectors: node_exporter_enabled_collectors:
- systemd - systemd
- {"textfile": {"directory": "{{ node_exporter_textfile_dir }}"}} - {"textfile": {"directory": "{{ node_exporter_textfile_dir }}"}}
- processes - processes
node_exporter_web_listen_address: 127.0.0.1:9100 node_exporter_web_listen_address: 127.0.0.1:9100
# Alertmanager # Alertmanager
alertmanager_version: "0.27.0"
alertmanager_web_listen_address: 127.0.0.1:9093 alertmanager_web_listen_address: 127.0.0.1:9093
# Telegram configuration inspired by this source: # Telegram configuration inspired by this source:
# https://www.stranatesta.eu/tech/how-to-configure-prometheus-alertmanager-to-send-alerts-to-telegram/#configure-alertmanager # https://www.stranatesta.eu/tech/how-to-configure-prometheus-alertmanager-to-send-alerts-to-telegram/#configure-alertmanager
@ -58,5 +55,4 @@ alertmanager_receivers:
alertmanager_route: alertmanager_route:
receiver: telegram receiver: telegram
# Grafana # Grafana
grafana_version: "11.2.0"
grafana_username: grafana grafana_username: grafana

View file

@ -1,7 +1,7 @@
--- ---
services: services:
postgres: postgres:
image: docker.io/postgres:{{ postgres_version }} image: docker.io/postgres:{{ versions.postgres.self }}
ports: ports:
- "0.0.0.0:5432:5432" - "0.0.0.0:5432:5432"
restart: always restart: always
@ -19,7 +19,7 @@ services:
environment: environment:
POSTGRES_PASSWORD: "{{ postgres_password }}" POSTGRES_PASSWORD: "{{ postgres_password }}"
postgres-prometheus-exporter: postgres-prometheus-exporter:
image: quay.io/prometheuscommunity/postgres-exporter:{{ postgres_prometheus_exporter_version }} image: quay.io/prometheuscommunity/postgres-exporter:{{ versions.postgres.prometheus_exporter }}
ports: ports:
- "0.0.0.0:9187:9187" - "0.0.0.0:9187:9187"
environment: environment:

View file

@ -1,4 +1,2 @@
--- ---
postgres_unix_username: postgres postgres_unix_username: postgres
postgres_version: 17-alpine
postgres_prometheus_exporter_version: v0.15.0

View file

@ -9,7 +9,7 @@
become: true become: true
community.docker.docker_container: community.docker.docker_container:
name: wedding-server name: wedding-server
image: "ghcr.io/kleinendorst/wedding:{{ wedding_version }}" image: "ghcr.io/kleinendorst/wedding:{{ versions.wedding }}"
ports: ports:
- "127.0.0.1:3001:3000/tcp" - "127.0.0.1:3001:3000/tcp"
env: env:

View file

@ -1,2 +0,0 @@
---
wedding_version: 0.0.17

31
versions.yml Normal file
View file

@ -0,0 +1,31 @@
---
versions:
# Changelog: https://actualbudget.org/docs/releases/
actual: 24.12.0
changedetection:
# Changelog: https://changedetection.io/CHANGELOG.txt
self: 0.48.05
# ⬇️ This isn't preferable, i'd rather pin a version. However
# it's quite hard to find a suitable candidate (https://hub.docker.com/r/browserless/chrome/tags)
# for arm64.
headless_chrome: latest
# Changelog: https://github.com/immich-app/immich/discussions/8930
immich: v1.123.0
monitoring:
# Changelog: https://github.com/prometheus/prometheus/blob/main/CHANGELOG.md
# Note that version 3.0.0 was just released, upgrading is probably necessary.
prometheus: 2.55.1
# Changelog: https://github.com/prometheus/node_exporter/blob/master/CHANGELOG.md
node_exporter: 1.8.2
# Changelog: https://github.com/prometheus/alertmanager/blob/main/CHANGELOG.md
alertmanager: 0.27.0
# Changelog: https://github.com/grafana/grafana/blob/main/CHANGELOG.md
grafana: 11.4.0
postgres:
# Docker version: https://hub.docker.com/_/postgres
self: 17.2-alpine
# Releases: https://github.com/prometheus-community/postgres_exporter/releases
prometheus_exporter: v0.16.0
# Releases: https://github.com/Kleinendorst/wedding/pkgs/container/wedding
wedding: 0.0.17
cloudflared: 2024.12.2