From 6852d026cca8672b6ed50bb5775d57c750f09ce5 Mon Sep 17 00:00:00 2001
From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com>
Date: Sat, 21 Feb 2026 04:38:01 +0530
Subject: [PATCH] docs: enhance Docker installation instructions with
Watchtower auto-update option
---
README.md | 6 ++++
.../content/docs/docker-installation.mdx | 32 +++++++++----------
2 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/README.md b/README.md
index 9085fec19..9056c27f2 100644
--- a/README.md
+++ b/README.md
@@ -89,6 +89,12 @@ docker run -d -p 3000:3000 -p 8000:8000 -p 5133:5133 -v surfsense-data:/data --n
After starting, open [http://localhost:3000](http://localhost:3000) in your browser.
+**Update (Automatic updates with Watchtower):**
+
+```bash
+docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once surfsense
+```
+
For Docker Compose, manual installation, and other deployment options, check the [docs](https://www.surfsense.com/docs/).
### How to Realtime Collaborate (Beta)
diff --git a/surfsense_web/content/docs/docker-installation.mdx b/surfsense_web/content/docs/docker-installation.mdx
index 22962143e..767240206 100644
--- a/surfsense_web/content/docs/docker-installation.mdx
+++ b/surfsense_web/content/docs/docker-installation.mdx
@@ -131,7 +131,22 @@ To update SurfSense to the latest version, you can use either of the following m
Your data is safe! The `surfsense-data` volume persists across updates, and database migrations are applied automatically on every startup.
-**Option 1: Manual Update**
+**Option 1: Using Watchtower (one-time auto-update)**
+
+[Watchtower](https://github.com/nicholas-fedor/watchtower) can automatically pull the latest image, stop the old container, and restart it with the same options:
+
+```bash
+docker run --rm \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ nickfedor/watchtower \
+ --run-once surfsense
+```
+
+
+Use the `nickfedor/watchtower` fork. The original `containrrr/watchtower` is no longer maintained and may fail with newer Docker versions.
+
+
+**Option 2: Manual Update**
```bash
# Stop and remove the current container
@@ -148,21 +163,6 @@ docker run -d -p 3000:3000 -p 8000:8000 -p 5133:5133 \
ghcr.io/modsetter/surfsense:latest
```
-**Option 2: Using Watchtower (one-time auto-update)**
-
-[Watchtower](https://github.com/nicholas-fedor/watchtower) can automatically pull the latest image, stop the old container, and restart it with the same options:
-
-```bash
-docker run --rm \
- -v /var/run/docker.sock:/var/run/docker.sock \
- nickfedor/watchtower \
- --run-once surfsense
-```
-
-
-Use the `nickfedor/watchtower` fork. The original `containrrr/watchtower` is no longer maintained and may fail with newer Docker versions.
-
-
If you used Docker Compose for the quick start, updating is simpler:
```bash