summaryrefslogtreecommitdiff
path: root/watchtower
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-07-09 21:49:56 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-07-09 21:49:56 -0700
commit1d043702ef136e8f2e516c5304a57be5718f1f6f (patch)
tree9b3ad070f11dad5994c58acd41a15db8043745aa /watchtower
Initial commit: docker compose files for all self-hosted servicesHEADmaster
12 services: adguard, ampache, azuracast, flood, glance, glances, grafana, immich, invidious, jellyfin, openwebui, watchtower Each service includes a docker-compose.yml, README.md with setup instructions, and .env.example where applicable.
Diffstat (limited to 'watchtower')
-rw-r--r--watchtower/.env.example6
-rw-r--r--watchtower/README.md25
-rw-r--r--watchtower/docker-compose.yml19
3 files changed, 50 insertions, 0 deletions
diff --git a/watchtower/.env.example b/watchtower/.env.example
new file mode 100644
index 0000000..a5e5686
--- /dev/null
+++ b/watchtower/.env.example
@@ -0,0 +1,6 @@
+SMTP_FROM=watchtower@example.com
+SMTP_TO=you@example.com
+SMTP_SERVER=mail.example.com
+SMTP_PORT=587
+SMTP_USER=you@example.com
+SMTP_PASS=your_smtp_password_here
diff --git a/watchtower/README.md b/watchtower/README.md
new file mode 100644
index 0000000..1d3bc8b
--- /dev/null
+++ b/watchtower/README.md
@@ -0,0 +1,25 @@
+# Watchtower
+
+Automatically updates running Docker containers to the latest image versions.
+
+## Setup
+
+1. Copy `.env.example` to `.env`:
+ ```
+ cp .env.example .env
+ ```
+
+2. Edit `.env` with your SMTP credentials for email notifications.
+
+3. Start:
+ ```
+ docker compose up -d
+ ```
+
+## What to Configure
+
+- **`.env`** — All SMTP settings. Watchtower will send email notifications after updates (or if updates fail).
+- **Schedule** — `WATCHTOWER_SCHEDULE=0 0 4 * * 0` runs every Sunday at 4 AM. Uses 6-field cron. Change as desired.
+- **Docker socket** — Mounts `/var/run/docker.sock`. Required for Watchtower to manage containers.
+- **Cleanup** — `WATCHTOWER_CLEANUP=true` removes old images after updates. Set to `false` if you want to keep them.
+- **Scope labels** — To exclude a container from auto-updates, add `com.centurylinklabs.watchtower.scope=ignore` to its container labels.
diff --git a/watchtower/docker-compose.yml b/watchtower/docker-compose.yml
new file mode 100644
index 0000000..73a1c60
--- /dev/null
+++ b/watchtower/docker-compose.yml
@@ -0,0 +1,19 @@
+services:
+ watchtower:
+ image: nickfedor/watchtower
+ container_name: watchtower
+ restart: unless-stopped
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ environment:
+ - WATCHTOWER_SCHEDULE=0 0 4 * * 0 # Sundays 4am (6-field cron)
+ - WATCHTOWER_CLEANUP=true # remove old images after update
+ - WATCHTOWER_INCLUDE_RESTARTING=true
+ - WATCHTOWER_NOTIFICATIONS=email
+ - WATCHTOWER_NOTIFICATION_EMAIL_FROM=${SMTP_FROM}
+ - WATCHTOWER_NOTIFICATION_EMAIL_TO=${SMTP_TO}
+ - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=${SMTP_SERVER}
+ - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=${SMTP_PORT}
+ - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=${SMTP_USER}
+ - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=${SMTP_PASS}
+ - WATCHTOWER_NOTIFICATION_EMAIL_USE_SSL_SMTP=true # for STARTTLS on 587