SurfSenseSurfSense Docs
Docker Installation

Updating

How to update your SurfSense Docker deployment

Auto-updates every 24 hours. If you used the install script, Watchtower is already running. No extra setup needed.

For manual Docker Compose installs, start Watchtower separately:

docker run -d --name watchtower \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  nickfedor/watchtower \
  --label-enable \
  --interval 86400

Watchtower One-Time Update

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
  nickfedor/watchtower --run-once \
  --label-filter "com.docker.compose.project=surfsense"

Use nickfedor/watchtower. The original containrrr/watchtower is no longer maintained and may fail with newer Docker versions.

Manual Update

cd surfsense   # or SurfSense/docker if you cloned manually
docker compose pull && docker compose up -d

Database migrations are applied automatically on every startup.


Migrating from the All-in-One Container

If you were previously using docker-compose.quickstart.yml (the legacy all-in-one surfsense container), your data lives in a surfsense-data volume and requires a one-time migration before switching to the current setup. PostgreSQL has been upgraded from version 14 to 17, so a simple volume swap will not work.

See the full step-by-step guide: Migrate from the All-in-One Container.

On this page