diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-08-25 01:02:16 +0200 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-08-25 01:02:16 +0200 |
commit | e37c1f9057ed986ac50b86463a4dbe6bf5d77f02 (patch) | |
tree | 5f5757bde3cf8a694a70bd11afdcdf9b87806db8 /cluster/prod/app/matrix/build | |
parent | 3be2659aa19abfb7e676d33e9e7e1357c790a383 (diff) | |
download | nixcfg-e37c1f9057ed986ac50b86463a4dbe6bf5d77f02.tar.gz nixcfg-e37c1f9057ed986ac50b86463a4dbe6bf5d77f02.zip |
Deploy Matrix
Diffstat (limited to 'cluster/prod/app/matrix/build')
5 files changed, 107 insertions, 0 deletions
diff --git a/cluster/prod/app/matrix/build/docker-compose.yml b/cluster/prod/app/matrix/build/docker-compose.yml new file mode 100644 index 0000000..de56bdc --- /dev/null +++ b/cluster/prod/app/matrix/build/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.4' +services: + # Instant Messaging + riot: + build: + context: ./riotweb + args: + # https://github.com/vector-im/riot-web/releases + VERSION: 1.11.3 + image: superboum/amd64_riotweb:v31 + + synapse: + build: + context: ./matrix-synapse + args: + # https://github.com/matrix-org/synapse/releases + VERSION: 1.65.0 + # https://github.com/matrix-org/synapse-s3-storage-provider/commits/main + # Update with the latest commit on main each time you update the synapse version + # otherwise synapse may fail to launch due to incompatibility issues + # see this issue for an example: https://github.com/matrix-org/synapse-s3-storage-provider/issues/64 + S3_VERSION: ffd3fa477321608e57d27644197e721965e0e858 + image: superboum/amd64_synapse:v54 diff --git a/cluster/prod/app/matrix/build/matrix-synapse/Dockerfile b/cluster/prod/app/matrix/build/matrix-synapse/Dockerfile new file mode 100644 index 0000000..d410779 --- /dev/null +++ b/cluster/prod/app/matrix/build/matrix-synapse/Dockerfile @@ -0,0 +1,52 @@ +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 && \ + virtualenv /root/matrix-env -p /usr/bin/python3 && \ + . /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 entrypoint.sh /usr/local/bin/entrypoint + +ENTRYPOINT ["/usr/local/bin/entrypoint"] diff --git a/cluster/prod/app/matrix/build/matrix-synapse/entrypoint.sh b/cluster/prod/app/matrix/build/matrix-synapse/entrypoint.sh new file mode 100755 index 0000000..b93a702 --- /dev/null +++ b/cluster/prod/app/matrix/build/matrix-synapse/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/sh +. /root/matrix-env/bin/activate +exec "$@" diff --git a/cluster/prod/app/matrix/build/matrix-synapse/matrix-s3-async b/cluster/prod/app/matrix/build/matrix-synapse/matrix-s3-async new file mode 100755 index 0000000..e435144 --- /dev/null +++ b/cluster/prod/app/matrix/build/matrix-synapse/matrix-s3-async @@ -0,0 +1,16 @@ +#!/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 diff --git a/cluster/prod/app/matrix/build/riotweb/Dockerfile b/cluster/prod/app/matrix/build/riotweb/Dockerfile new file mode 100644 index 0000000..c768e87 --- /dev/null +++ b/cluster/prod/app/matrix/build/riotweb/Dockerfile @@ -0,0 +1,13 @@ +FROM amd64/debian:buster as builder + +ARG VERSION +WORKDIR /root + +RUN apt-get update && \ + apt-get install -y wget && \ + wget https://github.com/vector-im/element-web/releases/download/v${VERSION}/element-v${VERSION}.tar.gz && \ + tar xf element-v${VERSION}.tar.gz && \ + mv element-v${VERSION}/ riot/ + +FROM superboum/amd64_webserver:v3 +COPY --from=builder /root/riot /srv/http |