Skip to content

Updating Nautical

Updating Nautical (and any container) is a balance between convenience, reliability and security.

Updating your container can bring new features, bug fixes and security patches, but can also introduce unintended behavior.

Understanding Semantic Versioning

Semver is a means to communicate the changes to an application just by looking at the version number. Nautical uses Semver like this.

vMAJOR.MINOR.PATCH, for example: Docker Image Version (latest semver)

  • MAJOR - A large change that breaks/reworks an existing feature.
    • This usually means you will need to change the Nautical configuration.
  • MINOR - Add functionality in a backward compatible manner.
    • Everything should continue working without changes to the Nautical configuration.
  • PATCH - A small change such as updating a dependency, log output, or minor fix.
    • From the user perspective, nothing will have changed, but under the hood, small improvements were made.

Manual Updates

To manually update Nautical, simply re-deploy using either of these configs, but specify the latest version of the Nautical. Currently, the latest version of Nautical is Docker Image Version (latest semver). (do not add the v)

This will need to be done each time a new version is released.

services:
  nautical-backup:
    image: minituff/nautical-backup:2.9.3 # Change this to the latest version
    # Rest of config...
docker run -d \
  --name nautical-backup \
  -v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
  -v /config:/config \ #(9)!
  -v /source:/app/source \ #(2)!
  -v /destination:/app/destination \ #(3)!
  minituff/nautical-backup:2.9.3

  # Update the version number in the line above
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.

Automatic Updates

Watchtower is an excellent tool to keep your Docker containers updated.

While convenient, automatic updates may break things. For this reason we recommend only automatically updating to the latest PATCH version.

These examples only specify the Semver vMAJOR.MINOR numbers, leaving PATCH out--this means that Watchtower will update the PATCH number if available.

services:
  nautical-backup:
    image: minituff/nautical-backup:2.9 #(7)!
    # Rest of config...

  watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: nautical-backup # (9)! 
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.

docker run -d \
  --name nautical-backup \
  -v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
  -v /config:/config \ #(9)!
  -v /source:/app/source \ #(2)!
  -v /destination:/app/destination \ #(3)!
  minituff/nautical-backup:2.9 #(7)!

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  nautical-backup #(9)!
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.

These examples specify the Semver vMAJOR number, leaving MINOR PATCH out--this means that Watchtower will update MINOR and PATCH versions if available.

services:
  nautical-backup:
    image: minituff/nautical-backup:2
    # Rest of config...

  watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: nautical-backup # (9)! 
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.

docker run -d \
  --name nautical-backup \
  -v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
  -v /config:/config \ #(9)!
  -v /source:/app/source \ #(2)!
  -v /destination:/app/destination \ #(3)!
  minituff/nautical-backup:2

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  nautical-backup #(9)!
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.

If you're really feeling like living on the bleeding edge. You can use the latest tag to ensure you are always up to date. This will get the latest Semver MAJOR, MINOR, and PATCH updates.

This will most likely break things at some point

If you go this route, just ensure you aren't using Nautical for anything mission critical, and be prepared to either help troubleshoot or wait for a new version with a bug fix.

This is an example of using Watchtower to keep Nautical on the latest version.

services:
  nautical-backup:
    image: minituff/nautical-backup:latest
    # Rest of config...

  watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: nautical-backup # (9)! 
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.

docker run -d \
  --name nautical-backup \
  -v /var/run/docker.sock:/var/run/docker.sock \ #(1)!
  -v /config:/config \ #(9)!
  -v /source:/app/source \ #(2)!
  -v /destination:/app/destination \ #(3)!
  minituff/nautical-backup:latest

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  nautical-backup #(9)!
  1. Mount the docker socket. Used to start and stop containers. See the Docker Socket Proxy page for more information.
  2. Mount the source directory.
  3. Mount the destination directory.
  4. TIP: Avoid using "quotes" in the enviornment variables.
  5. Scheduled time to run backups. Use this website to help pick a CRON schedule.
    • Default = 0 4 * * * - Every day at 4am.
  6. Containers to skip for backup. A comma seperated list.
  7. It is recommended to avoid using the latest tag.
    • This project is under active development, using a exact tag can help avoid updates breaking things.
  8. Set the time-zone. See this Wikipedia page for a list of available time-zones.
  9. Configuration folder. This directory will will Nautical's internal database which stores metrics and history.
  10. Which containers to use.

    Remove this line to update all containers.