diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2d0e816f..590e3189 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,9 +53,7 @@
* Go 1.13.5
* Seconds field optional for schedule
-> :warning: **BREAKING CHANGES**
-> `image` field has been moved to `providers.static` in configuration file.
-> See [providers configuration](doc/configuration.md#providers) for more info.
+> :warning: See [**UPGRADE NOTES**](UPGRADE.md#1x--2x) for breaking changes.
## 1.4.1 (2019/10/20)
@@ -66,20 +64,10 @@
* Multi-platform Docker image
* Switch to GitHub Actions
-* :warning: Run Docker container as non-root user
-* :warning: Stop publishing Docker image on Quay
+* Stop publishing Docker image on Quay
* Go 1.12.10
* Use GOPROXY
-> :warning: **UPGRADE NOTES**
-> As the Docker container now runs as a non-root user, you have to first stop the container and change permissions to `data` volume:
-> ```
-> docker-compose stop
-> chown -R 1000:1000 data/
-> docker-compose pull
-> docker-compose up -d
-> ```
-
## 1.3.0 (2019/08/22)
* Add Linux service doc and sample
@@ -116,14 +104,7 @@
* Review config file structure
* Improve worker pool
-> :warning: **BREAKING CHANGES**
-> Some fields in configuration file has been changed:
-> * `registries` renamed `regopts`
-> * `items` renamed `image`
-> * `items[].image` renamed `image[].name`
-> * `items[].registry_id` renamed `image[].regopts_id`
-> * `watch.os` and `watch.arch` moved to `image[].os` and `image[].arch`
-> See README for more info.
+> :warning: See [**UPGRADE NOTES**](UPGRADE.md#0x--1x) for breaking changes.
## 0.5.0 (2019/06/09)
diff --git a/UPGRADE.md b/UPGRADE.md
new file mode 100644
index 00000000..28c6e80f
--- /dev/null
+++ b/UPGRADE.md
@@ -0,0 +1,70 @@
+# Upgrade notes
+
+## 2.x > 3.x
+
+
+
+## 1.x > 2.x
+
+`image` field has been moved to `providers.static` in configuration file:
+
+> **1.x**
+```yaml
+image:
+ - name: docker.io/crazymax/diun
+ watch_repo: true
+ max_tags: 10
+```
+
+> **2.x**
+```yaml
+providers:
+ static:
+ - name: docker.io/crazymax/diun
+ watch_repo: true
+ max_tags: 10
+```
+
+See [providers configuration](doc/configuration.md#providers) for more info.
+
+## 0.x > 1.x
+
+Some fields in configuration file has been changed:
+
+* `registries` renamed `regopts`
+* `items` renamed `image`
+* `items[].image` renamed `image[].name`
+* `items[].registry_id` renamed `image[].regopts_id`
+* `watch.os` and `watch.arch` moved to `image[].os` and `image[].arch`
+
+> **0.x**
+```yaml
+watch:
+ os: linux
+ arch: amd64
+
+registries:
+ someregistryoptions:
+ username: foo
+ password: bar
+ timeout: 20
+
+items:
+ - image: docker.io/crazymax/nextcloud:latest
+ registry_id: someregistryoptions
+```
+
+> **1.x**
+```yaml
+regopts:
+ someregistryoptions:
+ username: foo
+ password: bar
+ timeout: 20
+
+image:
+ - name: docker.io/crazymax/nextcloud:latest
+ regopts_id: someregistryoptions
+ os: linux
+ arch: amd64
+```