chore: backup infrastructure configurations [skip ci]
This commit is contained in:
@@ -2,6 +2,12 @@ job "trilium" {
|
||||
datacenters = ["dc1"]
|
||||
type = "service"
|
||||
|
||||
constraint {
|
||||
attribute = "${node.unique.name}"
|
||||
value = "odroid7"
|
||||
}
|
||||
|
||||
|
||||
group "trilium" {
|
||||
count = 1
|
||||
|
||||
@@ -38,7 +44,7 @@ job "trilium" {
|
||||
ports = ["http"]
|
||||
volumes = [
|
||||
"/mnt/configs/trilium:/home/node/trilium-data/data",
|
||||
"/mnt/Public/configs/trilium/backup:/home/node/trilium-data/backup",
|
||||
"/mnt/Public/configs/trilium/backup:/home/node/backup",
|
||||
"/mnt/Public/configs/trilium/config:/home/node/trilium-data/config"
|
||||
|
||||
|
||||
@@ -46,8 +52,8 @@ job "trilium" {
|
||||
}
|
||||
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"
|
||||
TRILIUM_BACKUP_DIRxx="/home/node/backup"
|
||||
TRILIUM_CONFIG_INI_PATH="/home/node/trilium-data/config/config.ini"
|
||||
|
||||
}
|
||||
resources {
|
||||
@@ -75,6 +81,46 @@ job "trilium" {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#inside group "trilium" ...rsync sidecar to copy trilium native backup to public
|
||||
|
||||
task "rsync-sidecar" {
|
||||
driver = "docker"
|
||||
|
||||
lifecycle {
|
||||
hook = "poststart"
|
||||
sidecar = true
|
||||
}
|
||||
|
||||
config {
|
||||
image = "alpine:latest"
|
||||
command = "/bin/sh"
|
||||
memory_hard_limit = "2048"
|
||||
args = [
|
||||
"-c",
|
||||
# 1. Install rsync
|
||||
# 2. Enter infinite loop
|
||||
# 3. Rsync data -> backup
|
||||
# 4. Sleep 30 mins (1800 seconds)
|
||||
"apk add --no-cache rsync && while true; do echo '[Sidecar] Starting rsync...'; rsync -av --delete /data/ /backup/; echo '[Sidecar] Done. Sleeping 30m...'; sleep 1800; done"
|
||||
]
|
||||
|
||||
# Ensure these match the paths you want to sync
|
||||
volumes = [
|
||||
"/mnt/configs/trilium:/data", # Source
|
||||
"/mnt/Public/configs/trilium/backup:/backup" # Destination
|
||||
]
|
||||
}
|
||||
|
||||
resources {
|
||||
cpu = 50
|
||||
memory = 50
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# Litestream sidecar for continuous replication
|
||||
task "litestream" {
|
||||
driver = "docker"
|
||||
@@ -86,7 +132,7 @@ job "trilium" {
|
||||
image = "litestream/litestream:latest"
|
||||
args = [
|
||||
"replicate",
|
||||
"/alloc/tmp/trilium.db",
|
||||
"/data/document.db",
|
||||
"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/trilium.db"
|
||||
]
|
||||
volumes = [
|
||||
|
||||
Reference in New Issue
Block a user