2021-12-25 21:39:05 +00:00
|
|
|
job "im" {
|
2021-12-29 21:15:49 +00:00
|
|
|
datacenters = ["neptune"]
|
|
|
|
type = "service"
|
|
|
|
|
|
|
|
group "synapse" {
|
|
|
|
count = 1
|
2021-12-25 18:40:51 +00:00
|
|
|
|
2021-12-29 21:15:49 +00:00
|
|
|
constraint {
|
|
|
|
attribute = "${attr.unique.hostname}"
|
|
|
|
operator = "="
|
|
|
|
value = "cariacou"
|
|
|
|
}
|
2021-12-25 18:40:51 +00:00
|
|
|
|
2021-12-29 21:15:49 +00:00
|
|
|
network {
|
|
|
|
port "http" {
|
|
|
|
to = 8008
|
|
|
|
}
|
|
|
|
}
|
2021-12-25 18:40:51 +00:00
|
|
|
|
2021-12-29 23:03:41 +00:00
|
|
|
ephemeral_disk {
|
|
|
|
size = 1000
|
|
|
|
}
|
|
|
|
|
|
|
|
task "restore-db" {
|
|
|
|
lifecycle {
|
|
|
|
hook = "prestart"
|
|
|
|
sidecar = false
|
|
|
|
}
|
|
|
|
|
|
|
|
driver = "docker"
|
|
|
|
config {
|
|
|
|
image = "litestream/litestream"
|
|
|
|
args = [
|
|
|
|
"restore", "-config", "/etc/litestream.yml", "/ephemeral/homeserver.db"
|
|
|
|
]
|
|
|
|
volumes = [
|
|
|
|
"../alloc/data:/ephemeral",
|
|
|
|
"secrets/litestream.yml:/etc/litestream.yml"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
template {
|
|
|
|
data = file("../config/litestream.yml")
|
|
|
|
destination = "secrets/litestream.yml"
|
|
|
|
}
|
|
|
|
|
|
|
|
resources {
|
|
|
|
memory = 1000
|
|
|
|
cpu = 1000
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-29 21:15:49 +00:00
|
|
|
task "synapse" {
|
|
|
|
driver = "docker"
|
|
|
|
config {
|
|
|
|
image = "matrixdotorg/synapse:v1.48.0"
|
|
|
|
ports = [ "http" ]
|
2021-12-29 23:03:41 +00:00
|
|
|
|
|
|
|
entrypoint = [ "/usr/local/bin/python" ]
|
|
|
|
args = [
|
|
|
|
"-m", "synapse.app.homeserver",
|
|
|
|
"-n",
|
|
|
|
"-c", "/etc/matrix-synapse/homeserver.yaml"
|
|
|
|
]
|
|
|
|
|
2021-12-25 18:40:51 +00:00
|
|
|
volumes = [
|
2021-12-29 23:03:41 +00:00
|
|
|
"secrets:/etc/matrix-synapse",
|
|
|
|
"../alloc/data:/ephemeral",
|
2021-12-25 21:39:05 +00:00
|
|
|
"/mnt/ssd/synapse:/data",
|
2021-12-25 18:40:51 +00:00
|
|
|
]
|
2021-12-29 21:15:49 +00:00
|
|
|
}
|
2021-12-29 23:03:41 +00:00
|
|
|
|
|
|
|
template {
|
|
|
|
data = file("../config/homeserver.yaml")
|
|
|
|
destination = "secrets/homeserver.yaml"
|
|
|
|
}
|
|
|
|
|
|
|
|
template {
|
|
|
|
data = "{{ key \"secrets/synapse/signing_key\" }}"
|
|
|
|
destination = "secrets/signing_key"
|
|
|
|
}
|
|
|
|
|
|
|
|
resources {
|
|
|
|
memory = 1500
|
|
|
|
cpu = 1000
|
|
|
|
}
|
|
|
|
|
|
|
|
restart {
|
|
|
|
attempts = 3
|
|
|
|
delay = "30s"
|
|
|
|
}
|
|
|
|
|
|
|
|
service {
|
|
|
|
port = "http"
|
|
|
|
tags = [
|
|
|
|
"tricot matrix.home.adnab.me 100",
|
|
|
|
"tricot matrix.home.adnab.me:443 100",
|
|
|
|
"tricot-add-header Access-Control-Allow-Origin *",
|
|
|
|
]
|
|
|
|
check {
|
|
|
|
type = "http"
|
|
|
|
path = "/"
|
|
|
|
interval = "10s"
|
|
|
|
timeout = "2s"
|
|
|
|
}
|
|
|
|
}
|
2021-12-29 21:15:49 +00:00
|
|
|
}
|
2021-12-25 18:40:51 +00:00
|
|
|
|
2021-12-29 23:03:41 +00:00
|
|
|
task "replicate-db" {
|
|
|
|
driver = "docker"
|
|
|
|
config {
|
|
|
|
image = "litestream/litestream"
|
|
|
|
args = [
|
|
|
|
"replicate", "-config", "/etc/litestream.yml"
|
|
|
|
]
|
|
|
|
volumes = [
|
|
|
|
"../alloc/data:/ephemeral",
|
|
|
|
"secrets/litestream.yml:/etc/litestream.yml"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
template {
|
|
|
|
data = file("../config/litestream.yml")
|
|
|
|
destination = "secrets/litestream.yml"
|
|
|
|
}
|
2021-12-25 18:40:51 +00:00
|
|
|
|
2021-12-29 23:03:41 +00:00
|
|
|
resources {
|
|
|
|
memory = 500
|
|
|
|
cpu = 100
|
2021-12-29 21:15:49 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-12-25 18:40:51 +00:00
|
|
|
}
|