chore: backup infrastructure configurations [skip ci]
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T02:52:15.930781+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T03:52:16.199077+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T04:52:16.451331+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T05:52:16.700926+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T06:52:16.942536+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T07:52:17.241685+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T08:52:17.462682+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T09:52:17.694911+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T10:52:17.932955+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T11:52:18.207285+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T12:52:18.448214+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T13:52:18.667953+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T14:52:18.880569+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T15:52:19.069146+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T16:52:19.280844+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T17:52:19.591846+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T18:52:19.823937+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T19:52:20.066260+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T20:52:20.311531+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T21:52:20.574235+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T22:52:20.835497+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-10T23:52:21.149870+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-11T00:52:21.468688+00:00"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-05-11T01:52:21.908297+00:00"}
|
||||||
110
nomad_backup/homeassistant.hcl
Normal file
110
nomad_backup/homeassistant.hcl
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
job "homeassistant" {
|
||||||
|
datacenters = ["dc1"]
|
||||||
|
type = "service"
|
||||||
|
|
||||||
|
constraint {
|
||||||
|
attribute = "${attr.kernel.name}"
|
||||||
|
value = "linux"
|
||||||
|
}
|
||||||
|
|
||||||
|
constraint {
|
||||||
|
attribute = "${attr.unique.hostname}"
|
||||||
|
operator = "regexp"
|
||||||
|
value = "odroid.*"
|
||||||
|
}
|
||||||
|
|
||||||
|
group "hass" {
|
||||||
|
count = 1
|
||||||
|
|
||||||
|
restart {
|
||||||
|
attempts = 99
|
||||||
|
interval = "1h"
|
||||||
|
delay = "10s"
|
||||||
|
mode = "delay"
|
||||||
|
}
|
||||||
|
|
||||||
|
task "wait-for-postgres" {
|
||||||
|
driver = "docker"
|
||||||
|
lifecycle {
|
||||||
|
hook = "prestart"
|
||||||
|
sidecar = false
|
||||||
|
}
|
||||||
|
config {
|
||||||
|
image = "postgres:16-alpine"
|
||||||
|
command = "sh"
|
||||||
|
args = ["-c", "until pg_isready -h master.postgres.service.dc1.consul -U hass; do sleep 3; done"]
|
||||||
|
}
|
||||||
|
resources {
|
||||||
|
cpu = 50
|
||||||
|
memory = 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task "config-backup" {
|
||||||
|
driver = "docker"
|
||||||
|
lifecycle {
|
||||||
|
hook = "poststart"
|
||||||
|
sidecar = true
|
||||||
|
}
|
||||||
|
config {
|
||||||
|
image = "alpine:3.19"
|
||||||
|
command = "sh"
|
||||||
|
args = ["-c", "apk add --no-cache rsync && while true; do rsync -a --delete --exclude='*.db*' --exclude='*.log*' --exclude='tts/' --exclude='deps/' --exclude='__pycache__/' /config/ /configbackup/; sleep 1800; done"]
|
||||||
|
volumes = [
|
||||||
|
"/mnt/Public/config/homeassistant:/config:ro",
|
||||||
|
"/mnt/Public/config/homeassistant-backup:/configbackup",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
resources {
|
||||||
|
cpu = 30
|
||||||
|
memory = 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task "hass" {
|
||||||
|
driver = "docker"
|
||||||
|
config {
|
||||||
|
image = "linuxserver/homeassistant:latest"
|
||||||
|
network_mode = "host"
|
||||||
|
cap_add = ["NET_ADMIN"]
|
||||||
|
volumes = [
|
||||||
|
"/etc/localtime:/etc/localtime:ro",
|
||||||
|
"/mnt/Public/config/homeassistant:/config",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
env {
|
||||||
|
JEMALLOC_DISABLE = true
|
||||||
|
PUID = "1000"
|
||||||
|
PGID = "1000"
|
||||||
|
}
|
||||||
|
|
||||||
|
resources {
|
||||||
|
cpu = 256
|
||||||
|
memory = 512
|
||||||
|
}
|
||||||
|
|
||||||
|
service {
|
||||||
|
name = "homeassistant"
|
||||||
|
tags = ["global", "homeassistant", "migration-target", "logo=home-assistant"]
|
||||||
|
port = "http"
|
||||||
|
|
||||||
|
check {
|
||||||
|
type = "http"
|
||||||
|
path = "/api/config"
|
||||||
|
interval = "10s"
|
||||||
|
timeout = "2s"
|
||||||
|
header {
|
||||||
|
Authorization = ["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3MGI3ZmQzN2RhNjg0ZDcwYmI0MzhlYjJhNzc1NTNjMSIsImlhdCI6MTc3ODQ1Njc1MiwiZXhwIjoyMDkzODE2NzUyfQ.gAWoByWWDDW9YSUpTZHb-xtdiFo-0u5RqHsxKhMQ4rc"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
network {
|
||||||
|
port "http" {
|
||||||
|
static = 8124
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,57 +2,60 @@ job "wireguard" {
|
|||||||
region = "global"
|
region = "global"
|
||||||
datacenters = ["dc1"]
|
datacenters = ["dc1"]
|
||||||
type = "service"
|
type = "service"
|
||||||
// constraint {
|
|
||||||
// attribute = "${attr.cpu.arch}"
|
constraint {
|
||||||
// operator = "regexp"
|
attribute = "${node.unique.name}"
|
||||||
// value = "arm"
|
value = "opti1"
|
||||||
// }
|
}
|
||||||
|
|
||||||
group "wireguard" {
|
group "wireguard" {
|
||||||
count = 1
|
count = 1
|
||||||
|
|
||||||
|
|
||||||
task "wireguard" {
|
task "wireguard" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
image = "lscr.io/linuxserver/wireguard"
|
image = "ghcr.io/wg-easy/wg-easy"
|
||||||
ports = ["vpn"]
|
ports = ["vpn", "ui"]
|
||||||
volumes = [
|
volumes = [
|
||||||
"/mnt/Public/config/wireguard:/config",
|
"/mnt/Public/config/wireguard:/etc/wireguard",
|
||||||
"/lib/modules:/lib/modules"
|
]
|
||||||
]
|
cap_add = ["NET_ADMIN", "SYS_MODULE"]
|
||||||
cap_add = ["NET_ADMIN","SYS_MODULE"]
|
|
||||||
// network_mode = "host"
|
|
||||||
|
|
||||||
// network_mode = "container:gocast-${NOMAD_ALLOC_ID}"
|
|
||||||
sysctl = {
|
sysctl = {
|
||||||
"net.ipv4.conf.all.src_valid_mark"="1"
|
"net.ipv4.conf.all.src_valid_mark" = "1"
|
||||||
|
"net.ipv4.ip_forward" = "1"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
env {
|
||||||
|
TZ = "EST5EDT"
|
||||||
|
WG_HOST = "wireguard.fbleagh.duckdns.org"
|
||||||
|
WG_PORT = 51820
|
||||||
|
WG_DEFAULT_DNS = "192.168.4.250,192.168.4.1,1.1.1.1"
|
||||||
|
WG_DEFAULT_ADDRESS = "10.8.0.x"
|
||||||
|
WG_ALLOWED_IPS = "0.0.0.0/0"
|
||||||
|
PASSWORD_HASH = "$2a$12$WAdMQQAoOqtANtsH09hVtuOnCvvghOX9oLZjGkUsovOjgkbPmMdtq"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
env {
|
|
||||||
TZ = "EST5EDT"
|
|
||||||
PUID = 1000
|
|
||||||
PGID = 1000
|
|
||||||
SERVERURL="wireguard.fbleagh.duckdns.org"
|
|
||||||
SERVERPORT=51820
|
|
||||||
PEERS="StuPhone,SurfaceGo,Surface,SurfaceGo3"
|
|
||||||
PEERDNS="192.168.1.250,192.168.1.1,1.1.1.1"
|
|
||||||
// INTERNAL_SUBNET= "192.168.1.0"
|
|
||||||
ALLOWEDIPS="0.0.0.0/0"
|
|
||||||
}
|
|
||||||
service {
|
service {
|
||||||
name = "${TASKGROUP}"
|
name = "${TASKGROUP}"
|
||||||
port = "vpn"
|
port = "vpn"
|
||||||
tags = ["enable_gocast",
|
tags = [
|
||||||
|
"enable_gocast",
|
||||||
"gocast_vip=192.168.1.241/32",
|
"gocast_vip=192.168.1.241/32",
|
||||||
"gocast_nat=tcp:51820:51820",
|
"gocast_nat=tcp:51820:51820",
|
||||||
"gocast_nat=udp:51820:51820"]
|
"gocast_nat=udp:51820:51820",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service {
|
||||||
|
name = "${TASKGROUP}-ui"
|
||||||
|
port = "ui"
|
||||||
|
tags = ["wireguard-ui"]
|
||||||
}
|
}
|
||||||
|
|
||||||
resources {
|
resources {
|
||||||
cpu = 50
|
cpu = 50
|
||||||
memory = 100
|
memory = 128
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,6 +64,10 @@ job "wireguard" {
|
|||||||
static = 51820
|
static = 51820
|
||||||
to = 51820
|
to = 51820
|
||||||
}
|
}
|
||||||
|
port "ui" {
|
||||||
|
static = 51821
|
||||||
|
to = 51821
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user