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
vars_files:
- vault.yml
- versions.yml
roles:
# 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.

View file

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

View file

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

View file

@ -1,7 +1,7 @@
---
services:
changedetection-server:
image: "docker.io/dgtlmoon/changedetection.io:{{ changedetection_version }}"
image: "docker.io/dgtlmoon/changedetection.io:{{ versions.changedetection.self }}"
hostname: changedetection
restart: always
ports:
@ -12,7 +12,7 @@ services:
- PLAYWRIGHT_DRIVER_URL=ws://browserless-chrome:3000
# See configuration from: https://www.youtube.com/watch?v=o_iG4Wunh98
browserless-chrome:
image: "browserless/chrome:{{ browserless_chrome_version }}"
image: "browserless/chrome:{{ versions.changedetection.headless_chrome }}"
hostname: browserless-chrome
restart: always
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
become: true
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
become: true
ansible.builtin.command:

View file

@ -9,7 +9,7 @@ DB_DATA_LOCATION={{ immich_database_location }}
TZ=Europe/Amsterdam
# 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
# 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_database_location: '/bulk/immich_database'

View file

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

View file

@ -1,6 +1,5 @@
---
# Prometheus
prometheus_version: "2.54.1"
prometheus_targets:
prometheus:
- targets:
@ -37,14 +36,12 @@ prometheus_alertmanager_config:
- targets:
- raspberry-pi-1.kleinendorst.info:9093
# Node exporter
node_exporter_version: "1.8.2"
node_exporter_enabled_collectors:
- systemd
- {"textfile": {"directory": "{{ node_exporter_textfile_dir }}"}}
- processes
node_exporter_web_listen_address: 127.0.0.1:9100
# Alertmanager
alertmanager_version: "0.27.0"
alertmanager_web_listen_address: 127.0.0.1:9093
# Telegram configuration inspired by this source:
# 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:
receiver: telegram
# Grafana
grafana_version: "11.2.0"
grafana_username: grafana

View file

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

View file

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

View file

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