Files
NomadBackup/nomad_backup/acme.hcl
2025-11-21 21:10:40 +00:00

99 lines
2.4 KiB
HCL

job "acme" {
datacenters = ["dc1"]
type = "batch"
periodic {
cron = "@weekly"
prohibit_overlap = true
}
group "acme" {
restart {
attempts = 1
delay = "30s"
}
task "acme" {
driver = "docker"
config {
image = "neilpang/acme.sh"
entrypoint = ["/local/acme_wrapper.sh"]
volumes = [
"/mnt/configs/${NOMAD_GROUP_NAME}:/acme.sh",
]
}
env {
DEDYN_TOKEN="JPwQpUiWGkKHSkmGEC4YAeGiGFki"
DuckDNS_Token="e4b5ca33-1f4d-494b-b06d-6dd4600df662"
CONSUL_URL="${attr.unique.network.ip-address}"
}
template {
change_mode = "noop"
data = "{{ key \"scripts/acme.sh\" }}"
destination = "local/acme_wrapper.sh"
perms = 0777
}
resources {
cpu = 256
memory = 64
}
}
task "init" {
driver = "docker"
lifecycle {
hook = "prestart"
sidecar = false
}
config {
image = "ghcr.io/sstent/rsync"
memory_hard_limit = 2048
volumes = [
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks",
]
args = ["flock", "-x", "/locks/${NOMAD_GROUP_NAME}_rsync.lock", "rsync", "-avz","--delete-excluded","--exclude=renewal","--exclude='live'","--exclude='archive'","--exclude='keys'","--exclude='csr'", "/configbackup/", "/config/", "--delete-before"]
}
resources {
cpu = 20 # 500 MHz
memory = 20 # 128MB
}
} #end init task
task "finalsync" {
driver = "docker"
lifecycle {
hook = "poststop"
}
config {
// image = "pebalk/rsync"
image = "ghcr.io/sstent/rsync"
memory_hard_limit = 2048
volumes = [
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks",
]
args = ["flock", "-x", "/locks/${NOMAD_GROUP_NAME}_rsync.lock", "rsync", "-av","--delete-excluded","--exclude=renewal","--exclude='live'","--exclude='archive'","--exclude='keys'","--exclude='csr'", "/config/", "/configbackup/","--remove-source-files"]
}
resources {
cpu = 20 # 500 MHz
memory = 20 # 128MB
}
} #end finalsync task
}
}