From 3aef787b5d3d24b3ca179612ff3cf9a56761af3a Mon Sep 17 00:00:00 2001 From: GeorgeWebberley Date: Mon, 2 Feb 2026 21:07:14 +0100 Subject: [PATCH] Added README --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b5751e7 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# Watchtower Deployment + +This repository contains the configuration for **Watchtower**, a service that automates the process of updating Docker containers. It monitors running containers and watches for changes to the images that those containers were originally started from. + +## 🏗️ Architecture Overview + +* **Service**: Watchtower +* **Socket Integration**: Mounts `/var/run/docker.sock` to monitor and restart containers. +* **Cleanup**: Configured to remove old images after updating (`WATCHTOWER_CLEANUP=true`). +* **Update Interval**: Polls for updates once every 24 hours (`86400` seconds). +* **Metrics API**: Enables an HTTP API for integration with dashboards like **Homepage**. + +## 📂 Repository Structure + +* `docker-compose.yaml`: Service definition including environment mappings and volume mounts. +* `.woodpecker.yaml`: Automation for deployment to the host server. +* `.env.example`: Template for the required API token. +* `.gitignore`: Configured to ignore the active `.env` file. + +## 📊 Dashboard Integration (Homepage) + +This instance is configured to expose metrics for the [Homepage](https://gethomepage.dev) dashboard. + +1. **API Token**: Defined via `WATCHTOWER_HTTP_API_TOKEN`. +2. **Access**: Exposed on port `8080` (Internal/Host only). +3. **Usage**: Use the token defined in your `.env` to allow Homepage to display update status and container statistics. + +## 🚀 Getting Started + +### 1. Environment Configuration + +Create your local environment file: +```bash +cp .env.example .env +``` +Edit .env and set your HOMEPAGE_VAR_WATCHTOWER_KEY to a secure random string. + +### 2. Manual Deployment + +```Bash +docker compose up -d +``` + +## 🔄 CI/CD Workflow + +The Woodpecker CI pipeline triggers on every push to main. It: +- Syncs the repository configuration to the server. +- Recreates the Watchtower container with the latest image. + +## ⚠️ Notes +- Network: Unlike other services in this stack, Watchtower does not use the web_traffic network as it does not require a public interface via Caddy. +- API Security: Ensure port 8080 is not exposed to the public internet; it is intended for local metrics polling. \ No newline at end of file