forked from Deuxfleurs/nixcfg
Staging: remove Docker-based synapse config
This commit is contained in:
parent
ab7a770168
commit
1ac9790806
5 changed files with 0 additions and 261 deletions
|
@ -1,54 +0,0 @@
|
||||||
FROM amd64/debian:buster as builder
|
|
||||||
|
|
||||||
ARG VERSION
|
|
||||||
ARG S3_VERSION
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get -qq -y full-upgrade && \
|
|
||||||
apt-get install -y \
|
|
||||||
python3 \
|
|
||||||
python3-pip \
|
|
||||||
python3-dev \
|
|
||||||
python3-setuptools \
|
|
||||||
libffi-dev \
|
|
||||||
build-essential \
|
|
||||||
libssl-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
libjpeg62-turbo-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
# postgresql-dev \
|
|
||||||
libpq-dev \
|
|
||||||
virtualenv \
|
|
||||||
libxslt1-dev \
|
|
||||||
git
|
|
||||||
|
|
||||||
RUN virtualenv /root/matrix-env -p /usr/bin/python3
|
|
||||||
RUN . /root/matrix-env/bin/activate && \
|
|
||||||
pip3 install \
|
|
||||||
https://github.com/matrix-org/synapse/archive/v${VERSION}.tar.gz#egg=matrix-synapse[matrix-synapse-ldap3,postgres,resources.consent,saml2,url_preview] && \
|
|
||||||
pip3 install \
|
|
||||||
git+https://github.com/matrix-org/synapse-s3-storage-provider.git@${S3_VERSION}
|
|
||||||
|
|
||||||
FROM amd64/debian:buster
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get -qq -y full-upgrade && \
|
|
||||||
apt-get install -y \
|
|
||||||
python3 \
|
|
||||||
python3-distutils \
|
|
||||||
libffi6 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libssl1.1 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libpq5 \
|
|
||||||
zlib1g \
|
|
||||||
libjemalloc2 \
|
|
||||||
ca-certificates
|
|
||||||
|
|
||||||
ENV LD_PRELOAD /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
|
||||||
COPY --from=builder /root/matrix-env /root/matrix-env
|
|
||||||
COPY matrix-s3-async /usr/local/bin/matrix-s3-async
|
|
||||||
COPY matrix-s3-async-sqlite /usr/local/bin/matrix-s3-async-sqlite
|
|
||||||
COPY entrypoint.sh /usr/local/bin/entrypoint
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/entrypoint"]
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
. /root/matrix-env/bin/activate
|
|
||||||
exec "$@"
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cat > database.yaml <<EOF
|
|
||||||
user: $PG_USER
|
|
||||||
password: $PG_PASS
|
|
||||||
database: $PG_DB
|
|
||||||
host: $PG_HOST
|
|
||||||
port: $PG_PORT
|
|
||||||
EOF
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
/root/matrix-env/bin/s3_media_upload update-db 0d
|
|
||||||
/root/matrix-env/bin/s3_media_upload --no-progress check-deleted /var/lib/matrix-synapse/media
|
|
||||||
/root/matrix-env/bin/s3_media_upload --no-progress upload /var/lib/matrix-synapse/media matrix --delete --endpoint-url https://garage.deuxfleurs.fr
|
|
||||||
sleep 600
|
|
||||||
done
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cat > database.yaml <<EOF
|
|
||||||
sqlite:
|
|
||||||
database: $SYNAPSE_SQLITE_DB
|
|
||||||
EOF
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
/root/matrix-env/bin/s3_media_upload update-db 0d
|
|
||||||
/root/matrix-env/bin/s3_media_upload --no-progress check-deleted $SYNAPSE_MEDIA_STORE
|
|
||||||
/root/matrix-env/bin/s3_media_upload --no-progress upload $SYNAPSE_MEDIA_STORE $SYNAPSE_MEDIA_S3_BUCKET --delete --endpoint-url $S3_ENDPOINT
|
|
||||||
sleep 600
|
|
||||||
done
|
|
|
@ -1,175 +0,0 @@
|
||||||
job "im" {
|
|
||||||
datacenters = ["neptune"]
|
|
||||||
type = "service"
|
|
||||||
|
|
||||||
group "synapse" {
|
|
||||||
count = 1
|
|
||||||
|
|
||||||
network {
|
|
||||||
port "http" {
|
|
||||||
to = 8008
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ephemeral_disk {
|
|
||||||
size = 10000
|
|
||||||
}
|
|
||||||
|
|
||||||
restart {
|
|
||||||
attempts = 10
|
|
||||||
delay = "30s"
|
|
||||||
}
|
|
||||||
|
|
||||||
constraint {
|
|
||||||
attribute = "${attr.unique.hostname}"
|
|
||||||
operator = "!="
|
|
||||||
value = "caribou"
|
|
||||||
}
|
|
||||||
|
|
||||||
task "restore-db" {
|
|
||||||
lifecycle {
|
|
||||||
hook = "prestart"
|
|
||||||
sidecar = false
|
|
||||||
}
|
|
||||||
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "litestream/litestream:0.3.7"
|
|
||||||
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 = 100
|
|
||||||
memory_max = 1000
|
|
||||||
cpu = 1000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task "synapse" {
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "lxpz/amd64_synapse:1.49.2-4"
|
|
||||||
ports = [ "http" ]
|
|
||||||
|
|
||||||
command = "python"
|
|
||||||
args = [
|
|
||||||
"-m", "synapse.app.homeserver",
|
|
||||||
"-n",
|
|
||||||
"-c", "/etc/matrix-synapse/homeserver.yaml"
|
|
||||||
]
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"secrets:/etc/matrix-synapse",
|
|
||||||
"../alloc/data:/ephemeral",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
data = file("../config/homeserver.yaml")
|
|
||||||
destination = "secrets/homeserver.yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
data = file("../config/synapse.log.config.yaml")
|
|
||||||
destination = "secrets/synapse.log.config.yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
data = "{{ key \"secrets/synapse/signing_key\" }}"
|
|
||||||
destination = "secrets/signing_key"
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
memory = 2000
|
|
||||||
memory_max = 3000
|
|
||||||
cpu = 1000
|
|
||||||
}
|
|
||||||
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task "media-async-upload" {
|
|
||||||
driver = "docker"
|
|
||||||
|
|
||||||
config {
|
|
||||||
image = "lxpz/amd64_synapse:1.49.2-4"
|
|
||||||
readonly_rootfs = true
|
|
||||||
command = "/usr/local/bin/matrix-s3-async-sqlite"
|
|
||||||
work_dir = "/ephemeral"
|
|
||||||
volumes = [
|
|
||||||
"../alloc/data:/ephemeral",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
cpu = 100
|
|
||||||
memory = 100
|
|
||||||
memory_max = 500
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
data = <<EOH
|
|
||||||
SYNAPSE_SQLITE_DB=/ephemeral/homeserver.db
|
|
||||||
SYNAPSE_MEDIA_STORE=/ephemeral/media_store
|
|
||||||
SYNAPSE_MEDIA_S3_BUCKET=synapse-data
|
|
||||||
AWS_ACCESS_KEY_ID={{ key "secrets/synapse/s3_access_key" | trimSpace }}
|
|
||||||
AWS_SECRET_ACCESS_KEY={{ key "secrets/synapse/s3_secret_key" | trimSpace }}
|
|
||||||
AWS_DEFAULT_REGION=garage-staging
|
|
||||||
S3_ENDPOINT=http://{{ env "attr.unique.network.ip-address" }}:3990
|
|
||||||
|
|
||||||
EOH
|
|
||||||
destination = "secrets/env"
|
|
||||||
env = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task "replicate-db" {
|
|
||||||
driver = "docker"
|
|
||||||
config {
|
|
||||||
image = "litestream/litestream:0.3.7"
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
memory = 200
|
|
||||||
memory_max = 1000
|
|
||||||
cpu = 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue