Diun v3 to v4¶
Timeout value as duration¶
Only accept duration as timeout value (10
becomes 10s
)
Registry options enhancements¶
Configuration of registry options has changed:
v3
regopts:
myregistry:
username: fii
password: bor
insecure_tls: true
timeout: 5s
docker.io:
username: foo
password: bar
docker.io/crazymax:
username_file: /run/secrets/username
password_file: /run/secrets/password
v4
regopts:
- name: "myregistry"
username: fii
password: bor
insecureTLS: true
timeout: 5s
- name: "docker.io"
selector: image
username: foo
password: bar
- name: "docker.io/crazymax"
selector: image
usernameFile: /run/secrets/username
passwordFile: /run/secrets/password
Also, registry options can now be resolved automatically based on image name. Take a look at the Registry options configuration for more details.
Configuration transposed into environment variables¶
All configuration is now transposed into environment variables. Take a look at the documentation for more details.
DIUN_DB
env var has been renamed DIUN_DB_PATH
to follow environment variables transposition.
All fields in configuration are now camelCased¶
In order to enable transposition into environmental variables, all fields in configuration are now camelCased:
notif.mail.insecure_skip_verify
>notif.mail.insecureSkipVerify
notif.rocketchat.user_id
>notif.rocketchat.userID
watch.first_check_notif
>watch.firstCheckNotif
- ...
v3
db:
path: diun.db
watch:
workers: 10
schedule: "0 */6 * * *"
first_check_notif: false
notif:
amqp:
host: localhost
port: 5672
username: guest
password: guest
exchange:
queue: queue
gotify:
endpoint: http://gotify.foo.com
token: Token123456
priority: 1
timeout: 10
mail:
host: localhost
port: 25
ssl: false
insecure_skip_verify: false
username:
password:
from:
to:
rocketchat:
endpoint: http://rocket.foo.com:3000
channel: "#general"
user_id: abcdEFGH012345678
token: Token123456
timeout: 10
script:
cmd: "myprogram"
args:
- "--anarg"
- "another"
slack:
webhook_url: https://hooks.slack.com/services/ABCD12EFG/HIJK34LMN/01234567890abcdefghij
teams:
webhook_url: https://outlook.office.com/webhook/ABCD12EFG/HIJK34LMN/01234567890abcdefghij
telegram:
token: aabbccdd:11223344
chat_ids:
- 123456789
- 987654321
webhook:
endpoint: http://webhook.foo.com/sd54qad89azd5a
method: GET
headers:
Content-Type: application/json
Authorization: Token123456
timeout: 10
regopts:
myregistry:
username: fii
password: bor
insecure_tls: true
timeout: 5s
docker.io:
username: foo
password: bar
docker.io/crazymax:
username_file: /run/secrets/username
password_file: /run/secrets/password
providers:
docker:
watch_stopped: true
swarm:
watch_by_default: true
file:
directory: ./imagesdir
v4
db:
path: diun.db
watch:
workers: 10
schedule: "0 */6 * * *"
firstCheckNotif: false
notif:
amqp:
host: localhost
port: 5672
username: guest
password: guest
queue: queue
gotify:
endpoint: http://gotify.foo.com
token: Token123456
priority: 1
timeout: 10s
mail:
host: localhost
port: 25
ssl: false
insecureSkipVerify: false
from: diun@example.com
to: webmaster@example.com
rocketchat:
endpoint: http://rocket.foo.com:3000
channel: "#general"
userID: abcdEFGH012345678
token: Token123456
timeout: 10s
script:
cmd: "myprogram"
args:
- "--anarg"
- "another"
slack:
webhookURL: https://hooks.slack.com/services/ABCD12EFG/HIJK34LMN/01234567890abcdefghij
teams:
webhookURL: https://outlook.office.com/webhook/ABCD12EFG/HIJK34LMN/01234567890abcdefghij
telegram:
token: aabbccdd:11223344
chatIDs:
- 123456789
- 987654321
webhook:
endpoint: http://webhook.foo.com/sd54qad89azd5a
method: GET
headers:
content-type: application/json
authorization: Token123456
timeout: 10s
regopts:
- name: "myregistry"
username: fii
password: bor
insecureTLS: true
timeout: 5s
- name: "docker.io"
selector: image
username: foo
password: bar
- name: "docker.io/crazymax"
selector: image
usernameFile: /run/secrets/username
passwordFile: /run/secrets/password
providers:
docker:
watchStopped: true
swarm:
watchByDefault: true
kubernetes:
namespaces:
- default
- production
file:
directory: ./imagesdir
/diun.yml
not loaded by default in Docker image¶
Following the transposition of the configuration into environment variables, the configuration file /diun.yml
is no longer loaded by default in the official Docker image.
If you want to load a configuration file through the Docker image you will have to declare the
CONFIG
environment variable with serve
command pointing to the assigned
configuration file:
Tip
This is no longer required since version 4.2.0. Now configuration file can be loaded from default places
version: "3.5"
services:
diun:
image: crazymax/diun:latest
container_name: diun
command: serve
volumes:
- "./data:/data"
- "./diun.yml:/diun.yml:ro"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "CONFIG=/diun.yml"
- "TZ=Europe/Paris"
- "LOG_LEVEL=info"
- "LOG_JSON=false"
restart: always
Created: 2020-06-20 03:39:38