Files
computer-playbook/roles/update-docker
Kevin Veen-Birkenbach 231fd567b3 feat(frontend): rename inj roles to sys-front-*, add sys-svc-cdn, cache-busting lookup
Introduce sys-svc-cdn (cdn_paths/cdn_urls/cdn_dirs) and ensure CDN directories + latest symlink.

Rename sys-srv-web-inj-* → sys-front-inj-*; update includes/templates; serve shared/per-app CSS & JS via CDN.

Add lookup_plugins/local_mtime_qs.py for mtime-based cache busting; split CSS into default.css/bootstrap.css + optional per-app style.css.

CSP: use style-src-elem; drop unsafe-inline for styles. Services: fix SYS_SERVICE_ALL_ENABLED bool and controlled flush.

BREAKING CHANGE: role names changed; replace includes and references accordingly.

Conversation: https://chatgpt.com/share/68b55494-9ec4-800f-b559-44707029141d
2025-09-01 10:10:23 +02:00
..
2025-03-17 05:10:43 +01:00

Update Docker

Description

This role updates Docker Compose instances by checking for changes in Docker image digests and applying updates if necessary. It utilizes a Python script to handle git pulls and Docker image pulls, and rebuilds containers when changes are detected.

Overview

The role performs the following:

  • Deploys a Python script to check for Docker image updates.
  • Configures a systemd service to run the update script.
  • Restarts the Docker update service upon configuration changes.
  • Supports additional procedures for specific Docker applications (e.g., Discourse, Mastodon, Nextcloud).

Purpose

The role is designed to ensure that Docker images remain current by automatically detecting changes and rebuilding containers as needed. This helps maintain a secure and efficient container environment.

Features

  • Docker Image Monitoring: Checks for changes in image digests.
  • Automated Updates: Pulls new images and rebuilds containers when necessary.
  • Service Management: Configures and restarts a systemd service to handle updates.
  • Application-Specific Procedures: Includes hooks for updating specific Docker applications.

Credits 📝

It was created with the help of ChatGPT. The conversation is available here