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 = <