chore: backup Nomad jobs [skip ci]
This commit is contained in:
150
nomad_backup/gonic.hcl
Normal file
150
nomad_backup/gonic.hcl
Normal file
@@ -0,0 +1,150 @@
|
||||
job "gonic" {
|
||||
datacenters = ["dc1"]
|
||||
type = "service"
|
||||
|
||||
|
||||
|
||||
group "gonic" {
|
||||
count = 1
|
||||
task "gonic" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "sentriz/gonic"
|
||||
port_map {
|
||||
http = 80
|
||||
}
|
||||
volumes = [
|
||||
"/mnt/configs/gonic/data:/data",
|
||||
"/mnt/configs/gonic/cache:/cache",
|
||||
"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro",
|
||||
"/mnt/Public/Downloads/incoming_music:/music/incomingmusic:ro",
|
||||
"/mnt/Public/Downloads/podcasts:/podcasts",
|
||||
"/mnt/Public/Downloads/musicplaylists:/musicplaylists",
|
||||
|
||||
]
|
||||
}
|
||||
env{
|
||||
GONIC_SCAN_INTERVAL = "120"
|
||||
GONIC_MUSIC_PATH = "/music"
|
||||
GONIC_PODCAST_PATH = "/podcasts"
|
||||
GONIC_PLAYLISTS_PATH = "/musicplaylists"
|
||||
}
|
||||
resources {
|
||||
cpu = 100 # 100 MHz
|
||||
memory = 256 # 128 MB
|
||||
network {
|
||||
port "http" {
|
||||
static = "4747"
|
||||
}
|
||||
}
|
||||
}
|
||||
service {
|
||||
name = "gonic"
|
||||
tags = [
|
||||
"gonic",
|
||||
"web",
|
||||
"urlprefix-/gonic",
|
||||
"backend",
|
||||
"traefik.http.routers.goniclan.rule=Host(`gonic.service.dc1.consul`)",
|
||||
"traefik.http.routers.gonicwan.rule=Host(`mg.fbleagh.duckdns.org`)",
|
||||
"traefik.http.routers.gonicwan.tls=true",
|
||||
|
||||
]
|
||||
// "traefik.http.middlewares.gonic_auth.basicauth.users=admin:$2y$05$cJGONoS0BFTeBUXqmETikeI14QhLDKIDkYuPdA1umIOC129grVMAm",
|
||||
port = "http"
|
||||
meta {
|
||||
ALLOC = "${NOMAD_ALLOC_ID}"
|
||||
}
|
||||
check {
|
||||
type = "tcp"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
}
|
||||
} #end gonic
|
||||
|
||||
task "init-manual" {
|
||||
driver = "docker"
|
||||
lifecycle {
|
||||
hook = "prestart"
|
||||
sidecar = false
|
||||
}
|
||||
config {
|
||||
memory_hard_limit = "2048"
|
||||
|
||||
image = "ghcr.io/sstent/rsync"
|
||||
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","--exclude=Backups","/configbackup/","/config/","--delete-before"]
|
||||
}
|
||||
resources {
|
||||
cpu = 20 # 500 MHz
|
||||
memory = 20 # 128MB
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
task "finalsync-manual" {
|
||||
driver = "docker"
|
||||
lifecycle {
|
||||
hook = "poststop"
|
||||
}
|
||||
config {
|
||||
memory_hard_limit = "2048"
|
||||
|
||||
image = "ghcr.io/sstent/rsync"
|
||||
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","/config/","/configbackup/"]
|
||||
}
|
||||
resources {
|
||||
cpu = 20 # 500 MHz
|
||||
memory = 20 # 128MB
|
||||
}
|
||||
}
|
||||
|
||||
task "db-sync" {
|
||||
driver = "docker"
|
||||
lifecycle {
|
||||
hook = "poststart"
|
||||
sidecar = true
|
||||
}
|
||||
config {
|
||||
memory_hard_limit = "2048"
|
||||
|
||||
image = "ghcr.io/sstent/rsync"
|
||||
volumes = [
|
||||
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
|
||||
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
|
||||
]
|
||||
|
||||
// args = ["/usr/local/bin/litestream", "replicate", "-config","/local/litestream.yml"]
|
||||
}
|
||||
resources {
|
||||
cpu = 20 # 500 MHz
|
||||
memory = 20 # 128MB
|
||||
}
|
||||
template {
|
||||
data = <<EOH
|
||||
dbs:
|
||||
- path: /data/gonic.db
|
||||
replicas:
|
||||
- path: /configbackup
|
||||
EOH
|
||||
|
||||
destination = "local/litestream.yml"
|
||||
}
|
||||
|
||||
} #####
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user