151 lines
3.7 KiB
HCL
151 lines
3.7 KiB
HCL
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.routers.gonicwan.tls.certresolver=myresolver"
|
|
|
|
]
|
|
// "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"
|
|
}
|
|
|
|
} #####
|
|
|
|
|
|
}
|
|
} |