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