Staging: remove Docker-based synapse config

This commit is contained in:
Alex 2022-11-29 22:03:48 +01:00
parent ab7a770168
commit 1ac9790806
Signed by: lx
GPG key ID: 0E496D15096376BE
5 changed files with 0 additions and 261 deletions

View file

@ -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"]

View file

@ -1,3 +0,0 @@
#!/bin/sh
. /root/matrix-env/bin/activate
exec "$@"

View file

@ -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

View file

@ -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

View file

@ -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
}
}
}
}