first commit

This commit is contained in:
2025-11-21 13:07:40 -08:00
parent d9d1933934
commit fe8d4976ed
137 changed files with 23869 additions and 0 deletions

View File

@@ -0,0 +1,385 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13570366,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "acme",
"JobModifyIndex": 13570366,
"Meta": null,
"ModifyIndex": 13570366,
"Multiregion": null,
"Name": "acme",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": {
"Enabled": true,
"ProhibitOverlap": true,
"Spec": "@weekly",
"SpecType": "cron",
"Specs": [],
"TimeZone": "UTC"
},
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1738335438469388686,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "acme",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 1,
"Delay": 30000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}:/acme.sh"
],
"entrypoint": [
"/local/acme_wrapper.sh"
],
"image": "neilpang/acme.sh"
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"DuckDNS_Token": "e4b5ca33-1f4d-494b-b06d-6dd4600df662",
"CONSUL_URL": "${attr.unique.network.ip-address}",
"DEDYN_TOKEN": "JPwQpUiWGkKHSkmGEC4YAeGiGFki"
},
"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": "acme",
"Resources": {
"CPU": 256,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 64,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 1,
"Delay": 30000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "noop",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/acme_wrapper.sh",
"EmbeddedTmpl": "{{ key \"scripts/acme.sh\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"flock",
"-x",
"/locks/${NOMAD_GROUP_NAME}_rsync.lock",
"rsync",
"-avz",
"--delete-excluded",
"--exclude=renewal",
"--exclude='live'",
"--exclude='archive'",
"--exclude='keys'",
"--exclude='csr'",
"/configbackup/",
"/config/",
"--delete-before"
],
"image": "ghcr.io/sstent/rsync",
"memory_hard_limit": 2048.0,
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks"
]
},
"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": 1,
"Delay": 30000000000,
"Interval": 86400000000000,
"Mode": "fail",
"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",
"memory_hard_limit": 2048.0,
"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-excluded",
"--exclude=renewal",
"--exclude='live'",
"--exclude='archive'",
"--exclude='keys'",
"--exclude='csr'",
"/config/",
"/configbackup/",
"--remove-source-files"
]
},
"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": 20,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 1,
"Delay": 30000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,304 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13571978,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "auth",
"JobModifyIndex": 13770263,
"Meta": null,
"ModifyIndex": 13990955,
"Multiregion": null,
"Name": "auth",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1748145867863720703,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "auth",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"port_map": [
{
"auth": 4181.0
}
],
"image": "thomseddon/traefik-forward-auth:2-arm",
"volumes": [
"/etc/localtime:/etc/localtime:ro"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"CONFIG": "/local/config.ini",
"LIFETIME": "31536000",
"WHITELIST": "stuart.stent@gmail.com,stephen.bunt@gmail.com",
"COOKIE_DOMAIN": "fbleagh.duckdns.org",
"PROVIDERS_GOOGLE_CLIENT_ID": "807888907647-uog95jmiolsuh6ql1t8jm53l1jvuajck.apps.googleusercontent.com",
"PROVIDERS_GOOGLE_CLIENT_SECRET": "B8bDri5mFvGv-Ghzbt8fLj4W",
"SECRET": "ladskfdjmqwermnnbasfnmldas"
},
"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": "fwdauth",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 64,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "auth",
"Value": 4181
}
]
}
],
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"dex\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "fwdauth",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "dex",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "auth",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"fwdauth",
"web",
"traefik.http.routers.dex.rule=Host(`fwdauth.fbleagh.duckdns.org`,`fwdauth.fbleagh.dedyn.io`)",
"traefik.http.routers.dex.entrypoints=websecure",
"traefik.http.routers.dex.tls=true",
"traefik.http.middlewares.dex.forwardauth.address=http://dex.service.dc1.consul:4181",
"traefik.http.middlewares.dex.forwardauth.trustForwardHeader=true",
"traefik.http.middlewares.dex.forwardauth.authResponseHeaders=X-Forwarded-User",
"traefik.http.routers.auth.middlewares=dex",
"traefik.http.routers.traefik-forward-auth.middlewares=dex"
],
"TaskName": "fwdauth",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/config.ini",
"EmbeddedTmpl": "{{ key \"Dex\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 2,
"VersionTag": null
}

View File

@@ -0,0 +1,406 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13940845,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "calendar-proxy",
"JobModifyIndex": 13940997,
"Meta": null,
"ModifyIndex": 13991837,
"Multiregion": null,
"Name": "calendar-proxy",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1755792931244089317,
"TaskGroups": [
{
"Affinities": null,
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": "web",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 80
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 25000000000,
"Interval": 300000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"calendar-proxy\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "/health",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "",
"Timeout": 3000000000,
"Type": "http"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "calendar-proxy",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"traefik.enable=true",
"traefik.http.routers.calendar-proxy.rule=Host(`mail.fbleagh.duckdns.org`)",
"traefik.http.routers.calendar-proxy.entrypoints=web"
],
"TaskName": "",
"Weights": null
}
],
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"local/nginx.conf:/etc/nginx/nginx.conf",
"local/app:/var/www/html"
],
"image": "nginx:alpine",
"ports": [
"http"
]
},
"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": true
},
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "nginx",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 25000000000,
"Interval": 300000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/nginx.conf",
"EmbeddedTmpl": "events {\n worker_connections 1024;\n}\n\nhttp {\n include /etc/nginx/mime.types;\n default_type application/octet-stream;\n \n sendfile on;\n keepalive_timeout 65;\n \n upstream php-fpm {\n server 127.0.0.1:9000;\n }\n \n server {\n listen 80;\n server_name mail.fbleagh.duckdns.org;\n root /var/www/html;\n index ics.php;\n \n location /health {\n access_log off;\n return 200 \"healthy\\n\";\n add_header Content-Type text/plain;\n }\n \n location / {\n try_files $uri $uri/ /ics.php?$query_string;\n }\n \n location ~ \\.php$ {\n fastcgi_pass php-fpm;\n fastcgi_index index.php;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n include fastcgi_params;\n }\n \n # Security headers\n add_header X-Frame-Options \"SAMEORIGIN\" always;\n add_header X-XSS-Protection \"1; mode=block\" always;\n add_header X-Content-Type-Options \"nosniff\" always;\n \n # Hide nginx version\n server_tokens off;\n }\n}\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/app/ics.php",
"EmbeddedTmpl": "<?php\n$url = $_GET['url'];\n// Accept ICS calendar links only\n$url_arr = explode('/', $url);\nif ($url_arr[2] !== 'outlook.office365.com'\n || $url_arr[3] !== 'owa'\n || $url_arr[4] !== 'calendar'\n || end($url_arr) !== 'calendar.ics'\n ) {\n http_response_code(500);\n print \"Error\";\n exit;\n}\n$context = stream_context_create([\n \"http\" => [\n \"header\" => \"User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36\",\n ]\n]);\nif (($data = @file_get_contents($url, false, $context)) === false) {\n $error = error_get_last();\n http_response_code(500);\n print \"HTTP request failed: \" . $error['message'];\n exit;\n}\nheader('Content-Type: text/calendar; charset=utf-8');\nprint $data;\n?>\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"network_mode": "container:nginx-${NOMAD_ALLOC_ID}",
"volumes": [
"local/app:/var/www/html",
"local/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf"
],
"image": "php:8.2-fpm-alpine"
},
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "php-fpm",
"Resources": {
"CPU": 200,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 25000000000,
"Interval": 300000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/php-fpm.conf",
"EmbeddedTmpl": "[www]\nuser = www-data\ngroup = www-data\nlisten = 127.0.0.1:9000\nlisten.owner = www-data\nlisten.group = www-data\npm = dynamic\npm.max_children = 5\npm.start_servers = 2\npm.min_spare_servers = 1\npm.max_spare_servers = 3\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/app/ics.php",
"EmbeddedTmpl": "<?php\n$url = $_GET['url'];\n# // Accept ICS calendar links only\n# $url_arr = explode('/', $url);\n# if ($url_arr[2] !== 'outlook.office365.com'\n# || $url_arr[3] !== 'owa'\n# || $url_arr[4] !== 'calendar'\n# || end($url_arr) !== 'calendar.ics'\n# ) {\n# http_response_code(500);\n# print \"Error\";\n# exit;\n# }\n$context = stream_context_create([\n \"http\" => [\n \"header\" => \"User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36\",\n ]\n]);\nif (($data = @file_get_contents($url, false, $context)) === false) {\n $error = error_get_last();\n http_response_code(500);\n print \"HTTP request failed: \" . $error['message'];\n exit;\n}\nheader('Content-Type: text/calendar; charset=utf-8');\nprint $data;\n?>\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": true,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 180000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 7,
"VersionTag": null
}

View File

@@ -0,0 +1,339 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13925181,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "democratic-csi-local",
"JobModifyIndex": 13925215,
"Meta": null,
"ModifyIndex": 13925215,
"Multiregion": null,
"Name": "democratic-csi-local",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1755193604654316261,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "controller",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": null,
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": {
"HealthTimeout": 30000000000,
"ID": "org.democratic-csi.local-hostpath",
"MountDir": "/csi",
"StagePublishBaseDir": "/local/csi",
"Type": "controller"
},
"Config": {
"volumes": [
"local/config:/config:ro"
],
"args": [
"--csi-version=1.5.0",
"--csi-name=org.democratic-csi.local-hostpath",
"--driver-config-file=/config/driver-config-file.yaml",
"--log-level=info",
"--csi-mode=controller",
"--server-socket=/csi/csi.sock"
],
"image": "democraticcsi/democratic-csi:latest"
},
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "controller",
"Resources": {
"CPU": 256,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/config/driver-config-file.yaml",
"EmbeddedTmpl": "driver: local-hostpath\ninstance_id: {{ env \"node.unique.id\" }}\nlocal-hostpath:\n shareBasePath: \"/tmp/democratic-csi-local-hostpath\"\n controllerBasePath: \"/tmp/democratic-csi-local-hostpath\"\n dirPermissionsMode: \"0755\"\n dirPermissionsUser: 0\n dirPermissionsGroup: 0\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
},
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "nodes",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": null,
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": {
"HealthTimeout": 30000000000,
"ID": "org.democratic-csi.local-hostpath",
"MountDir": "/csi",
"StagePublishBaseDir": "/local/csi",
"Type": "node"
},
"Config": {
"volumes": [
"local/config:/config:ro",
"/tmp/democratic-csi-local-hostpath:/tmp/democratic-csi-local-hostpath:rshared"
],
"args": [
"--csi-version=1.5.0",
"--csi-name=org.democratic-csi.local-hostpath",
"--driver-config-file=/config/driver-config-file.yaml",
"--log-level=info",
"--csi-mode=node",
"--server-socket=/csi/csi.sock"
],
"image": "democraticcsi/democratic-csi:latest",
"privileged": true
},
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "node",
"Resources": {
"CPU": 256,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/config/driver-config-file.yaml",
"EmbeddedTmpl": "driver: local-hostpath\ninstance_id: {{ env \"node.unique.id\" }}\nlocal-hostpath:\n shareBasePath: \"/tmp/democratic-csi-local-hostpath\"\n controllerBasePath: \"/tmp/democratic-csi-local-hostpath\"\n dirPermissionsMode: \"0755\"\n dirPermissionsUser: 0\n dirPermissionsGroup: 0\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "system",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 1,
"VersionTag": null
}

View File

@@ -0,0 +1,405 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14064853,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "foodplanner",
"JobModifyIndex": 14064853,
"Meta": null,
"ModifyIndex": 14064866,
"Multiregion": null,
"Name": "foodplanner",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1759672953055136364,
"TaskGroups": [
{
"Affinities": null,
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": "app",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8999
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"foodplanner\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "/",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "",
"Timeout": 2000000000,
"Type": "http"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "foodplanner",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": null,
"TaskName": "",
"Weights": null
}
],
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/opt/nomad/data:/data"
],
"args": [
"restore",
"-o",
"/alloc/tmp/meal_planner.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/foodplanner.db"
],
"image": "litestream/litestream:0.3"
},
"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": "restore",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": {
"ports": [
"http"
],
"volumes": [
"/mnt/Public/configs/FoodPlanner_backups:/app/backups/"
],
"image": "ghcr.io/sstent/foodplanner:main"
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"DATABASE_PATH": "/alloc/tmp",
"DATABASE_URL": "sqlite:////alloc/tmp/meal_planner.db"
},
"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": "app",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 1024,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 600000000000,
"Mode": "fail",
"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": "litestream/litestream:0.3",
"args": [
"replicate",
"/alloc/tmp/meal_planner.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/foodplanner.db"
]
},
"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": "poststart",
"Sidecar": true
},
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "litestream",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,542 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13923644,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "gonic",
"JobModifyIndex": 13923644,
"Meta": null,
"ModifyIndex": 13991159,
"Multiregion": null,
"Name": "gonic",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1755124884723774513,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "gonic",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"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"
],
"port_map": [
{
"http": 80.0
}
],
"image": "sentriz/gonic"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"GONIC_SCAN_INTERVAL": "120",
"GONIC_MUSIC_PATH": "/music",
"GONIC_PODCAST_PATH": "/podcasts",
"GONIC_PLAYLISTS_PATH": "/musicplaylists"
},
"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": "gonic",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"Value": 4747
}
]
}
],
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"gonic\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "gonic",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": {
"ALLOC": "${NOMAD_ALLOC_ID}"
},
"Name": "gonic",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"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"
],
"TaskName": "gonic",
"Weights": 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",
"--exclude=Backups",
"/configbackup/",
"/config/",
"--delete-before"
]
},
"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-manual",
"Resources": {
"CPU": 20,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 20,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": {
"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/"
],
"memory_hard_limit": "2048",
"image": "ghcr.io/sstent/rsync"
},
"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-manual",
"Resources": {
"CPU": 20,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 20,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": {
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup"
],
"memory_hard_limit": "2048",
"image": "ghcr.io/sstent/rsync"
},
"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": "poststart",
"Sidecar": true
},
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "db-sync",
"Resources": {
"CPU": 20,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 20,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/litestream.yml",
"EmbeddedTmpl": "dbs:\n - path: /data/gonic.db\n replicas:\n - path: /configbackup\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,536 @@
{
"Affinities": [
{
"LTarget": "${attr.unique.hostname}",
"Operand": "=",
"RTarget": "odroid2",
"Weight": 80
}
],
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13607995,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "hass",
"JobModifyIndex": 13992633,
"Meta": null,
"ModifyIndex": 13992664,
"Multiregion": null,
"Name": "hass",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1757869441327214250,
"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": "hass",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8123,
"Value": 8123
},
{
"HostNetwork": "default",
"Label": "http_8989",
"To": 8989,
"Value": 8989
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 99,
"Delay": 10000000000,
"Interval": 3600000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"memory_hard_limit": "2048",
"image_pull_timeout": "10m",
"force_pull": false,
"image": "ghcr.io/sstent/rsync",
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks"
]
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"DB_NAME": "home-assistant_v2.db"
},
"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": 99,
"Delay": 10000000000,
"Interval": 3600000000000,
"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"
],
"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": "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": 99,
"Delay": 10000000000,
"Interval": 3600000000000,
"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": "50 8-20 * * *rsync -av --exclude='*.db*' --exclude='*.db' --exclude='.db-litestream' --exclude='generations' /configs/${NOMAD_GROUP_NAME}/ /configbackup/;"
},
"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": 99,
"Delay": 10000000000,
"Interval": 3600000000000,
"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": "host",
"cap_add": [
"NET_ADMIN"
],
"force_pull": false,
"volumes": [
"/etc/localtime:/etc/localtime",
"local/configuration.yaml:/config/configuration.yaml",
"local/ui-lovelace.yaml:/config/ui-lovelace.yaml",
"/mnt/configs/hass:/config"
],
"image": "ghcr.io/home-assistant/home-assistant:stable",
"ports": [
"http",
"http_8989"
],
"memory_hard_limit": "2048"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"JEMALLOC_DISABLE": "true"
},
"Identities": null,
"Identity": {
"Audience": [
"nomadproject.io"
],
"ChangeMode": "",
"ChangeSignal": "",
"Env": false,
"File": false,
"Filepath": "",
"Name": "default",
"ServiceName": "",
"TTL": 0
},
"KillSignal": "",
"KillTimeout": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 10
},
"Meta": null,
"Name": "hass",
"Resources": {
"CPU": 256,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 99,
"Delay": 10000000000,
"Interval": 3600000000000,
"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": "hass",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"homeassistant",
"tools",
"logo=home-assistant"
],
"TaskName": "hass",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/configuration.yaml",
"EmbeddedTmpl": "{{ key \"homeassistant/configuration.yml\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/ui-lovelace.yaml",
"EmbeddedTmpl": "{{ key \"homeassistant/lovelace.yml\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 8,
"VersionTag": null
}

View File

@@ -0,0 +1,414 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13571905,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "immich",
"JobModifyIndex": 14198769,
"Meta": null,
"ModifyIndex": 14198796,
"Multiregion": null,
"Name": "immich",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763139333220876334,
"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": "immich",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8080,
"Value": 8088
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 30000000000,
"Interval": 300000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/imagegenius/immich:2.2.3-noml",
"memory_hard_limit": "2048",
"ports": [
"http"
],
"volumes": [
"/mnt/Public/configs/Immich:/config",
"/mnt/Public/Immich/Photos:/photos",
"/mnt/Public/Immich/libraries:/libraries"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"DB_PORT": "5432",
"REDIS_HOSTNAME": "redis.service.dc1.consul",
"MACHINE_LEARNING_WORKER_TIMEOUT": "120",
"DB_PASSWORD": "postgres",
"PUID": "1000",
"DB_HOSTNAME": "master.postgres.service.dc1.consul",
"PGID": "1000",
"REDIS_PORT": "6379",
"MACHINE_LEARNING_PORT": "3003",
"MACHINE_LEARNING_HOST": "0.0.0.0",
"DB_VECTOR_EXTENSION": "pgvector",
"MACHINE_LEARNING_WORKERS": "1",
"DB_USERNAME": "postgres",
"REDIS_PASSWORD": "",
"TZ": "Etc/UTC",
"DB_DATABASE_NAME": "immich"
},
"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": "immich",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 512,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 30000000000,
"Interval": 300000000000,
"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": "immich",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"immich",
"tools",
"traefik.http.routers.immichlan.rule=Host(`immich.service.dc1.consul`)",
"traefik.http.routers.immichwan.rule=Host(`immich.fbleagh.duckdns.org`)",
"traefik.http.routers.immichwan.tls=true"
],
"TaskName": "immich",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
},
{
"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": "redis",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "redis",
"Value": 6379
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 30000000000,
"Interval": 300000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "redis",
"ports": [
"redis"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "redis",
"Resources": {
"CPU": 250,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 30000000000,
"Interval": 300000000000,
"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": "redis",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "redis",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"wallabag",
"tools"
],
"TaskName": "redis",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 15,
"VersionTag": null
}

View File

@@ -0,0 +1,240 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13716709,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "miniflux",
"JobModifyIndex": 13716709,
"Meta": null,
"ModifyIndex": 13990946,
"Multiregion": null,
"Name": "miniflux",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1745243550127001781,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "miniflux",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8080
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "miniflux/miniflux:latest",
"ports": [
"http"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"ADMIN_USERNAME": "admin",
"OAUTH2_PROVIDER": "google",
"ADMIN_PASSWORD": "farscape5",
"OAUTH2_CLIENT_SECRET": "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",
"RUN_MIGRATIONS": "1",
"BASE_URL": "https://miniflux.fbleagh.duckdns.org",
"OAUTH2_REDIRECT_URL": "https://miniflux.fbleagh.duckdns.org/oauth2/google/callback",
"OAUTH2_CLIENT_ID": "807888907647-g6i7t2auvbrjinf151qupc663tgpn6gh.apps.googleusercontent.com",
"CREATE_ADMIN": "1",
"DATABASE_URL": "postgres://postgres:postgres@master.postgres.service.dc1.consul/miniflux?sslmode=disable",
"OAUTH2_USER_CREATION": "1"
},
"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": "miniflux",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": "miniflux",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"miniflux",
"tools",
"traefik.http.routers.minifluxlan.rule=Host(`miniflux.service.dc1.consul`)",
"traefik.http.routers.minifluxwan.rule=Host(`miniflux.fbleagh.duckdns.org`)",
"traefik.http.routers.minifluxwan.tls=true",
"traefik.http.middlewares.vaultwardenwan-admin-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.0/24",
"traefik.http.routers.nginx-admin.middlewares=vaultwardenwan-admin-ipwhitelist"
],
"TaskName": "miniflux",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,254 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14013004,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "minihass",
"JobModifyIndex": 14013055,
"Meta": null,
"ModifyIndex": 14013061,
"Multiregion": null,
"Name": "minihass",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1758392051490505959,
"TaskGroups": [
{
"Affinities": null,
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": "smart-home",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 5000
}
],
"Mode": "host"
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 30000000000,
"Method": "",
"Name": "service: \"minihass\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "/health",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "",
"Timeout": 7000000000,
"Type": "http"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "minihass",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"traefik.http.routers.minihasslan.rule=Host(`minihass.service.dc1.consul`)",
"traefik.http.routers.minihasswan.rule=Host(`mh.fbleagh.duckdns.org`)",
"traefik.http.routers.minihasswan.middlewares=dex@consulcatalog",
"traefik.http.routers.minihasswan.tls=true"
],
"TaskName": "",
"Weights": null
}
],
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/sstent/minihass",
"ports": [
"http"
]
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"CONSUL_HOST": "consul.service.dc1.consul",
"CONSUL_PORT": "8500"
},
"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": "app",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 3,
"VersionTag": null
}

View File

@@ -0,0 +1,439 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13928915,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "navidrome",
"JobModifyIndex": 14171074,
"Meta": null,
"ModifyIndex": 14171094,
"Multiregion": null,
"Name": "navidrome",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1762404740673447473,
"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": "navidrome",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 4533,
"Value": 4533
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"restore",
"-if-replica-exists",
"-if-db-not-exists",
"-o",
"/alloc/tmp/navidrome.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/navidrome.db"
],
"volumes": [
"/mnt/configs/navidrome:/data"
],
"image": "litestream/litestream:latest"
},
"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": "restore",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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",
"ports": [
"http"
],
"volumes": [
"/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",
"/mnt/configs/navidrome:/data"
],
"image": "ghcr.io/navidrome/navidrome:latest"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"ND_BACKUP_COUNT": "7",
"ND_BACKUP_SCHEDULE": "0 0 * * *",
"ND_LOGLEVEL": "debug",
"ND_DATAFOLDER": "/alloc/tmp/",
"ND_REVERSEPROXYWHITELIST": "0.0.0.0/0",
"ND_SCANSCHEDULE": "32 8-20 * * *",
"ND_SCANNER_GROUPALBUMRELEASES": "False",
"ND_REVERSEPROXYUSERHEADER": "X-Forwarded-User",
"ND_BACKUP_PATH": "/data",
"ND_CACHEFOLDER": "./data/cache"
},
"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": "navidrome",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"navidrome\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "navidrome",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "navidrome",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"navidrome",
"web",
"urlprefix-/navidrome",
"tools",
"traefik.http.routers.navidromelan.rule=Host(`navidrome.service.dc1.consul`)",
"traefik.http.routers.navidromewan.rule=Host(`fbleagh-m.ignorelist.com`)",
"traefik.http.routers.navidromewan.rule=Host(`m.fbleagh.duckdns.org`,`m.fbleagh.dedyn.io`)",
"traefik.http.routers.navidromewan.middlewares=dex@consulcatalog",
"traefik.http.routers.navidromewan.tls=true"
],
"TaskName": "navidrome",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "litestream/litestream:latest",
"args": [
"replicate",
"/alloc/tmp/navidrome.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/navidrome.db"
],
"volumes": [
"/mnt/configs/navidrome:/data"
]
},
"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": "poststart",
"Sidecar": true
},
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "litestream",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 22,
"VersionTag": null
}

View File

@@ -0,0 +1,292 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13996170,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "nginx",
"JobModifyIndex": 13996170,
"Meta": null,
"ModifyIndex": 13996178,
"Multiregion": null,
"Name": "nginx",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1757964378356074970,
"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": "nginx",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8080
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"custom/default.conf:/etc/nginx/conf.d/default.conf"
],
"image": "nginx",
"ports": [
"http"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "nginx",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 64,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"nginx\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "nginx",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "nginx",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"nginx",
"web",
"urlprefix-/nginx",
"backend"
],
"TaskName": "nginx",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "custom/default.conf",
"EmbeddedTmpl": " server {\n listen 8080;\n server_name nginx.service.dc1.consul;\n location / {\n root /local/data;\n }\n }\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "noop",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/data/index.html",
"EmbeddedTmpl": " <p>Local Services - HTTP/HTTPS</p>\n <table style=\"width:100%\">\n <tr>\n <th>Service Name</th>\n <th>Traefik</th>\n <th>Direct</th>\n </tr>\n {{range services}}\n {{range $i, $s :=service .Name}}\n {{ if eq $i 0 }}\n\n<tr>\n <td>{{.Name}}</td>\n <td><a href=\"{{ if eq .Name \"unifi\" }}https{{else}}http{{end}}://{{.Name}}.service.dc1.consul\" target=\"_blank\">{{.Name}}.service.dc1.consul</a></td>\n <td><a href=\"{{ if eq .Name \"unifi\" }}https{{else}}http{{end}}://{{.Name}}.service.dc1.consul:{{.Port}}\" target=\"_blank\">{{ if eq .Name \"unifi\" }}https{{else}}http{{end}}://{{.Name}}.service.dc1.consul:{{.Port}}</a></td>\n </tr>\n {{end}}\n {{end}}\n {{end}}\n </table>\n <p>\n Node Environment Information: <br />\n node_id: {{ env \"node.unique.id\" }} <br/>\n datacenter: {{ env \"NOMAD_DC\" }}\n </p>\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,650 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572065,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "nzbget",
"JobModifyIndex": 14132455,
"Meta": null,
"ModifyIndex": 14199835,
"Multiregion": null,
"Name": "nzbget",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1761418699860703923,
"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": "nzbget",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "shadowsocks",
"To": 8388,
"Value": 8338
},
{
"HostNetwork": "default",
"Label": "http_proxy",
"To": 8888,
"Value": 8888
},
{
"HostNetwork": "default",
"Label": "http_admin",
"To": 8000,
"Value": 8000
},
{
"HostNetwork": "default",
"Label": "sabnzb_admin",
"To": 8080,
"Value": 8080
},
{
"HostNetwork": "default",
"Label": "socks",
"To": 1080,
"Value": 1080
},
{
"HostNetwork": "default",
"Label": "nzbget",
"To": 6789,
"Value": 6789
}
]
}
],
"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": {
"memory_hard_limit": "1024",
"ports": [
"shadowsocks",
"nzbget",
"http_proxy",
"http_admin",
"sabnzb_admin",
"socks"
],
"cap_add": [
"NET_ADMIN",
"NET_BIND_SERVICE"
],
"volumes": [
"/etc/localtime:/etc/localtime"
],
"devices": [
{
"host_path": "/dev/net/tun",
"container_path": "/dev/net/tun"
}
],
"image": "qmcgaw/gluetun"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"FIREWALL_VPN_INPUT_PORTS": "56987",
"CITY": "Toronto",
"WIREGUARD_ADDRESS": "10.66.246.4/32",
"WIREGUARD_PRIVATE_KEY": "2FHwQX1jxk+qeMmXUtSGRc2kKF1WHeSCyIgHNW+7akA=",
"DOT_PROVIDERS": "cloudflare,google,quad9,quadrant",
"COUNTRY": "Canada",
"UPDATER_PERIOD": "24h",
"VPNSP": "mullvad",
"DOT": "off",
"VPN_TYPE": "wireguard",
"SHADOWSOCKS": "off",
"HTTPPROXY": "on",
"SHADOWSOCKS_PASSWORD": "farscape5"
},
"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": "ovpn-client",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 100,
"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": "nzbget-admin",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http_admin",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"ovpn-openpyn"
],
"TaskName": "ovpn-client",
"Weights": null
},
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": null,
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "nzbget",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "shadowsocks",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"ovpn-openpyn"
],
"TaskName": "ovpn-client",
"Weights": null
},
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": null,
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "nzbget",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "nzbget",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"ovpn-openpyn"
],
"TaskName": "ovpn-client",
"Weights": null
},
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": null,
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "sabnzb",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "sabnzb_admin",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"ovpn-openpyn",
"enable_gocast",
"gocast_vip=192.168.1.247/32",
"gocast_nat=tcp:8080:8080",
"gocast_nat=udp:8080:8080"
],
"TaskName": "ovpn-client",
"Weights": null
},
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": null,
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "socks-nord",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "socks",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"ovpn-openpyn",
"enable_gocast",
"gocast_vip=192.168.1.243/32",
"gocast_nat=tcp:1080:1080",
"gocast_nat=udp:1080:1080"
],
"TaskName": "ovpn-client",
"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:ovpn-client-${NOMAD_ALLOC_ID}",
"memory_hard_limit": 256.0,
"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:v0.3.5",
"memory_hard_limit": "2048",
"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",
"-avz",
"--exclude=Backups",
"/configbackup/",
"/config/",
"--delete-before"
]
},
"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",
"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",
"-avz",
"/config/",
"/configbackup/"
],
"image": "ghcr.io/sstent/rsync:v0.3.5"
},
"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": 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
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"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": 10,
"VersionTag": null
}

View File

@@ -0,0 +1,203 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13569048,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "postgres-15",
"JobModifyIndex": 13569135,
"Meta": null,
"ModifyIndex": 13569135,
"Multiregion": null,
"Name": "postgres-15",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1738279443028435823,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "group",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "api",
"To": 8008,
"Value": 8008
},
{
"HostNetwork": "default",
"Label": "pg",
"To": 5432,
"Value": 5432
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": null,
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"ports": [
"api",
"pg"
],
"image": "ghcr.io/sstent/nomad-pgsql-patroni:latest",
"volumes": [
"/mnt/configs/postgres:/store"
]
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"PGDATA": "/store/data"
},
"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": "db",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 1024,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "/secrets/patroni.yml",
"EmbeddedTmpl": "scope: postgres\nname: pg-{{env \"node.unique.name\"}}\nnamespace: /nomad\n\nrestapi:\n listen: 0.0.0.0:8008\n connect_address: {{env \"attr.unique.network.ip-address\"}}:8008\n\nconsul:\n scheme: http\n host: {{env \"attr.unique.network.ip-address\"}}:8500\n register_service: True\n\nbootstrap:\n dcs:\n ttl: 30\n loop_wait: 10\n retry_timeout: 10\n maximum_lag_on_failover: 1048576\n postgresql:\n use_pg_rewind: true\n use_slots: true\n parameters:\n timezone: 'UTC'\n max_connections: 100\n shared_preload_libraries: pg_stat_statements\n shared_buffers: 64MB\n work_mem: 16MB\n effective_cache_size: 512MB\n tcp_keepalives_idle: 300\n timescaledb.telemetry_level: off\n\n method: local\n local:\n command: /usr/local/bin/docker-initdb.sh\n keep_existing_recovery_conf: True\n\n initdb:\n - encoding: UTF8\n\n pg_hba:\n - host all postgres all md5\n - host replication repl all md5\n - host all all all md5\n\n users:\n postgres:\n password: postgres\n options:\n - createrole\n - createdb\n repl:\n password: repl\n options:\n - replication\n\npostgresql:\n listen: 0.0.0.0:5432\n connect_address: {{env \"attr.unique.network.ip-address\"}}:5432\n use_unix_socket: true\n data_dir: /store/data\n authentication:\n replication:\n username: repl\n password: repl\n superuser:\n username: postgres\n password: postgres\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "system",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 2,
"VersionTag": null
}

View File

@@ -0,0 +1,565 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13995677,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "prometheus",
"JobModifyIndex": 13995677,
"Meta": null,
"ModifyIndex": 13995698,
"Multiregion": null,
"Name": "prometheus",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1757952031065143001,
"TaskGroups": [
{
"Affinities": null,
"Constraints": [
{
"LTarget": "${attr.os.signals}",
"Operand": "set_contains",
"RTarget": "SIGHUP"
}
],
"Consul": null,
"Count": 2,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": {
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000
},
"Name": "prometheus",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 9090,
"Value": 9090
},
{
"HostNetwork": "default",
"Label": "alerthttp",
"To": 9093,
"Value": 9093
},
{
"HostNetwork": "default",
"Label": "gotifybridge",
"To": 8080,
"Value": 9094
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"memory_hard_limit": "512",
"ports": [
"http"
],
"volumes": [
"local/prometheus.yml:/etc/prometheus/prometheus.yml",
"local/alerts.yml:/etc/prometheus/alerts.yml"
],
"args": [
"--web.enable-admin-api",
"--config.file=/etc/prometheus/prometheus.yml"
],
"image": "prom/prometheus",
"logging": [
{
"type": "json-file"
}
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 10
},
"Meta": null,
"Name": "prometheus",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 48,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "alive",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "/status",
"PortLabel": "http",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "prometheus",
"Timeout": 120000000000,
"Type": "http"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "prometheus",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"prometheus"
],
"TaskName": "prometheus",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "signal",
"ChangeScript": null,
"ChangeSignal": "SIGHUP",
"DestPath": "local/prometheus.yml",
"EmbeddedTmpl": "{{ key \"prometheus_yml\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/alerts.yml",
"EmbeddedTmpl": "{{ key \"alerts\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"--config.file=/local/alertmanager.yml"
],
"image": "prom/alertmanager",
"logging": [
{
"type": "json-file"
}
],
"ports": [
"alerthttp"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 10
},
"Meta": null,
"Name": "alertmanager",
"Resources": {
"CPU": 128,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 48,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 60000000000,
"Method": "",
"Name": "alive",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "/status",
"PortLabel": "http",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "alertmanager",
"Timeout": 120000000000,
"Type": "http"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "alertmanager",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "alerthttp",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"prometheus"
],
"TaskName": "alertmanager",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/alertmanager.yml",
"EmbeddedTmpl": "global:\nreceivers:\n - name: default-receiver\n - name: gotify-webhook\n webhook_configs:\n - url: \"http://prometheus.service.dc1.consul:9094/gotify_webhook\"\nroute:\n group_wait: 10s\n group_interval: 5m\n receiver: gotify-webhook\n repeat_interval: 3h\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"ports": [
"gotifybridge"
],
"args": [
"--debug"
],
"image": "ghcr.io/druggeri/alertmanager_gotify_bridge"
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"GOTIFY_ENDPOINT": "http://gotify.service.dc1.consul/message",
"GOTIFY_TOKEN": "AQ7l7NVgtylam86"
},
"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": "gotifybridge",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 60000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 60000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,377 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572040,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "prowlarr",
"JobModifyIndex": 13998460,
"Meta": null,
"ModifyIndex": 13998474,
"Multiregion": null,
"Name": "prowlarr",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1758023732088250725,
"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": "prowlarr",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 9696,
"Value": 9696
},
{
"HostNetwork": "default",
"Label": "http_flare",
"To": 8191,
"Value": 8191
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/flaresolverr/flaresolverr:latest",
"ports": [
"http_flare"
],
"dns_servers": [
"192.168.1.1",
"1.1.1.1"
],
"memory_hard_limit": "2048",
"force_pull": false
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"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": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "flaresolver",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"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": "prowlarr",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http_flare",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"prowlarr_pg",
"tools"
],
"TaskName": "flaresolver",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/mnt/Public/configs/prowlarr_pg:/config"
],
"force_pull": false,
"image": "ghcr.io/linuxserver/prowlarr:develop",
"ports": [
"http"
],
"dns_servers": [
"192.168.1.1",
"1.1.1.1"
],
"memory_hard_limit": "2048"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"PUID": "1000",
"PGID": "1000",
"TZ": "EST5EDT"
},
"Identities": null,
"Identity": {
"Audience": [
"nomadproject.io"
],
"ChangeMode": "",
"ChangeSignal": "",
"Env": false,
"File": false,
"Filepath": "",
"Name": "default",
"ServiceName": "",
"TTL": 0
},
"KillSignal": "",
"KillTimeout": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 10
},
"Meta": null,
"Name": "prowlarr",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"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": "prowlarr",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"prowlarr_pg",
"tools"
],
"TaskName": "prowlarr",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/healthcheck.sh",
"EmbeddedTmpl": "#!/bin/bash\n/usr/bin/curl -f \"http://localhost:${NOMAD_PORT_http}/api/v1/system/status?apikey=$(grep -Po '<ApiKey>\\K.*?(?=<.*?>)' /config/config.xml)\"\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0755",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 2,
"VersionTag": null
}

View File

@@ -0,0 +1,233 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13930001,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate",
"JobModifyIndex": 13930001,
"Meta": null,
"ModifyIndex": 13930001,
"Multiregion": null,
"Name": "qautomate",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": {
"Enabled": true,
"ProhibitOverlap": true,
"Spec": "*/30 * * * *",
"SpecType": "cron",
"Specs": [],
"TimeZone": "UTC"
},
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1755347244371339444,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"-v",
"-c",
"/local/prestart.sh"
],
"image": "ghcr.io/sstent/ubuntu-python3"
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202455,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763231400",
"JobModifyIndex": 14202455,
"Meta": null,
"ModifyIndex": 14202464,
"Multiregion": null,
"Name": "qautomate/periodic-1763231400",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763231400001780238,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"-v",
"-c",
"/local/prestart.sh"
],
"image": "ghcr.io/sstent/ubuntu-python3"
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202496,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763233200",
"JobModifyIndex": 14202496,
"Meta": null,
"ModifyIndex": 14202504,
"Multiregion": null,
"Name": "qautomate/periodic-1763233200",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763233200005089389,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"-v",
"-c",
"/local/prestart.sh"
],
"image": "ghcr.io/sstent/ubuntu-python3"
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202549,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763235000",
"JobModifyIndex": 14202549,
"Meta": null,
"ModifyIndex": 14202558,
"Multiregion": null,
"Name": "qautomate/periodic-1763235000",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763235000002643660,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/sstent/ubuntu-python3",
"args": [
"-v",
"-c",
"/local/prestart.sh"
]
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202593,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763236800",
"JobModifyIndex": 14202593,
"Meta": null,
"ModifyIndex": 14202601,
"Multiregion": null,
"Name": "qautomate/periodic-1763236800",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763236800001635486,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"-v",
"-c",
"/local/prestart.sh"
],
"image": "ghcr.io/sstent/ubuntu-python3"
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202645,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763238600",
"JobModifyIndex": 14202645,
"Meta": null,
"ModifyIndex": 14202653,
"Multiregion": null,
"Name": "qautomate/periodic-1763238600",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763238600002832252,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/sstent/ubuntu-python3",
"args": [
"-v",
"-c",
"/local/prestart.sh"
]
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202755,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763240400",
"JobModifyIndex": 14202755,
"Meta": null,
"ModifyIndex": 14202920,
"Multiregion": null,
"Name": "qautomate/periodic-1763240400",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763240400003151783,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/sstent/ubuntu-python3",
"args": [
"-v",
"-c",
"/local/prestart.sh"
]
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202806,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763242200",
"JobModifyIndex": 14202806,
"Meta": null,
"ModifyIndex": 14202815,
"Multiregion": null,
"Name": "qautomate/periodic-1763242200",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763242200002299173,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "ghcr.io/sstent/ubuntu-python3",
"args": [
"-v",
"-c",
"/local/prestart.sh"
]
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,226 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14202856,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qautomate/periodic-1763244000",
"JobModifyIndex": 14202856,
"Meta": null,
"ModifyIndex": 14202864,
"Multiregion": null,
"Name": "qautomate/periodic-1763244000",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "qautomate",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "dead",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763244000001892686,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "app",
"Networks": null,
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 1,
"Delay": 5000000000,
"DelayFunction": "constant",
"Interval": 86400000000000,
"MaxDelay": 0,
"Unlimited": false
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"-v",
"-c",
"/local/prestart.sh"
],
"image": "ghcr.io/sstent/ubuntu-python3"
},
"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": "setup",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 3,
"Delay": 15000000000,
"Interval": 86400000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/prestart.sh",
"EmbeddedTmpl": "#!/bin/bash\nrm /usr/lib/python3.11/EXTERNALLY-MANAGED\npip3 install qbittorrent-api --upgrade\npython3 /local/torrent_tagger.py\npython3 /local/torrent_tidy.py\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tagger.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tagger\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/torrent_tidy.py",
"EmbeddedTmpl": "{{ key \"functions/torrent_tidy\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": null,
"Volumes": null
}
],
"Type": "batch",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 0,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 0
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,593 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "amd64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572099,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "qbittorrent",
"JobModifyIndex": 14186766,
"Meta": null,
"ModifyIndex": 14202925,
"Multiregion": null,
"Name": "qbittorrent",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1762817545936576873,
"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": {
"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"
],
"volumes": [
"/etc/localtime:/etc/localtime",
"/mnt/syncthing/mullvad:/vpn",
"local/gluetun.toml:/gluetun/config.toml"
],
"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": {
"HTTP_CONTROL_SERVER_AUTH_CONFIG_FILEPATH": "/custom/auth.toml",
"SERVER_CITIES": "Vancouver,Montreal,Toronto",
"HEALTH_VPN_DURATION_INITIAL": "3600s",
"DOT": "off",
"SHADOWSOCKS": "on",
"SHADOWSOCKS_PASSWORD": "farscape5",
"DOT_PROVIDERS": "cloudflare,google,quad9,quadrant",
"WIREGUARD_PRIVATE_KEY": "EIos1A9eGCIoCHr02aOsEu8S4C0gqhNLIYF/vMykEV0=",
"SERVER_COUNTRIES": "Canada",
"HEALTH_TARGET_ADDRESS": "1.1.1.1",
"WIREGUARD_PRESHARED_KEY": "RzPcraPA24hLFxGiB7z5JMWrtI+JBbEzvmeiEX36XWo=",
"HEALTH_SUCCESS_WAIT_DURATION": "30s",
"HTTPPROXY": "on",
"FIREWALL_VPN_INPUT_PORTS": "61944,53304",
"VPN_SERVICE_PROVIDER": "airvpn",
"WIREGUARD_ADDRESSES": "10.161.31.240/32",
"HEALTH_VPN_DURATION_ADDITION": "600s",
"WEBUI_PORT": "8080",
"VPN_TYPE": "wireguard"
},
"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": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "custom/auth.toml",
"EmbeddedTmpl": "[[roles]]\nname = \"qbittorrent\"\n# Define a list of routes with the syntax \"Http-Method /path\"\nroutes = [\"GET /v1/openvpn/status\", \"PUT /v1/openvpn/status\", \"PUT /v1/openvpn/status\", \"GET /v1/openvpn/portforwarded\", \"GET /v1/openvpn/settings\", \"GET /v1/dns/status\", \"PUT /v1/dns/status\", \"PUT /v1/dns/status\", \"GET /v1/updater/status\", \"PUT /v1/updater/status\", \"PUT /v1/updater/status\", \"GET /v1/publicip/ip\", \"GET /v1/version\", \"GET /v1/vpn/status\", \"PUT /v1/vpn/status\", \"GET /v1/vpn/settings\", \"PUT /v1/vpn/settings\"]\nauth = \"none\"\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"devices": [
{
"container_path": "/dev/net/tun",
"host_path": "/dev/net/tun"
}
],
"image": "serjs/go-socks5-proxy",
"memory_hard_limit": 256.0,
"network_mode": "container:qbittorrent-vpn-${NOMAD_ALLOC_ID}"
},
"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": {
"volumes": [
"/mnt/Public/Downloads/news/qbittorrent:/downloads/",
"/mnt/configs/qbittorrent:/config",
"/mnt/Archive/seeding:/archiveseeding",
"/mnt/odroid5:/odroid5"
],
"image": "linuxserver/qbittorrent:5.1.0",
"memory_hard_limit": 2048.0,
"network_mode": "container:qbittorrent-vpn-${NOMAD_ALLOC_ID}",
"sysctl": [
{
"net.core.somaxconn": "4096"
}
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"TZ": "EST5EDT",
"WEBUI_PORT": "8080",
"PGID": "1000",
"PUID": "1000"
},
"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": null,
"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": 120000000000,
"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": 21,
"VersionTag": null
}

View File

@@ -0,0 +1,342 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.unique.hostname}",
"Operand": "regexp",
"RTarget": "odroid.*"
},
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "arm64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572027,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "radarr",
"JobModifyIndex": 13928632,
"Meta": null,
"ModifyIndex": 13928632,
"Multiregion": null,
"Name": "radarr",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1755286992506450506,
"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": "radarr",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 7878,
"Value": 7878
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 5,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"dns_servers": [
"192.168.4.250",
"192.168.4.1"
],
"image": "linuxserver/radarr:latest",
"memory_hard_limit": "2048",
"ports": [
"http"
],
"volumes": [
"/mnt/Public/Downloads/news:/downloads",
"/mnt/Public/Downloads/movies:/movies",
"/mnt/Archive/Movies:/archive",
"/mnt/Public/configs/radarr_pg:/config"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"PUID": "1000",
"TZ": "EST5EDT",
"PGID": "1000"
},
"Identities": null,
"Identity": {
"Audience": [
"nomadproject.io"
],
"ChangeMode": "",
"ChangeSignal": "",
"Env": false,
"File": false,
"Filepath": "",
"Name": "default",
"ServiceName": "",
"TTL": 0
},
"KillSignal": "",
"KillTimeout": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 10
},
"Meta": null,
"Name": "radarr",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 5,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": {
"Grace": 90000000000,
"IgnoreWarnings": false,
"Limit": 3
},
"Command": "/local/healthcheck.sh",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 300000000000,
"Method": "",
"Name": "check_up",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "radarr",
"Timeout": 25000000000,
"Type": "script"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "radarr",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"radarr",
"tools"
],
"TaskName": "radarr",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/file.yml",
"EmbeddedTmpl": "---\nkey: {{ key \"ovpn-client\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/config.xml",
"EmbeddedTmpl": "<Config>\n<LogLevel>Info</LogLevel>\n<Port>7878</Port>\n<UrlBase/>\n<BindAddress>*</BindAddress>\n<SslPort>9898</SslPort>\n<EnableSsl>False</EnableSsl>\n<ApiKey>237c27f22504440385e5ee295fd65eb5</ApiKey>\n<AuthenticationMethod>Forms</AuthenticationMethod>\n<Branch>master</Branch>\n<SslCertPath/>\n<LaunchBrowser>True</LaunchBrowser>\n<SslCertPassword/>\n<UpdateMechanism>Docker</UpdateMechanism>\n<AnalyticsEnabled>False</AnalyticsEnabled>\n<InstanceName>Radarr</InstanceName>\n<AuthenticationRequired>DisabledForLocalAddresses</AuthenticationRequired>\n<PostgresUser>postgres</PostgresUser>\n<PostgresPassword>postgres</PostgresPassword>\n<PostgresPort>5432</PostgresPort>\n<PostgresHost>master.postgres.service.dc1.consul</PostgresHost>\n</Config>\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0755",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/healthcheck.sh",
"EmbeddedTmpl": "#!/bin/bash\n/usr/bin/curl -f \"http://localhost:${NOMAD_PORT_http}/api/v3/system/status?apikey=$(grep -Eo '<ApiKey>(.*)</ApiKey>' /config/config.xml | sed -e 's/<[^>]*>//g')\"\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0755",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 13,
"VersionTag": null
}

View File

@@ -0,0 +1,331 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "amd64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572054,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "slskd",
"JobModifyIndex": 14202950,
"Meta": null,
"ModifyIndex": 14202963,
"Multiregion": null,
"Name": "slskd",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763244688965100324,
"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": "slskd",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 5000,
"Value": 5000
},
{
"HostNetwork": "default",
"Label": "https",
"To": 5001,
"Value": 5001
},
{
"HostNetwork": "default",
"Label": "guac",
"To": 6080,
"Value": 6080
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"cap_add": [
"NET_ADMIN",
"NET_BIND_SERVICE"
],
"volumes": [
"/etc/localtime:/etc/localtime",
"/mnt/syncthing/mullvad:/vpn"
],
"devices": [
{
"host_path": "/dev/net/tun",
"container_path": "/dev/net/tun"
}
],
"image": "qmcgaw/gluetun",
"memory_hard_limit": "1024",
"ports": [
"http",
"https",
"guac"
]
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"HEALTH_VPN_DURATION_ADDITION": "600s",
"SERVER_CITIES": "Montreal",
"SHADOWSOCKS_PASSWORD": "farscape5",
"WIREGUARD_ADDRESSES": "10.186.222.247/32",
"VPN_TYPE": "wireguard",
"HTTPPROXY": "on",
"WEBUI_PORT": "8080",
"HEALTH_TARGET_ADDRESS": "1.1.1.1",
"HEALTH_VPN_DURATION_INITIAL": "3600s",
"DOT_PROVIDERS": "cloudflare,google,quad9,quadrant",
"HEALTH_SUCCESS_WAIT_DURATION": "30s",
"SERVER_COUNTRIES": "Canada",
"VPN_SERVICE_PROVIDER": "airvpn",
"SHADOWSOCKS": "on",
"WIREGUARD_PRIVATE_KEY": "SPpgnVCsOnz+zzorzTiOmvDF8GElgp27dSIeYAq43Vk=",
"FIREWALL_VPN_INPUT_PORTS": "53304",
"WIREGUARD_PRESHARED_KEY": "TBb2gU8pSTSG6lT4QYr7pzNWN7wZEn0yeG4VDTtuy50=",
"DOT": "off"
},
"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": "slskd-vpn",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 250,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"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/fletchto99/nicotine-plus-docker:latest",
"memory_hard_limit": "1024",
"network_mode": "container:slskd-vpn-${NOMAD_ALLOC_ID}",
"volumes": [
"/mnt/Public/Downloads/news/slskd/config:/config",
"/mnt/Public/Downloads/news/slskd/shared:/shared",
"/mnt/Public/Downloads/news/slskd/downloads/:/downloads",
"/mnt/Public/Downloads/news/slskd/incomplete/:/incomplete"
]
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"PGID": "1000",
"TZ": "Etc/UTC",
"LISTENING_PORT": "53304",
"PUID": "1000"
},
"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": "nicotine",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 14,
"VersionTag": null
}

View File

@@ -0,0 +1,333 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "amd64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13572015,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "sonarr",
"JobModifyIndex": 13991917,
"Meta": null,
"ModifyIndex": 14202918,
"Multiregion": null,
"Name": "sonarr",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1757855044385846000,
"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": "sonarr",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8989,
"Value": 8989
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"memory_hard_limit": "2048",
"volumes": [
"/mnt/Public/Downloads/news:/downloads",
"/mnt/Public/Downloads/tv:/tv",
"/mnt/Public/configs/sonarr_pg:/config"
],
"force_pull": false,
"image": "linuxserver/sonarr:develop",
"ports": [
"http"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"TZ": "EST5EDT",
"PUID": "1000",
"PGID": "1000"
},
"Identities": null,
"Identity": {
"Audience": [
"nomadproject.io"
],
"ChangeMode": "",
"ChangeSignal": "",
"Env": false,
"File": false,
"Filepath": "",
"Name": "default",
"ServiceName": "",
"TTL": 0
},
"KillSignal": "",
"KillTimeout": 10000000000,
"Kind": "",
"Leader": false,
"Lifecycle": null,
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 15,
"MaxFiles": 12
},
"Meta": null,
"Name": "sonarr",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": {
"Grace": 90000000000,
"IgnoreWarnings": false,
"Limit": 3
},
"Command": "/local/healthcheck.sh",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 60000000000,
"Method": "",
"Name": "check_up",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "sonarr",
"Timeout": 5000000000,
"Type": "script"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "sonarr",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"sonarr",
"tools"
],
"TaskName": "sonarr",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/healthcheck.sh",
"EmbeddedTmpl": "#!/bin/bash\n/usr/bin/curl -f \"http://localhost:${NOMAD_PORT_http}/api/v3/system/status?apikey=$(grep -Eo '<ApiKey>(.*)</ApiKey>' /config/config.xml | sed -e 's/<[^>]*>//g')\"\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0755",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/file.yml",
"EmbeddedTmpl": "---\nkey: {{ key \"ovpn-client\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/config.xml",
"EmbeddedTmpl": "<Config>\n<LogLevel>Info</LogLevel>\n<Port>8989</Port>\n<UrlBase>/sonarr</UrlBase>\n<BindAddress>*</BindAddress>\n<SslPort>9898</SslPort>\n<EnableSsl>False</EnableSsl>\n<ApiKey>1632787062fb47a9a6eb4c88e32b3ff3</ApiKey>\n<AuthenticationMethod>None</AuthenticationMethod>\n<Branch>develop</Branch>\n<LaunchBrowser>True</LaunchBrowser>\n<SslCertHash/>\n<UpdateMechanism>Docker</UpdateMechanism>\n<AnalyticsEnabled>False</AnalyticsEnabled>\n<UpdateScriptPath>/config/restart.sh</UpdateScriptPath>\n<InstanceName>Sonarr</InstanceName>\n<PostgresUser>postgres</PostgresUser>\n<PostgresPassword>postgres</PostgresPassword>\n<PostgresPort>5432</PostgresPort>\n<PostgresHost>master.postgres.service.dc1.consul</PostgresHost>\n</Config>\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0755",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 20,
"VersionTag": null
}

View File

@@ -0,0 +1,391 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
}
],
"ConsulNamespace": "",
"CreateIndex": 13570367,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "traefik",
"JobModifyIndex": 14202342,
"Meta": null,
"ModifyIndex": 14202342,
"Multiregion": null,
"Name": "traefik",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": false,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1763227820495039263,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": null,
"Count": 1,
"Disconnect": null,
"EphemeralDisk": {
"Migrate": false,
"SizeMB": 300,
"Sticky": false
},
"MaxClientDisconnect": null,
"Meta": null,
"Migrate": null,
"Name": "traefik",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "traefik",
"To": 80,
"Value": 80
},
{
"HostNetwork": "default",
"Label": "traefikui",
"To": 8080,
"Value": 8090
},
{
"HostNetwork": "default",
"Label": "traefikhttps",
"To": 443,
"Value": 443
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": null,
"RestartPolicy": {
"Attempts": 6,
"Delay": 10000000000,
"Interval": 60000000000,
"Mode": "delay",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"dns_servers": [
"192.168.1.1",
"192.168.1.250"
],
"ports": [
"traefik",
"traefikhttps",
"traefikui"
],
"memory_hard_limit": 2048.0,
"image": "traefik:2.9",
"args": [
"--configFile=/local/file.yml",
"--accesslog=true"
],
"volumes": [
"/var/run/docker.sock:/var/run/docker.sock",
"/mnt/mnt/configs/letsencrypt:/acmecert/"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"DUCKDNS_TOKEN": "e4b5ca33-1f4d-494b-b06d-6dd4600df662",
"TZ": "EST5EDT",
"PUID": "1000",
"PGID": "1000"
},
"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": "traefik",
"Resources": {
"CPU": 256,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 6,
"Delay": 10000000000,
"Interval": 60000000000,
"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": "traefik",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "traefik",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"traefik",
"enable_gocast",
"gocast_vip=192.168.1.249/32",
"gocast_nat=tcp:443:443",
"gocast_nat=udp:443:443"
],
"TaskName": "traefik",
"Weights": null
},
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": null,
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "traefik-ui",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "traefik",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"global",
"traefik",
"traefik.http.routers.dashboard.rule=Host(`traefik-ui.service.dc1.consul`)",
"traefik.http.routers.dashboard.service=api@internal"
],
"TaskName": "traefik",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": [
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/file.yml",
"EmbeddedTmpl": "http:\n serversTransports:\n insecureSkipVerify: true\n\nentryPoints:\n web:\n address: :80\n websecure:\n address: :443\n\nlog:\n level: DEBUG\n\nmetrics:\n prometheus:\n addRoutersLabels: true\n addServicesLabels: true\n\napi:\n dashboard: true\n insecure: true\n\nproviders:\n consulCatalog:\n exposedByDefault: true\n refreshInterval: 30s\n defaultRule: \"Host(`{{ .Name }}.service.dc1.consul`)\"\n endpoint:\n address: \"[[env \"attr.unique.network.ip-address\"]]:8500\"\n file:\n filename: /local/tls.yml\n\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "[[",
"Once": false,
"Perms": "0644",
"RightDelim": "]]",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/tls.yml",
"EmbeddedTmpl": "tls:\n certificates:\n - certFile: /local/duckdns_fullchain.pem\n keyFile: /local/duckdns_privkey.pem\n - certFile: /local/dedyn_fullchain.pem\n keyFile: /local/dedyn_privkey.pem\n stores:\n default:\n defaultCertificate:\n certFile: /local/duckdns_fullchain.pem\n keyFile: /local/duckdns_privkey.pem\n\n",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "0644",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/duckdns_fullchain.pem",
"EmbeddedTmpl": "{{ key \"letsconsul/*.fbleagh.duckdns.org/fullchain.cer\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "noop",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/duckdns_privkey.pem",
"EmbeddedTmpl": "{{ key \"letsconsul/*.fbleagh.duckdns.org/*.fbleagh.duckdns.org.key\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "restart",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/dedyn_fullchain.pem",
"EmbeddedTmpl": "{{ key \"letsconsul/*.fbleagh.dedyn.io/fullchain.cer\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
},
{
"ChangeMode": "noop",
"ChangeScript": null,
"ChangeSignal": "",
"DestPath": "local/dedyn_privkey.pem",
"EmbeddedTmpl": "{{ key \"letsconsul/*.fbleagh.dedyn.io/*.fbleagh.dedyn.io.key\" }}",
"Envvars": false,
"ErrMissingKey": false,
"Gid": null,
"LeftDelim": "{{",
"Once": false,
"Perms": "777",
"RightDelim": "}}",
"SourcePath": "",
"Splay": 5000000000,
"Uid": null,
"VaultGrace": 0,
"Wait": null
}
],
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 10000000000
},
"Volumes": null
}
],
"Type": "system",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 10000000000
},
"VaultNamespace": "",
"Version": 7,
"VersionTag": null
}

View File

@@ -0,0 +1,424 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 14152854,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "trilium",
"JobModifyIndex": 14153433,
"Meta": null,
"ModifyIndex": 14153445,
"Multiregion": null,
"Name": "trilium",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1761948663361166597,
"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": "trilium",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 8080,
"Value": 6699
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/mnt/configs/trilium:/data"
],
"image": "litestream/litestream:latest",
"args": [
"restore",
"-if-replica-exists",
"-if-db-not-exists",
"-o",
"/alloc/tmp/trilium.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/trilium.db"
]
},
"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": "restore",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": {
"volumes": [
"/mnt/configs/trilium:/home/node/trilium-data/data",
"/mnt/Public/configs/trilium/backup:/home/node/trilium-data/backup",
"/mnt/Public/configs/trilium/config:/home/node/trilium-data/config"
],
"image": "triliumnext/trilium:stable",
"memory_hard_limit": "2048",
"ports": [
"http"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"TRILIUM_DATA_DIR": "/home/node/trilium-data/data",
"TRILIUM_BACKUP_DIR": "/home/node/trilium-data/backup",
"TRILIUM_CONFIG_INI_PATH": "/home/node/trilium-data/config/config.ini"
},
"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": "trilium",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"trilium\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "trilium",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": null,
"Name": "trilium",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"trilium",
"web",
"urlprefix-/trilium",
"tools",
"traefik.http.routers.triliumlan.rule=Host(`trilium.service.dc1.consul`)",
"traefik.http.routers.triliumwan.rule=Host(`tril.fbleagh.duckdns.org`)",
"traefik.http.routers.triliumwan.middlewares=dex@consulcatalog",
"traefik.http.routers.triliumwan.tls=true"
],
"TaskName": "trilium",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/mnt/configs/trilium:/data"
],
"image": "litestream/litestream:latest",
"args": [
"replicate",
"/alloc/tmp/trilium.db",
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/trilium.db"
]
},
"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": "poststart",
"Sidecar": true
},
"LogConfig": {
"Disabled": false,
"MaxFileSizeMB": 10,
"MaxFiles": 10
},
"Meta": null,
"Name": "litestream",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 300,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 14,
"VersionTag": null
}

View File

@@ -0,0 +1,542 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.kernel.name}",
"Operand": "=",
"RTarget": "linux"
},
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "arm64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13569506,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "vaultwarden",
"JobModifyIndex": 13570343,
"Meta": null,
"ModifyIndex": 13991135,
"Multiregion": null,
"Name": "vaultwarden",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1738335274858544947,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "vaultwarden",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 80,
"Value": 8081
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"image": "vaultwarden/server:1.32.7",
"memory_hard_limit": 2048.0,
"ports": [
"http"
],
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}/data:/data"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"ADMIN_TOKEN": "VReYRX0RuSw3mxmGFG4+2ECY71l/wYmuD52NOWDur6e43z/inbUmJGUr5KU4wtjW",
"DATABASE_URL": "postgresql://postgres:postgres@master.postgres.service.dc1.consul:5432/vaultwarden",
"ENABLE_DB_WAL": "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": "vaultwarden",
"Resources": {
"CPU": 100,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 128,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": [
{
"Address": "",
"AddressMode": "auto",
"CanaryMeta": null,
"CanaryTags": null,
"Checks": [
{
"AddressMode": "",
"Args": null,
"Body": "",
"CheckRestart": null,
"Command": "",
"Expose": false,
"FailuresBeforeCritical": 0,
"FailuresBeforeWarning": 0,
"GRPCService": "",
"GRPCUseTLS": false,
"Header": null,
"InitialStatus": "",
"Interval": 10000000000,
"Method": "",
"Name": "service: \"vaultwarden\" check",
"Notes": "",
"OnUpdate": "require_healthy",
"Path": "",
"PortLabel": "",
"Protocol": "",
"SuccessBeforePassing": 0,
"TLSServerName": "",
"TLSSkipVerify": false,
"TaskName": "vaultwarden",
"Timeout": 2000000000,
"Type": "tcp"
}
],
"Cluster": "default",
"Connect": null,
"EnableTagOverride": false,
"Identity": null,
"Meta": {
"ALLOC": "${NOMAD_ALLOC_ID}"
},
"Name": "vaultwarden",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"vaultwarden",
"web",
"urlprefix-/vaultwarden",
"backend",
"traefik.http.routers.vaultwardenlan.rule=Host(`vaultwarden.service.dc1.consul`)",
"traefik.http.routers.vaultwardenwan.rule=Host(`vault.fbleagh.duckdns.org`)",
"traefik.http.routers.vaultwardenwan-admin.rule=(Host(`vault.fbleagh.duckdns.org`) && PathPrefix(`/admin/`))",
"traefik.http.routers.vaultwardenwan.tls=true",
"traefik.http.middlewares.vaultwardenwan-admin-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.4.0/22",
"traefik.http.routers.nginx-admin.middlewares=vaultwardenwan-admin-ipwhitelist",
"enable_gocast",
"gocast_vip=192.168.1.246/32",
"gocast_nat=tcp:8081:8081",
"gocast_nat=udp:8081:8081"
],
"TaskName": "vaultwarden",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
},
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"args": [
"flock",
"-x",
"/locks/${NOMAD_GROUP_NAME}_rsync.lock",
"rsync",
"-avz",
"--exclude='logs'",
"--exclude='/run/*.sock'",
"/configbackup/",
"/config/",
"--delete-before"
],
"image": "ghcr.io/sstent/rsync",
"memory_hard_limit": 2048.0,
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}/data:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks"
]
},
"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": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": [
"flock",
"-x",
"/locks/${NOMAD_GROUP_NAME}_rsync.lock",
"rsync",
"-av",
"--exclude='logs'",
"--exclude='/run/*.sock'",
"/config/",
"/configbackup/",
"--remove-source-files"
],
"image": "ghcr.io/sstent/rsync",
"memory_hard_limit": 2048.0,
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}/data:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup",
"/mnt/Public/config/locks:/locks"
]
},
"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": 20,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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",
"volumes": [
"/mnt/configs/${NOMAD_GROUP_NAME}/data:/config",
"/mnt/Public/config/${NOMAD_GROUP_NAME}:/configbackup"
],
"args": [
"client"
],
"image": "ghcr.io/sstent/rsync"
},
"Constraints": null,
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"CRON_TASK_1": "50 * * * * rsync -av --exclude='*.db' --exclude='*.db' --exclude='.*.db-litestream' --exclude='generations' /config/ /configbackup/;"
},
"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": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"ScalingPolicies": null,
"Schedule": null,
"Services": null,
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 5,
"VersionTag": null
}

View File

@@ -0,0 +1,242 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": null,
"ConsulNamespace": "",
"CreateIndex": 13721718,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "wallabag",
"JobModifyIndex": 13721718,
"Meta": null,
"ModifyIndex": 13990957,
"Multiregion": null,
"Name": "wallabag",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1745512053324129511,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "wallabag",
"Networks": [
{
"DynamicPorts": [
{
"HostNetwork": "default",
"Label": "http",
"To": 80
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"memory_hard_limit": 2048.0,
"ports": [
"http"
],
"image": "wallabag/wallabag:latest"
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"SYMFONY__ENV__DATABASE_NAME": "wallabag",
"SYMFONY__ENV__DOMAIN_NAME": "https://wallabag.fbleagh.duckdns.org",
"SYMFONY__ENV__DATABASE_PASSWORD": "wallabag",
"SYMFONY__ENV__MAILER_DSN": "gmail+smtp://stuart.stent@gmail.com:lsrhrzfembksmvgc@default",
"SYMFONY__ENV__FROM_EMAIL": "wallabag@wallabag.fbleagh.duckdns.org",
"SYMFONY__ENV__DATABASE_DRIVER": "pdo_pgsql",
"POSTGRES_PASSWORD": "postgres",
"SYMFONY__ENV__DATABASE_PORT": "5432",
"POPULATE_DATABASE": "False",
"SYMFONY__ENV__DATABASE_HOST": "master.postgres.service.dc1.consul",
"POSTGRES_USER": "postgres",
"SYMFONY__ENV__DATABASE_USER": "wallabag"
},
"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": "wallabag",
"Resources": {
"CPU": 500,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 256,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": "wallabag",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "http",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": [
"wallabag",
"tools",
"traefik.http.routers.wallabaglan.rule=Host(`wallabag.service.dc1.consul`)",
"traefik.http.routers.wallabagwan.rule=Host(`wallabag.fbleagh.duckdns.org`)",
"traefik.http.routers.wallabagwan.tls=true",
"traefik.http.middlewares.vaultwardenwan-admin-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.0/24",
"traefik.http.routers.nginx-admin.middlewares=vaultwardenwan-admin-ipwhitelist"
],
"TaskName": "wallabag",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 0,
"VersionTag": null
}

View File

@@ -0,0 +1,259 @@
{
"Affinities": null,
"AllAtOnce": false,
"Constraints": [
{
"LTarget": "${attr.cpu.arch}",
"Operand": "regexp",
"RTarget": "amd64"
}
],
"ConsulNamespace": "",
"CreateIndex": 13571990,
"Datacenters": [
"dc1"
],
"DispatchIdempotencyToken": "",
"Dispatched": false,
"ID": "wireguard",
"JobModifyIndex": 13892530,
"Meta": null,
"ModifyIndex": 14202927,
"Multiregion": null,
"Name": "wireguard",
"Namespace": "default",
"NodePool": "default",
"NomadTokenID": "",
"ParameterizedJob": null,
"ParentID": "",
"Payload": null,
"Periodic": null,
"Priority": 50,
"Region": "global",
"Spreads": null,
"Stable": true,
"Status": "running",
"StatusDescription": "",
"Stop": false,
"SubmitTime": 1753800396765131865,
"TaskGroups": [
{
"Affinities": null,
"Constraints": null,
"Consul": {
"Cluster": "default",
"Namespace": "",
"Partition": ""
},
"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": "wireguard",
"Networks": [
{
"ReservedPorts": [
{
"HostNetwork": "default",
"Label": "vpn",
"To": 51820,
"Value": 51820
},
{
"HostNetwork": "default",
"Label": "vpn_ui",
"To": 51821,
"Value": 51821
}
]
}
],
"PreventRescheduleOnLost": false,
"ReschedulePolicy": {
"Attempts": 0,
"Delay": 30000000000,
"DelayFunction": "exponential",
"Interval": 0,
"MaxDelay": 3600000000000,
"Unlimited": true
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"RenderTemplates": false
},
"Scaling": null,
"Services": null,
"ShutdownDelay": null,
"Spreads": null,
"StopAfterClientDisconnect": null,
"Tasks": [
{
"Actions": null,
"Affinities": null,
"Artifacts": null,
"CSIPluginConfig": null,
"Config": {
"volumes": [
"/mnt/Public/config/wireguard:/etc/wireguard"
],
"cap_add": [
"NET_ADMIN",
"SYS_MODULE"
],
"sysctl": [
{
"net.ipv4.conf.all.src_valid_mark": "1",
"net.ipv4.ip_forward": "1"
}
],
"image": "ghcr.io/wg-easy/wg-easy",
"ports": [
"vpn",
"vpn_ui"
]
},
"Constraints": [
{
"LTarget": "${attr.consul.version}",
"Operand": "semver",
"RTarget": ">= 1.8.0"
}
],
"Consul": null,
"DispatchPayload": null,
"Driver": "docker",
"Env": {
"UI_CHART_TYPE": "1",
"WG_PORT": "51820",
"UI_TRAFFIC_STATS": "true",
"WEBUI_HOST": "0.0.0.0",
"PGID": "1000",
"WG_ALLOWED_IPS": "0.0.0.0/0",
"PORT": "51821",
"WG_DEFAULT_DNS": "192.168.4.36, 8.8.8.8",
"PUID": "1000",
"WG_HOST": "wireguard.fbleagh.duckdns.org",
"TZ": "EST5EDT"
},
"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": "wireguard",
"Resources": {
"CPU": 50,
"Cores": 0,
"Devices": null,
"DiskMB": 0,
"IOPS": 0,
"MemoryMB": 100,
"MemoryMaxMB": 0,
"NUMA": null,
"Networks": null,
"SecretsMB": 0
},
"RestartPolicy": {
"Attempts": 2,
"Delay": 15000000000,
"Interval": 1800000000000,
"Mode": "fail",
"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": "wireguard",
"Namespace": "default",
"OnUpdate": "require_healthy",
"PortLabel": "vpn",
"Provider": "consul",
"TaggedAddresses": null,
"Tags": null,
"TaskName": "wireguard",
"Weights": null
}
],
"ShutdownDelay": 0,
"Templates": null,
"User": "",
"Vault": null,
"VolumeMounts": null
}
],
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "checks",
"HealthyDeadline": 300000000000,
"MaxParallel": 1,
"MinHealthyTime": 10000000000,
"ProgressDeadline": 600000000000,
"Stagger": 30000000000
},
"Volumes": null
}
],
"Type": "service",
"UI": null,
"Update": {
"AutoPromote": false,
"AutoRevert": false,
"Canary": 0,
"HealthCheck": "",
"HealthyDeadline": 0,
"MaxParallel": 1,
"MinHealthyTime": 0,
"ProgressDeadline": 0,
"Stagger": 30000000000
},
"VaultNamespace": "",
"Version": 6,
"VersionTag": null
}