From 938b5dcc381987b681c4a3596d87bddce8b9c9b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Feb 2026 02:03:29 +0000 Subject: [PATCH] chore: backup infrastructure configurations [skip ci] --- .../logs/2026-02-26T02:35:13.868258+00:00 | 1 + .../logs/2026-02-26T03:35:16.452742+00:00 | 1 + .../logs/2026-02-26T04:35:19.120785+00:00 | 1 + .../logs/2026-02-26T05:35:21.710587+00:00 | 1 + .../logs/2026-02-26T06:35:24.291775+00:00 | 1 + .../logs/2026-02-26T07:35:26.840320+00:00 | 1 + .../logs/2026-02-26T08:35:29.497606+00:00 | 1 + .../logs/2026-02-26T09:35:32.039577+00:00 | 1 + .../logs/2026-02-26T10:35:34.588245+00:00 | 1 + .../logs/2026-02-26T11:35:37.121159+00:00 | 1 + .../logs/2026-02-26T12:35:39.652170+00:00 | 1 + .../logs/2026-02-26T13:35:42.188578+00:00 | 1 + .../logs/2026-02-26T14:35:44.691668+00:00 | 1 + .../logs/2026-02-26T15:35:47.225581+00:00 | 1 + .../logs/2026-02-26T16:35:49.793627+00:00 | 1 + .../logs/2026-02-26T17:35:52.357949+00:00 | 1 + .../logs/2026-02-26T18:35:54.900641+00:00 | 1 + .../logs/2026-02-26T19:35:57.483926+00:00 | 1 + .../logs/2026-02-26T20:36:00.381630+00:00 | 1 + .../logs/2026-02-26T21:36:02.942777+00:00 | 1 + .../logs/2026-02-26T22:36:05.505254+00:00 | 1 + .../logs/2026-02-26T23:36:08.088305+00:00 | 1 + .../logs/2026-02-27T00:36:10.718767+00:00 | 1 + .../logs/2026-02-27T01:36:13.298684+00:00 | 1 + nomad_backup/qbittorrent.json | 868 ++++++++++++++++++ 25 files changed, 892 insertions(+) create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T02:35:13.868258+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T03:35:16.452742+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T04:35:19.120785+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T05:35:21.710587+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T06:35:24.291775+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T07:35:26.840320+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T08:35:29.497606+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T09:35:32.039577+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T10:35:34.588245+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T11:35:37.121159+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T12:35:39.652170+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T13:35:42.188578+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T14:35:44.691668+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T15:35:47.225581+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T16:35:49.793627+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T17:35:52.357949+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T18:35:54.900641+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T19:35:57.483926+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T20:36:00.381630+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T21:36:02.942777+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T22:36:05.505254+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-26T23:36:08.088305+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-27T00:36:10.718767+00:00 create mode 100644 consul_backup/fitbit-garmin-sync/logs/2026-02-27T01:36:13.298684+00:00 create mode 100644 nomad_backup/qbittorrent.json diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T02:35:13.868258+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T02:35:13.868258+00:00 new file mode 100644 index 0000000..13f0bf3 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T02:35:13.868258+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T02:35:13.868258+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T03:35:16.452742+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T03:35:16.452742+00:00 new file mode 100644 index 0000000..34b6ecd --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T03:35:16.452742+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T03:35:16.452742+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T04:35:19.120785+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T04:35:19.120785+00:00 new file mode 100644 index 0000000..3fd8d8b --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T04:35:19.120785+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T04:35:19.120785+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T05:35:21.710587+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T05:35:21.710587+00:00 new file mode 100644 index 0000000..c196fa7 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T05:35:21.710587+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T05:35:21.710587+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T06:35:24.291775+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T06:35:24.291775+00:00 new file mode 100644 index 0000000..23ed620 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T06:35:24.291775+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T06:35:24.291775+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T07:35:26.840320+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T07:35:26.840320+00:00 new file mode 100644 index 0000000..2e6fcaa --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T07:35:26.840320+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T07:35:26.840320+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T08:35:29.497606+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T08:35:29.497606+00:00 new file mode 100644 index 0000000..ba8b1c5 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T08:35:29.497606+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T08:35:29.497606+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T09:35:32.039577+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T09:35:32.039577+00:00 new file mode 100644 index 0000000..535d0fa --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T09:35:32.039577+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T09:35:32.039577+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T10:35:34.588245+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T10:35:34.588245+00:00 new file mode 100644 index 0000000..fa11894 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T10:35:34.588245+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T10:35:34.588245+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T11:35:37.121159+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T11:35:37.121159+00:00 new file mode 100644 index 0000000..26e3249 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T11:35:37.121159+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T11:35:37.121159+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T12:35:39.652170+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T12:35:39.652170+00:00 new file mode 100644 index 0000000..8920f5c --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T12:35:39.652170+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T12:35:39.652170+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T13:35:42.188578+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T13:35:42.188578+00:00 new file mode 100644 index 0000000..1c235de --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T13:35:42.188578+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T13:35:42.188578+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T14:35:44.691668+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T14:35:44.691668+00:00 new file mode 100644 index 0000000..6f6bdfb --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T14:35:44.691668+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T14:35:44.691668+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T15:35:47.225581+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T15:35:47.225581+00:00 new file mode 100644 index 0000000..1777f12 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T15:35:47.225581+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T15:35:47.225581+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T16:35:49.793627+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T16:35:49.793627+00:00 new file mode 100644 index 0000000..834e489 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T16:35:49.793627+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T16:35:49.793627+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T17:35:52.357949+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T17:35:52.357949+00:00 new file mode 100644 index 0000000..985caff --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T17:35:52.357949+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T17:35:52.357949+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T18:35:54.900641+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T18:35:54.900641+00:00 new file mode 100644 index 0000000..19fc42c --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T18:35:54.900641+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T18:35:54.900641+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T19:35:57.483926+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T19:35:57.483926+00:00 new file mode 100644 index 0000000..060d8a6 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T19:35:57.483926+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T19:35:57.483926+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T20:36:00.381630+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T20:36:00.381630+00:00 new file mode 100644 index 0000000..cf0bcdd --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T20:36:00.381630+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T20:36:00.381630+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T21:36:02.942777+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T21:36:02.942777+00:00 new file mode 100644 index 0000000..fab7432 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T21:36:02.942777+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T21:36:02.942777+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T22:36:05.505254+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T22:36:05.505254+00:00 new file mode 100644 index 0000000..42c8efb --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T22:36:05.505254+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T22:36:05.505254+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-26T23:36:08.088305+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T23:36:08.088305+00:00 new file mode 100644 index 0000000..6d8e882 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-26T23:36:08.088305+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-26T23:36:08.088305+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-27T00:36:10.718767+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-27T00:36:10.718767+00:00 new file mode 100644 index 0000000..0b83c25 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-27T00:36:10.718767+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-27T00:36:10.718767+00:00"} \ No newline at end of file diff --git a/consul_backup/fitbit-garmin-sync/logs/2026-02-27T01:36:13.298684+00:00 b/consul_backup/fitbit-garmin-sync/logs/2026-02-27T01:36:13.298684+00:00 new file mode 100644 index 0000000..15b34c8 --- /dev/null +++ b/consul_backup/fitbit-garmin-sync/logs/2026-02-27T01:36:13.298684+00:00 @@ -0,0 +1 @@ +{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-27T01:36:13.298684+00:00"} \ No newline at end of file diff --git a/nomad_backup/qbittorrent.json b/nomad_backup/qbittorrent.json new file mode 100644 index 0000000..42da342 --- /dev/null +++ b/nomad_backup/qbittorrent.json @@ -0,0 +1,868 @@ +{ + "Affinities": [ + { + "LTarget": "${attr.unique.hostname}", + "Operand": "=", + "RTarget": "odroid3", + "Weight": 100 + } + ], + "AllAtOnce": false, + "Constraints": [ + { + "LTarget": "${attr.unique.hostname}", + "Operand": "regexp", + "RTarget": "odroid.*" + }, + { + "LTarget": "${attr.kernel.name}", + "Operand": "=", + "RTarget": "linux" + } + ], + "ConsulNamespace": "", + "CreateIndex": 14443737, + "Datacenters": [ + "dc1" + ], + "DispatchIdempotencyToken": "", + "Dispatched": false, + "ID": "qbittorrent", + "JobModifyIndex": 14471912, + "Meta": null, + "ModifyIndex": 14471914, + "Multiregion": null, + "Name": "qbittorrent", + "Namespace": "default", + "NodePool": "default", + "NomadTokenID": "", + "ParameterizedJob": null, + "ParentID": "", + "Payload": null, + "Periodic": null, + "Priority": 50, + "Region": "global", + "Spreads": null, + "Stable": false, + "Status": "dead", + "StatusDescription": "", + "SubmitTime": 1772143423611323000, + "TaskGroups": [ + { + "Affinities": null, + "Constraints": null, + "Consul": null, + "Count": 1, + "Disconnect": null, + "EphemeralDisk": { + "Migrate": false, + "SizeMB": 300, + "Sticky": false + }, + "MaxClientDisconnect": null, + "Meta": null, + "Migrate": { + "HealthCheck": "checks", + "HealthyDeadline": 300000000000, + "MaxParallel": 1, + "MinHealthyTime": 10000000000 + }, + "Name": "qbittorrent", + "Networks": [ + { + "ReservedPorts": [ + { + "HostNetwork": "default", + "Label": "qbittorrent_51413", + "To": 6881, + "Value": 6881 + }, + { + "HostNetwork": "default", + "Label": "shadowsocks", + "To": 8388, + "Value": 8388 + }, + { + "HostNetwork": "default", + "Label": "socks", + "To": 1080, + "Value": 1080 + }, + { + "HostNetwork": "default", + "Label": "http_proxy", + "To": 8888, + "Value": 8888 + }, + { + "HostNetwork": "default", + "Label": "http_admin", + "To": 8000, + "Value": 8000 + }, + { + "HostNetwork": "default", + "Label": "qbittorrent_80", + "To": 8080, + "Value": 8080 + } + ] + } + ], + "PreventRescheduleOnLost": false, + "ReschedulePolicy": { + "Attempts": 0, + "Delay": 30000000000, + "DelayFunction": "exponential", + "Interval": 0, + "MaxDelay": 3600000000000, + "Unlimited": true + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "Scaling": null, + "Services": null, + "ShutdownDelay": null, + "Spreads": null, + "StopAfterClientDisconnect": null, + "Tasks": [ + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "Config": { + "volumes": [ + "/etc/localtime:/etc/localtime", + "/mnt/syncthing/mullvad:/vpn" + ], + "devices": [ + { + "container_path": "/dev/net/tun", + "host_path": "/dev/net/tun" + } + ], + "image": "qmcgaw/gluetun", + "memory_hard_limit": "1024", + "ports": [ + "shadowsocks", + "http_proxy", + "http_admin", + "qbittorrent_51413", + "qbittorrent_80", + "socks" + ], + "cap_add": [ + "NET_ADMIN", + "NET_BIND_SERVICE" + ] + }, + "Constraints": [ + { + "LTarget": "${attr.consul.version}", + "Operand": "semver", + "RTarget": ">= 1.8.0" + } + ], + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": { + "VPN_TYPE": "wireguard", + "VPN_SERVICE_PROVIDER": "airvpn", + "SERVER_COUNTRIES": "Canada", + "SERVER_CITIES": "Montreal", + "HEALTH_SUCCESS_WAIT_DURATION": "30s", + "WIREGUARD_PRIVATE_KEY": "EF39fCd2/ycBG88qrk0Wgzak4wDLwq9kxLpzNM2se0s=", + "WEBUI_PORT": "8081", + "SHADOWSOCKS_PASSWORD": "farscape5", + "HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE": "{\"auth\":\"none\"}", + "HTTPPROXY": "on", + "FIREWALL_DEBUG": "on", + "WIREGUARD_PRESHARED_KEY": "utk1Fqp8N1T20qwof6xGxIDPnrOO49tM6+nQBCBC9OY=", + "SHADOWSOCKS": "on", + "DOT": "off", + "WIREGUARD_ADDRESSES": "10.152.125.142/32", + "FIREWALL_INPUT_PORTS": "8080,1080", + "FIREWALL_VPN_INPUT_PORTS": "54547", + "HEALTH_TARGET_ADDRESS": "1.1.1.1", + "DOT_PROVIDERS": "cloudflare,google,quad9,quadrant" + }, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": { + "Hook": "prestart", + "Sidecar": true + }, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "qbittorrent-vpn", + "Resources": { + "CPU": 100, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 250, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": [ + { + "Address": "", + "AddressMode": "auto", + "CanaryMeta": null, + "CanaryTags": null, + "Checks": null, + "Cluster": "default", + "Connect": null, + "EnableTagOverride": false, + "Identity": null, + "Meta": null, + "Name": "qbittorrent", + "Namespace": "default", + "OnUpdate": "require_healthy", + "PortLabel": "qbittorrent_80", + "Provider": "consul", + "TaggedAddresses": null, + "Tags": [ + "global", + "tools" + ], + "TaskName": "qbittorrent-vpn", + "Weights": null + }, + { + "Address": "", + "AddressMode": "auto", + "CanaryMeta": null, + "CanaryTags": null, + "Checks": null, + "Cluster": "default", + "Connect": null, + "EnableTagOverride": false, + "Identity": null, + "Meta": null, + "Name": "qbittorrent-admin", + "Namespace": "default", + "OnUpdate": "require_healthy", + "PortLabel": "http_admin", + "Provider": "consul", + "TaggedAddresses": null, + "Tags": [ + "global" + ], + "TaskName": "qbittorrent-vpn", + "Weights": null + }, + { + "Address": "", + "AddressMode": "auto", + "CanaryMeta": null, + "CanaryTags": null, + "Checks": null, + "Cluster": "default", + "Connect": null, + "EnableTagOverride": false, + "Identity": null, + "Meta": null, + "Name": "sp", + "Namespace": "default", + "OnUpdate": "require_healthy", + "PortLabel": "socks", + "Provider": "consul", + "TaggedAddresses": null, + "Tags": [ + "global", + "ovpn-openpyn", + "enable_gocast", + "gocast_vip=192.168.1.242/32", + "gocast_nat=tcp:1080:1080", + "gocast_nat=udp:1080:1080" + ], + "TaskName": "qbittorrent-vpn", + "Weights": null + } + ], + "ShutdownDelay": 0, + "Templates": null, + "User": "", + "Vault": null, + "VolumeMounts": null + }, + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "Config": { + "image": "serjs/go-socks5-proxy", + "network_mode": "container:qbittorrent-vpn-${NOMAD_ALLOC_ID}", + "memory_hard_limit": 256, + "devices": [ + { + "host_path": "/dev/net/tun", + "container_path": "/dev/net/tun" + } + ] + }, + "Constraints": null, + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": { + "REQUIRE_AUTH": "false" + }, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": null, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "dante", + "Resources": { + "CPU": 64, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 128, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": null, + "ShutdownDelay": 0, + "Templates": null, + "User": "", + "Vault": null, + "VolumeMounts": null + }, + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "Config": { + "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", + "/configbackup/", + "/config/", + "--delete-before" + ], + "memory_hard_limit": "2048" + }, + "Constraints": null, + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": null, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": { + "Hook": "prestart", + "Sidecar": false + }, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "init", + "Resources": { + "CPU": 20, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 20, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": null, + "ShutdownDelay": 0, + "Templates": null, + "User": "", + "Vault": null, + "VolumeMounts": null + }, + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "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", + "--delete", + "/config/", + "/configbackup/" + ] + }, + "Constraints": null, + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": null, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": { + "Hook": "poststop", + "Sidecar": false + }, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "finalsync", + "Resources": { + "CPU": 20, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 128, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": null, + "ShutdownDelay": 0, + "Templates": null, + "User": "", + "Vault": null, + "VolumeMounts": null + }, + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "Config": { + "args": [ + "client" + ], + "memory_hard_limit": "2048", + "image": "ghcr.io/sstent/rsync", + "volumes": [ + "/mnt/configs/:/configs", + "/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup" + ] + }, + "Constraints": null, + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": { + "CRON_TASK_1": "25 8-20 * * * chmod a-w /configs/${NOMAD_GROUP_NAME}/ ; rsync -avz --delete /configs/${NOMAD_GROUP_NAME}/ /configbackup/; chmod a+w /configs/${NOMAD_GROUP_NAME}/;" + }, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": { + "Hook": "poststart", + "Sidecar": true + }, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "sync", + "Resources": { + "CPU": 20, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 20, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": null, + "ShutdownDelay": 0, + "Templates": null, + "User": "", + "Vault": null, + "VolumeMounts": null + }, + { + "Actions": null, + "Affinities": null, + "Artifacts": null, + "CSIPluginConfig": null, + "Config": { + "network_mode": "container:qbittorrent-vpn-${NOMAD_ALLOC_ID}", + "memory_hard_limit": 2048, + "volumes": [ + "/mnt/Public/Downloads/news/qbittorrent:/downloads/", + "/mnt/configs/qbittorrent:/config", + "/mnt/Archive/seeding:/archiveseeding", + "/mnt/odroid5:/odroid5" + ], + "sysctl": [ + { + "net.core.somaxconn": "4096" + } + ], + "image": "linuxserver/qbittorrent:5.1.2" + }, + "Constraints": [ + { + "LTarget": "${attr.consul.version}", + "Operand": "semver", + "RTarget": ">= 1.8.0" + } + ], + "Consul": null, + "DispatchPayload": null, + "Driver": "docker", + "Env": { + "TZ": "EST5EDT", + "PUID": "1000", + "PGID": "1000", + "WEBUI_PORT": "8080" + }, + "Identities": null, + "Identity": { + "Audience": [ + "nomadproject.io" + ], + "ChangeMode": "", + "ChangeSignal": "", + "Env": false, + "File": false, + "Filepath": "", + "Name": "default", + "ServiceName": "", + "TTL": 0 + }, + "KillSignal": "", + "KillTimeout": 5000000000, + "Kind": "", + "Leader": false, + "Lifecycle": null, + "LogConfig": { + "Disabled": false, + "MaxFileSizeMB": 10, + "MaxFiles": 10 + }, + "Meta": null, + "Name": "qbittorrent", + "Resources": { + "CPU": 128, + "Cores": 0, + "Devices": null, + "DiskMB": 0, + "IOPS": 0, + "MemoryMB": 256, + "MemoryMaxMB": 0, + "NUMA": null, + "Networks": null, + "SecretsMB": 0 + }, + "RestartPolicy": { + "Attempts": 8, + "Delay": 10000000000, + "Interval": 1200000000000, + "Mode": "delay", + "RenderTemplates": false + }, + "ScalingPolicies": null, + "Schedule": null, + "Services": [ + { + "Address": "", + "AddressMode": "auto", + "CanaryMeta": null, + "CanaryTags": null, + "Checks": [ + { + "AddressMode": "", + "Args": [ + "/local/qbithealth.sh" + ], + "Body": "", + "CheckRestart": { + "Grace": 120000000000, + "IgnoreWarnings": false, + "Limit": 10 + }, + "Command": "/bin/bash", + "Expose": false, + "FailuresBeforeCritical": 0, + "FailuresBeforeWarning": 0, + "GRPCService": "", + "GRPCUseTLS": false, + "Header": null, + "InitialStatus": "", + "Interval": 120000000000, + "Method": "", + "Name": "check_up", + "Notes": "", + "OnUpdate": "require_healthy", + "Path": "", + "PortLabel": "", + "Protocol": "", + "SuccessBeforePassing": 0, + "TLSServerName": "", + "TLSSkipVerify": false, + "TaskName": "qbittorrent", + "Timeout": 10000000000, + "Type": "script" + } + ], + "Cluster": "default", + "Connect": null, + "EnableTagOverride": false, + "Identity": null, + "Meta": null, + "Name": "qb", + "Namespace": "default", + "OnUpdate": "require_healthy", + "PortLabel": "qbittorrent_80", + "Provider": "consul", + "TaggedAddresses": null, + "Tags": [ + "global", + "ovpn-openpyn", + "enable_gocast", + "gocast_vip=192.168.1.244/32", + "gocast_nat=tcp:8080:8080", + "gocast_nat=udp:8080:8080" + ], + "TaskName": "qbittorrent", + "Weights": null + } + ], + "ShutdownDelay": 0, + "Templates": [ + { + "ChangeMode": "noop", + "ChangeScript": null, + "ChangeSignal": "", + "DestPath": "local/qbithealth.sh", + "EmbeddedTmpl": " #!/bin/bash\n curl -sL http://127.0.0.1:8080/api/v2/transfer/info | grep connected || exit;\n", + "Envvars": false, + "ErrMissingKey": false, + "Gid": null, + "LeftDelim": "{{", + "Once": false, + "Perms": "0777", + "RightDelim": "}}", + "SourcePath": "", + "Splay": 5000000000, + "Uid": null, + "VaultGrace": 0, + "Wait": null + } + ], + "User": "", + "Vault": null, + "VolumeMounts": null + } + ], + "Update": { + "AutoPromote": false, + "AutoRevert": false, + "Canary": 0, + "HealthCheck": "task_states", + "HealthyDeadline": 240000000000, + "MaxParallel": 1, + "MinHealthyTime": 10000000000, + "ProgressDeadline": 600000000000, + "Stagger": 90000000000 + }, + "Volumes": null + } + ], + "Type": "service", + "UI": null, + "Update": { + "AutoPromote": false, + "AutoRevert": false, + "Canary": 0, + "HealthCheck": "", + "HealthyDeadline": 0, + "MaxParallel": 1, + "MinHealthyTime": 0, + "ProgressDeadline": 0, + "Stagger": 90000000000 + }, + "VaultNamespace": "", + "Version": 4, + "VersionTag": null, + "meta": { + "index": "14471914" + } +} \ No newline at end of file