Sys-ctl-mtn-cert-deploy Role¶
Description: Systemd service and timer for syncing Let’s Encrypt certificates into Docker Compose NGINX stacks with hot-reload
Variables¶
author: Kevin Veen-Birkenbach
description: Systemd service and timer for syncing Let’s Encrypt certificates into Docker Compose NGINX stacks with hot-reload
license: Infinito.Nexus Community License (Non-Commercial)
company: Kevin Veen-Birkenbach https://www.veen.world
galaxy_tags: [‘nginx’, ‘letsencrypt’, ‘docker’, ‘systemd’]
issue_tracker_url: https://s.infinito.nexus/issues
min_ansible_version: 2.9
platforms: [{‘name’: ‘ArchLinux’, ‘versions’: [‘all’]}, {‘name’: ‘Debian’, ‘versions’: [‘all’]}, {‘name’: ‘EL’, ‘versions’: [‘all’]}, {‘name’: ‘Fedora’, ‘versions’: [‘all’]}, {‘name’: ‘Ubuntu’, ‘versions’: [‘all’]}]
README¶
Docker Compose Certificate Sync Service¶
Description¶
Keeps Docker Compose services updated with fresh Let’s Encrypt certificates via a systemd oneshot service and timer.
Overview¶
Installs a small script and a systemd unit that copy certificates into your Compose project and trigger an NGINX hot-reload (fallback: restart) to minimize downtime.
Cosmos¶
The diagram places Docker Compose Certificate Sync Service in the Infinito.Nexus cosmos: the components it deploys (capabilities), the central services it consumes (dependencies), and its outward reach (federation and bridged external networks).
flowchart LR
subgraph role [sys-ctl-mtn-cert-deploy 💻]
svc_cert_deploy["cert-deploy"]
endSolid 1:1 edges are fixed relationships; dashed 0..1 edges are
conditional (enabled only in matching deployments); red 0..0 edges
are turned off in this role. Node markers show the role’s deploy modes
(💻 host, 🐳 compose, 🐝 swarm); ❌ marks a service that is explicitly
turned off, and ⚙️ an Ansible role dependency declared in
meta/main.yml.
Features¶
Automatic certificate sync into the Compose project
Mailu-friendly filenames (
key.pem,cert.pem)NGINX hot-reload if available, otherwise restart
Runs on a schedule you define
Further Resources¶
Credits¶
Implemented by Kevin Veen-Birkenbach. Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).