80 Zeilen
Kein EOL
2,5 KiB
Markdown
80 Zeilen
Kein EOL
2,5 KiB
Markdown
## Automatic update
|
||
|
||
An update script in your mailcow-dockerized directory will take care of updates.
|
||
|
||
But use it with caution! If you think you made a lot of changes to the mailcow code, you should use the manual update guide below.
|
||
|
||
Run the update script:
|
||
```
|
||
./update.sh
|
||
```
|
||
|
||
If it needs to, it will ask you how you wish to proceed.
|
||
Merge errors will be reported.
|
||
Some minor conflicts will be auto-corrected (in favour for the mailcow-dockerized repository code).
|
||
|
||
### Options
|
||
|
||
```
|
||
# Options can be combined
|
||
|
||
# - Check for updates and show changes
|
||
./update.sh --check
|
||
|
||
# - Do not start mailcow after applying an update
|
||
./update.sh --skip-start
|
||
|
||
# - Skip ICMP Check to public DNS resolvers (Use it only if you´ve blocked any ICMP Connections to your mailcow machine)
|
||
./update.sh --skip-ping-check
|
||
|
||
# - Skips the Docker-Compose update process, update is done by the user manually
|
||
./update.sh --no-update-compose
|
||
|
||
# - Force update (unattended, but unsupported, use at own risk)
|
||
./update.sh --force
|
||
|
||
# - Run garbage collector to cleanup old image tags and exit
|
||
./update.sh --gc
|
||
|
||
# - Update with merge strategy option "ours" instead of "theirs"
|
||
# This will **solve conflicts** when merging in favor for your local changes and should be avoided. Local changes will always be kept, unless we changed file XY, too.
|
||
./update.sh --ours
|
||
|
||
# - Don't update, but prefetch images and exit
|
||
./update.sh --prefetch
|
||
```
|
||
|
||
### I forgot what I changed before running update.sh
|
||
|
||
See `git log --pretty=oneline | grep -i "before update"`, you will have an output similar to this:
|
||
|
||
```
|
||
22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
|
||
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
|
||
```
|
||
|
||
Run `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` to see what changed.
|
||
|
||
### Can I roll back?
|
||
|
||
Yes.
|
||
|
||
See the topic above, instead of a diff, you run checkout:
|
||
|
||
```
|
||
docker-compose down
|
||
# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID
|
||
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
||
docker-compose pull
|
||
docker-compose up -d
|
||
```
|
||
|
||
### Hooks
|
||
|
||
You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](../manual-guides/u_e-update-hooks.md) for more details.
|
||
|
||
## Update Cycle
|
||
|
||
- We schedule a monthly release cycle for a major update at the first tuesday of the month.
|
||
- The releases are numbered like this: `YYYY-MM` (e.g. `2022-05`)
|
||
- Fixes for a main Update will be stated as "Revisions" like a,b,c (e.g. `2022-05a`, `2022-05b` etc.) |