chore: backup infrastructure configurations [skip ci]

This commit is contained in:
github-actions[bot]
2026-02-08 02:08:34 +00:00
parent 8814f0bdc9
commit 828fa9d62d
36 changed files with 356 additions and 96 deletions

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T02:14:25.243733+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T03:14:27.920000+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T04:14:30.755687+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T05:14:33.919792+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T06:14:37.193524+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T07:14:40.299998+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T08:14:43.455727+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T09:14:46.795707+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T10:14:49.556551+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T11:14:52.503726+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T12:14:55.925228+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T13:14:58.587750+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T14:15:01.984666+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T15:15:04.897815+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T16:15:07.745367+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T17:15:10.643596+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T18:15:14.315898+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T19:15:17.386296+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T20:15:20.537235+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T21:15:23.535730+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T22:15:26.283729+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-07T23:15:28.899086+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-08T00:15:31.485154+00:00"}

View File

@@ -0,0 +1 @@
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-08T01:15:34.069542+00:00"}

View File

@@ -1,23 +1,23 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDxjCCA0ygAwIBAgISBdSUOjdLe//tmcsLEMMMN2FyMAoGCCqGSM49BAMDMDIx MIIDwDCCA0agAwIBAgISBmoy3agj0JSULya57ONt6jduMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NzAeFw0yNjAxMzEyMzA1NDZaFw0yNjA1MDEyMzA1NDVaMCAxHjAcBgNVBAMMFSou ODAeFw0yNjAyMDcyMzA1NDlaFw0yNjA1MDgyMzA1NDhaMCAxHjAcBgNVBAMMFSou
ZmJsZWFnaC5kdWNrZG5zLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEMp ZmJsZWFnaC5kdWNrZG5zLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEMp
g8Wlki34WWSjip7jID1y5+Cj0VNJ5ASEWpfdz0UZaPWyysNeAPJskQoFN7kTvEhb g8Wlki34WWSjip7jID1y5+Cj0VNJ5ASEWpfdz0UZaPWyysNeAPJskQoFN7kTvEhb
NWRDMb+PnJoI+r4dKZyjggJSMIICTjAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw NWRDMb+PnJoI+r4dKZyjggJMMIICSDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHZq FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHZq
MAGYe8+YzwC4/4L9xSaUEidqMB8GA1UdIwQYMBaAFK5IntyHHUSgb9qi5WB0BHjC MAGYe8+YzwC4/4L9xSaUEidqMB8GA1UdIwQYMBaAFI8NE6L2Ln7RUGwzGDhdWY4j
nACAMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL2U3LmkubGVu cpHKMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL2U4LmkubGVu
Y3Iub3JnLzBHBgNVHREEQDA+ghUqLmZibGVhZ2guZHVja2Rucy5vcmeCJWdpdGVh Y3Iub3JnLzBHBgNVHREEQDA+ghUqLmZibGVhZ2guZHVja2Rucy5vcmeCJWdpdGVh
LnNlcnZpY2UuZGMxLmZibGVhZ2guZHVja2Rucy5vcmcwEwYDVR0gBAwwCjAIBgZn LnNlcnZpY2UuZGMxLmZibGVhZ2guZHVja2Rucy5vcmcwEwYDVR0gBAwwCjAIBgZn
gQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2U3LmMubGVuY3Iub3JnLzEx gQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2U4LmMubGVuY3Iub3JnLzEx
NS5jcmwwggELBgorBgEEAdZ5AgQCBIH8BIH5APcAfQDjI43yjaKI4KrgrPD6kMmF MS5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwCWl2S/VViXrfdDh2g3CEJ3
8La/9dKlJ7AB/BxEWMS26AAAAZwWg7YLAAgAAAUAMRzGGgQDAEYwRAIgFItFD0W9 6fA61fak8zZuRqQ/D8qpxgAAAZw6kEfFAAAEAwBIMEYCIQDMumKShULNSYMUrwU4
czHJF3sECfFN0hRJJcbtAJT4p6ghQjkWa6ACIDOBr7th0ZgpDG/fzrH9bG8wr6Wi slQJfb++ThtpEcU66p+0guasGwIhAMgSl1jSALqYVARNyDMegI5betAzyax0fe+7
JSa6sSmW/bvZBkyRAHYA0W6ppWgHfmY1oD83pd28A6U8QRIU1IgY9ekxsyPLlQQA zWmz29BAAHYAZBHEbKQS7KeJHKICLgC8q08oB9QeNSer6v7VA8l9zfAAAAGcOpBP
AAGcFoO9VwAABAMARzBFAiBeMZNrXcoX11e+RecDiNaYwYqTzelZpiwLETX/Pnmu SQAABAMARzBFAiBfLa8HrFXso+hNe7L5FgW6bQvP0CcPuEW0tp1qz3M6uAIhAPzl
GwIhAPzHkN+72ODm8PbP49Hv2c3tyyLnQEarozBrbJJK9Wm1MAoGCCqGSM49BAMD UgLRxt3MTumFDcYOYmjbyk2mrNeAzs+cLAadg92nMAoGCCqGSM49BAMDA2gAMGUC
A2gAMGUCMEbaDw2ePaFk3FKr+86G/DOUKa+isuLvVy8uNEpl0cy8xc/gsKaszsfT MG4Vsy5j+CetlfzOwkkJ8ReixuYjF6QtrhWmC25709xyN/q3crQ8UOjEvbxEJKdh
JgWBTIXMigIxAJnpwfvMjLKrCMKcMHIBlMlEy8HrA64QnUAkEMYBq25gVLE1nXCR ugIxAL6y/55ULqfFAvfioaa8UtT/J5aBBa7swRKj6NXu2V/zS5GjvYfJKWDEibz5
RIQtQpRiAIBW0A== a2SoGA==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@@ -1,27 +1,27 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
+VUwFj9tmWxyR/M= u1igv3OefnWjSQ==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@@ -1,50 +1,50 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDxjCCA0ygAwIBAgISBdSUOjdLe//tmcsLEMMMN2FyMAoGCCqGSM49BAMDMDIx MIIDwDCCA0agAwIBAgISBmoy3agj0JSULya57ONt6jduMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NzAeFw0yNjAxMzEyMzA1NDZaFw0yNjA1MDEyMzA1NDVaMCAxHjAcBgNVBAMMFSou ODAeFw0yNjAyMDcyMzA1NDlaFw0yNjA1MDgyMzA1NDhaMCAxHjAcBgNVBAMMFSou
ZmJsZWFnaC5kdWNrZG5zLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEMp ZmJsZWFnaC5kdWNrZG5zLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEMp
g8Wlki34WWSjip7jID1y5+Cj0VNJ5ASEWpfdz0UZaPWyysNeAPJskQoFN7kTvEhb g8Wlki34WWSjip7jID1y5+Cj0VNJ5ASEWpfdz0UZaPWyysNeAPJskQoFN7kTvEhb
NWRDMb+PnJoI+r4dKZyjggJSMIICTjAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw NWRDMb+PnJoI+r4dKZyjggJMMIICSDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHZq FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHZq
MAGYe8+YzwC4/4L9xSaUEidqMB8GA1UdIwQYMBaAFK5IntyHHUSgb9qi5WB0BHjC MAGYe8+YzwC4/4L9xSaUEidqMB8GA1UdIwQYMBaAFI8NE6L2Ln7RUGwzGDhdWY4j
nACAMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL2U3LmkubGVu cpHKMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL2U4LmkubGVu
Y3Iub3JnLzBHBgNVHREEQDA+ghUqLmZibGVhZ2guZHVja2Rucy5vcmeCJWdpdGVh Y3Iub3JnLzBHBgNVHREEQDA+ghUqLmZibGVhZ2guZHVja2Rucy5vcmeCJWdpdGVh
LnNlcnZpY2UuZGMxLmZibGVhZ2guZHVja2Rucy5vcmcwEwYDVR0gBAwwCjAIBgZn LnNlcnZpY2UuZGMxLmZibGVhZ2guZHVja2Rucy5vcmcwEwYDVR0gBAwwCjAIBgZn
gQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2U3LmMubGVuY3Iub3JnLzEx gQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2U4LmMubGVuY3Iub3JnLzEx
NS5jcmwwggELBgorBgEEAdZ5AgQCBIH8BIH5APcAfQDjI43yjaKI4KrgrPD6kMmF MS5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwCWl2S/VViXrfdDh2g3CEJ3
8La/9dKlJ7AB/BxEWMS26AAAAZwWg7YLAAgAAAUAMRzGGgQDAEYwRAIgFItFD0W9 6fA61fak8zZuRqQ/D8qpxgAAAZw6kEfFAAAEAwBIMEYCIQDMumKShULNSYMUrwU4
czHJF3sECfFN0hRJJcbtAJT4p6ghQjkWa6ACIDOBr7th0ZgpDG/fzrH9bG8wr6Wi slQJfb++ThtpEcU66p+0guasGwIhAMgSl1jSALqYVARNyDMegI5betAzyax0fe+7
JSa6sSmW/bvZBkyRAHYA0W6ppWgHfmY1oD83pd28A6U8QRIU1IgY9ekxsyPLlQQA zWmz29BAAHYAZBHEbKQS7KeJHKICLgC8q08oB9QeNSer6v7VA8l9zfAAAAGcOpBP
AAGcFoO9VwAABAMARzBFAiBeMZNrXcoX11e+RecDiNaYwYqTzelZpiwLETX/Pnmu SQAABAMARzBFAiBfLa8HrFXso+hNe7L5FgW6bQvP0CcPuEW0tp1qz3M6uAIhAPzl
GwIhAPzHkN+72ODm8PbP49Hv2c3tyyLnQEarozBrbJJK9Wm1MAoGCCqGSM49BAMD UgLRxt3MTumFDcYOYmjbyk2mrNeAzs+cLAadg92nMAoGCCqGSM49BAMDA2gAMGUC
A2gAMGUCMEbaDw2ePaFk3FKr+86G/DOUKa+isuLvVy8uNEpl0cy8xc/gsKaszsfT MG4Vsy5j+CetlfzOwkkJ8ReixuYjF6QtrhWmC25709xyN/q3crQ8UOjEvbxEJKdh
JgWBTIXMigIxAJnpwfvMjLKrCMKcMHIBlMlEy8HrA64QnUAkEMYBq25gVLE1nXCR ugIxAL6y/55ULqfFAvfioaa8UtT/J5aBBa7swRKj6NXu2V/zS5GjvYfJKWDEibz5
RIQtQpRiAIBW0A== a2SoGA==
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
+VUwFj9tmWxyR/M= u1igv3OefnWjSQ==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@@ -0,0 +1 @@
{"hostname":"45411fdf596d","advertise-url":"http://192.168.4.227:8081"}

View File

@@ -0,0 +1,22 @@
job "check-firewall" {
datacenters = ["dc1"]
type = "batch"
group "check" {
count = 1
constraint {
attribute = "${attr.unique.hostname}"
value = "odroid7"
}
task "check" {
driver = "docker"
config {
image = "busybox"
network_mode = "host"
command = "sh"
args = ["-c", "nc -zv 127.0.0.1 20202 && echo 'Listening'"]
}
}
}
}

View File

@@ -0,0 +1,25 @@
job "cleanup-litefs-all" {
datacenters = ["dc1"]
type = "batch"
group "cleanup" {
count = 4
constraint {
attribute = "${attr.unique.hostname}"
operator = "regexp"
value = "odroid6|odroid7|odroid8|opti1"
}
task "clean" {
driver = "docker"
config {
image = "busybox"
volumes = [
"/mnt/configs/navidrome_litefs:/mnt/data"
]
command = "sh"
args = ["-c", "rm -rf /mnt/data/* && echo \"Cleaned $(hostname)\""]
}
}
}
}

View File

@@ -0,0 +1,26 @@
job "host-check" {
datacenters = ["dc1"]
type = "batch"
constraint {
attribute = "${attr.unique.hostname}"
value = "odroid7"
}
group "check" {
task "ss" {
driver = "raw_exec"
config {
command = "ss"
args = ["-tln"]
}
}
task "ufw" {
driver = "raw_exec"
config {
command = "ufw"
args = ["status"]
}
}
}
}

View File

@@ -31,7 +31,8 @@ job "jfs-controller" {
} }
env { env {
POD_NAME = "csi-controller" POD_NAME = "csi-controller"
POD_NAMESPACE = "default"
} }
} }
} }
} }

View File

@@ -3,25 +3,24 @@ job "jfs-node" {
type = "system" type = "system"
group "nodes" { group "nodes" {
network { network {
port "metrics" { port "metrics" {
static = 9567 static = 9567
to = 8080 to = 8080
} }
} }
# Add this inside your "juicefs-plugin" task in jfs-node.nomad service {
service { name = "juicefs-metrics"
name = "juicefs-metrics" port = "metrics"
port = "metrics" # References the static port 9567 defined in your network block tags = ["prometheus"]
tags = ["prometheus"] check {
check { type = "http"
type = "http" path = "/metrics"
path = "/metrics" interval = "10s"
interval = "10s" timeout = "2s"
timeout = "2s" }
} }
}
task "juicefs-plugin" { task "juicefs-plugin" {
driver = "docker" driver = "docker"
@@ -29,12 +28,12 @@ service {
config { config {
image = "juicedata/juicefs-csi-driver:v0.31.1" image = "juicedata/juicefs-csi-driver:v0.31.1"
memory_hard_limit = 2048 memory_hard_limit = 2048
ports = ["metrics"] ports = ["metrics"]
args = [ args = [
"--endpoint=unix://csi/csi.sock", "--endpoint=unix://csi/csi.sock",
"--logtostderr", "--logtostderr",
"--v=5", "--v=5",
"--nodeid=${node.unique.name}", # Better than hardcoded "test" "--nodeid=${node.unique.name}",
"--by-process=true", "--by-process=true",
] ]
@@ -53,7 +52,7 @@ ports = ["metrics"]
} }
env { env {
POD_NAME = "csi-node" POD_NAME = "csi-node"
AWS_REGION = "garage" POD_NAMESPACE = "default"
# Aggregates metrics from children onto the 8080 port # Aggregates metrics from children onto the 8080 port
JFS_METRICS = "0.0.0.0:8080" JFS_METRICS = "0.0.0.0:8080"
# Ensures mounts run as background processes managed by the driver # Ensures mounts run as background processes managed by the driver
@@ -61,4 +60,4 @@ ports = ["metrics"]
} }
} }
} }
} }

View File

@@ -0,0 +1,108 @@
job "navidrome-litefs" {
datacenters = ["dc1"]
type = "service"
constraint {
attribute = "${attr.kernel.name}"
value = "linux"
}
group "navidrome" {
count = 2
update {
max_parallel = 1
min_healthy_time = "30s"
healthy_deadline = "5m"
auto_revert = false
}
constraint {
distinct_hosts = true
}
network {
# Request static ports on the host
port "http" {
static = 4533
to = 4533 # Direct to Navidrome
}
port "litefs" {
static = 20202
to = 20202 # Maps host 20202 to container 20202 (LiteFS Replication)
}
port "health" {
static = 8082
to = 8082 # Handled by nc loop in litefs.yml exec
}
}
task "navidrome" {
driver = "docker"
config {
image = "gitea.service.dc1.fbleagh.duckdns.org/sstent/navidrome-litefs:latest"
privileged = true # Still needed for FUSE
ports = ["http", "litefs", "health"]
volumes = [
"/mnt/configs/navidrome_litefs:/var/lib/litefs",
"/mnt/Public/configs/navidrome:/shared_data",
"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro",
"/mnt/Public/Downloads/news/slskd/downloads:/music/slskd:ro",
"/mnt/Public/Downloads/incoming_music:/music/incomingmusic:ro"
]
}
env {
# LiteFS Config
CONSUL_URL = "http://${attr.unique.network.ip-address}:8500"
ADVERTISE_IP = "${attr.unique.network.ip-address}"
PORT = "8080" # Internal proxy port (unused by direct routing but kept for image compat)
# Navidrome Config
ND_DATAFOLDER = "/local/data"
ND_CACHEFOLDER = "/shared_data/cache"
ND_CONFIGFILE = "/local/data/navidrome.toml"
# Database is on the LiteFS FUSE mount
ND_DBPATH = "/data/navidrome.db?_busy_timeout=30000&_journal_mode=WAL&_foreign_keys=on&synchronous=NORMAL"
ND_SCANSCHEDULE = "0"
ND_SCANNER_FSWATCHER_ENABLED = "false"
ND_LOGLEVEL = "info"
ND_REVERSEPROXYWHITELIST = "0.0.0.0/0"
ND_REVERSEPROXYUSERHEADER = "X-Forwarded-User"
}
service {
name = "navidrome"
tags = [
"navidrome",
"web",
"traefik.enable=true",
"urlprefix-/navidrome",
"tools",
"traefik.http.routers.navidromelan.rule=Host(`navidrome.service.dc1.consul`)",
"traefik.http.routers.navidromewan.rule=Host(`m.fbleagh.duckdns.org`)",
"traefik.http.routers.navidromewan.middlewares=dex@consulcatalog",
"traefik.http.routers.navidromewan.tls=true",
]
port = "http"
check {
type = "http"
port = "health"
path = "/"
interval = "10s"
timeout = "2s"
}
}
resources {
cpu = 500
memory = 512
}
}
}
}

View File

@@ -0,0 +1,20 @@
job "nomad-config-check" {
datacenters = ["dc1"]
type = "batch"
group "check" {
count = 1
constraint {
attribute = "${attr.unique.hostname}"
value = "odroid7"
}
task "config" {
driver = "raw_exec"
config {
command = "grep"
args = ["-r", "disable_script_checks", "/etc/nomad.d/"]
}
}
}
}

View File

@@ -0,0 +1,34 @@
job "port-discovery" {
datacenters = ["dc1"]
type = "batch"
group "scan" {
count = 1
constraint {
attribute = "${attr.unique.hostname}"
value = "odroid6"
}
task "scan" {
driver = "docker"
config {
image = "busybox"
network_mode = "host"
command = "sh"
args = ["local/scan.sh"]
}
template {
data = <<EOF
#!/bin/sh
TARGET="192.168.4.227"
for p in 8085 8086 8087; do
echo "Testing $p..."
nc -zv -w 3 $TARGET $p 2>&1 | grep -q "refused" && echo "MATCH: $p is AVAILABLE (Refused)"
nc -zv -w 3 $TARGET $p 2>&1 | grep -q "succeeded" && echo "BUSY: $p is IN USE"
done
EOF
destination = "local/scan.sh"
}
}
}
}