initial commit
This commit is contained in:
commit
851c8bfb03
3
.gitignore
vendored
Executable file
3
.gitignore
vendored
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
76
Dockerfile
Normal file
76
Dockerfile
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
FROM thallian/confd-env:latest
|
||||||
|
|
||||||
|
ENV VERSION v0.17.0-rc1
|
||||||
|
|
||||||
|
RUN addgroup synapse
|
||||||
|
RUN adduser -h /var/lib/synapse -D -G synapse synapse
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash \
|
||||||
|
coreutils \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
gcc \
|
||||||
|
postgresql-dev \
|
||||||
|
libffi \
|
||||||
|
libffi-dev \
|
||||||
|
libjpeg-turbo \
|
||||||
|
libjpeg-turbo-dev \
|
||||||
|
libssl1.0 \
|
||||||
|
libtool \
|
||||||
|
libxml2 \
|
||||||
|
libxml2-dev \
|
||||||
|
libxslt \
|
||||||
|
libxslt-dev \
|
||||||
|
linux-headers \
|
||||||
|
make \
|
||||||
|
musl \
|
||||||
|
musl-dev \
|
||||||
|
openldap \
|
||||||
|
openldap-dev \
|
||||||
|
openssl-dev \
|
||||||
|
pwgen \
|
||||||
|
py-pip \
|
||||||
|
py-virtualenv \
|
||||||
|
python \
|
||||||
|
python-dev \
|
||||||
|
sqlite \
|
||||||
|
sqlite-libs \
|
||||||
|
unzip \
|
||||||
|
zlib \
|
||||||
|
zlib-dev
|
||||||
|
|
||||||
|
RUN virtualenv -p python /var/lib/synapse
|
||||||
|
RUN source /var/lib/synapse/bin/activate && \
|
||||||
|
pip install --upgrade setuptools && \
|
||||||
|
pip install psycopg2 && \
|
||||||
|
pip install python-ldap && \
|
||||||
|
pip install https://github.com/matrix-org/synapse/tarball/$VERSION
|
||||||
|
|
||||||
|
RUN apk del \
|
||||||
|
coreutils \
|
||||||
|
file \
|
||||||
|
gcc \
|
||||||
|
postgresql-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libjpeg-turbo-dev \
|
||||||
|
libtool \
|
||||||
|
libxml2-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
linux-headers \
|
||||||
|
make \
|
||||||
|
musl-dev \
|
||||||
|
openldap-dev \
|
||||||
|
openssl-dev \
|
||||||
|
python-dev \
|
||||||
|
sqlite-libs \
|
||||||
|
zlib-dev
|
||||||
|
|
||||||
|
RUN chown -R synapse:synapse /var/lib/synapse
|
||||||
|
ENV HOME /var/lib/synapse
|
||||||
|
|
||||||
|
ADD /rootfs /
|
||||||
|
|
||||||
|
EXPOSE 8448
|
||||||
|
|
||||||
|
VOLUME /var/lib/synapse/media_store/ /var/lib/synapse/signing/ /etc/ssl/synapse/
|
3
rootfs/etc/confd/conf.d/server.yaml.toml
Normal file
3
rootfs/etc/confd/conf.d/server.yaml.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "server.yaml.tmpl"
|
||||||
|
dest = "/var/lib/synapse/server.yaml"
|
149
rootfs/etc/confd/templates/server.yaml.tmpl
Normal file
149
rootfs/etc/confd/templates/server.yaml.tmpl
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
tls_certificate_path: "/etc/ssl/synapse/fullchain.pem"
|
||||||
|
tls_private_key_path: "/etc/ssl/synapse/privkey.pem"
|
||||||
|
tls_dh_params_path: "/var/lib/synapse/signing/dhparams.pem"
|
||||||
|
no_tls: False
|
||||||
|
|
||||||
|
server_name: "{{getenv "SERVER_NAME"}}"
|
||||||
|
|
||||||
|
pid_file: /var/lib/synapse/homeserver.pid
|
||||||
|
|
||||||
|
web_client: True
|
||||||
|
|
||||||
|
# The public-facing base URL for the client API (not including _matrix/...)
|
||||||
|
# public_baseurl: https://example.com:8448/
|
||||||
|
|
||||||
|
soft_file_limit: 0
|
||||||
|
|
||||||
|
listeners:
|
||||||
|
-
|
||||||
|
port: 8448
|
||||||
|
bind_address: ''
|
||||||
|
type: httpp
|
||||||
|
tls: true
|
||||||
|
x_forwarded: false
|
||||||
|
resources:
|
||||||
|
-
|
||||||
|
names:
|
||||||
|
- client
|
||||||
|
- webclient
|
||||||
|
compress: true
|
||||||
|
|
||||||
|
- names: [federation]
|
||||||
|
compress: false
|
||||||
|
|
||||||
|
- port: 8008
|
||||||
|
tls: false
|
||||||
|
bind_address: ''
|
||||||
|
type: http
|
||||||
|
x_forwarded: false
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- names: [client, webclient]
|
||||||
|
compress: true
|
||||||
|
- names: [federation]
|
||||||
|
compress: false
|
||||||
|
|
||||||
|
database:
|
||||||
|
name: "psycopg2"
|
||||||
|
args:
|
||||||
|
user: {{getenv "DB_USER"}}
|
||||||
|
password: {{getenv "DB_PASSWORD"}}
|
||||||
|
database: {{getenv "DB_NAME"}}
|
||||||
|
host: {{getenv "DB_HOST"}}
|
||||||
|
cp_min: 5
|
||||||
|
cp_max: 10
|
||||||
|
|
||||||
|
event_cache_size: "10K"
|
||||||
|
|
||||||
|
verbose: 0
|
||||||
|
log_file: "/var/lib/synapse/homeserver.log"
|
||||||
|
log_config: "/var/lib/synapse/log.config"
|
||||||
|
|
||||||
|
rc_messages_per_second: 0.2
|
||||||
|
rc_message_burst_count: 10.0
|
||||||
|
federation_rc_window_size: 1000
|
||||||
|
federation_rc_sleep_limit: 10
|
||||||
|
federation_rc_sleep_delay: 500
|
||||||
|
federation_rc_reject_limit: 50
|
||||||
|
federation_rc_concurrent: 3
|
||||||
|
|
||||||
|
media_store_path: "/var/lib/synapse/media_store"
|
||||||
|
uploads_path: "/var/lib/synapse/uploads"
|
||||||
|
max_upload_size: "{{getenv "MAX_UPLOAD_SIZE"}}"
|
||||||
|
max_image_pixels: "{{getenv "MAX_THUMBNAIL_PIXELS"}}"
|
||||||
|
dynamic_thumbnails: {{getenv "DYNAMIC_THUMBNAILS"}}
|
||||||
|
|
||||||
|
thumbnail_sizes:
|
||||||
|
- width: 32
|
||||||
|
height: 32
|
||||||
|
method: crop
|
||||||
|
- width: 96
|
||||||
|
height: 96
|
||||||
|
method: crop
|
||||||
|
- width: 320
|
||||||
|
height: 240
|
||||||
|
method: scale
|
||||||
|
- width: 640
|
||||||
|
height: 480
|
||||||
|
method: scale
|
||||||
|
- width: 800
|
||||||
|
height: 600
|
||||||
|
method: scale
|
||||||
|
|
||||||
|
url_preview_enabled: False
|
||||||
|
enable_registration_captcha: False
|
||||||
|
|
||||||
|
# The public URIs of the TURN server to give to clients
|
||||||
|
turn_uris: []
|
||||||
|
|
||||||
|
# The shared secret used to compute passwords for the TURN server
|
||||||
|
turn_shared_secret: "YOUR_SHARED_SECRET"
|
||||||
|
|
||||||
|
# How long generated TURN credentials last
|
||||||
|
turn_user_lifetime: "1h"
|
||||||
|
|
||||||
|
enable_registration: False
|
||||||
|
allow_guest_access: False
|
||||||
|
|
||||||
|
trusted_third_party_id_servers:
|
||||||
|
- matrix.org
|
||||||
|
- vector.im
|
||||||
|
|
||||||
|
enable_metrics: {{getenv "ENABLE_METRICS"}}
|
||||||
|
report_stats: {{getenv "REPORT_STATS"}}
|
||||||
|
|
||||||
|
room_invite_state_types:
|
||||||
|
- "m.room.join_rules"
|
||||||
|
- "m.room.canonical_alias"
|
||||||
|
- "m.room.avatar"
|
||||||
|
- "m.room.name"
|
||||||
|
|
||||||
|
app_service_config_files: []
|
||||||
|
|
||||||
|
macaroon_secret_key: "{{getenv "MACAROON_SECRET_KEY"}}"
|
||||||
|
expire_access_token: False
|
||||||
|
|
||||||
|
signing_key_path: "/var/lib/synapse/signing/signing.key"
|
||||||
|
old_signing_keys: {}
|
||||||
|
|
||||||
|
key_refresh_interval: "1d" # 1 Day.
|
||||||
|
|
||||||
|
perspectives:
|
||||||
|
servers:
|
||||||
|
"matrix.org":
|
||||||
|
verify_keys:
|
||||||
|
"ed25519:auto":
|
||||||
|
key: "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw"
|
||||||
|
|
||||||
|
ldap_config:
|
||||||
|
enabled: true
|
||||||
|
uri: "{{getenv "LDAP_URI"}}"
|
||||||
|
start_tls: true
|
||||||
|
base: "{{getenv "LDAP_BASE_DN"}}"
|
||||||
|
attributes:
|
||||||
|
uid: "{{getenv "LDAP_UID_ATTRIBUTE"}}"
|
||||||
|
mail: "{{getenv "LDAP_MAIL_ATTRIBUTE"}}"
|
||||||
|
name: "{{getenv "LDAP_NAME_ATTRIBUTE"}}"
|
||||||
|
bind_dn: "{{getenv "LDAP_BIND_DN"}}"
|
||||||
|
bind_password: "{{getenv "LDAPBIND_PASSWORD"}}"
|
||||||
|
filter: "{{getenv "LDAP_FILTER"}}"
|
10
rootfs/etc/cont-init.d/synapse-keys
Normal file
10
rootfs/etc/cont-init.d/synapse-keys
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/with-contenv sh
|
||||||
|
|
||||||
|
if [ ! -f /var/lib/synapse/signing/signing.key ]; then
|
||||||
|
source /var/lib/synapse/bin/activate
|
||||||
|
s6-setuidgid synapse python -B -m synapse.app.homeserver -c server.yaml --generate-config --report-stats=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /var/lib/synapse/signing/dhparams.pem ]; then
|
||||||
|
openssl dhparam -out /var/lib/synapse/signing/dhparams.pem $DHPARAM_LENGTH
|
||||||
|
fi
|
2
rootfs/etc/fix-attrs.d/01-synapse
Normal file
2
rootfs/etc/fix-attrs.d/01-synapse
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/var/lib/synapse/signing/ true synapse 0640 0750
|
||||||
|
/var/lib/synapse/media_store/ true synapse 0640 0750
|
5
rootfs/etc/services.d/synapse/run
Normal file
5
rootfs/etc/services.d/synapse/run
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/with-contenv sh
|
||||||
|
|
||||||
|
cd /var/lib/synapse
|
||||||
|
source /var/lib/synapse/bin/activate
|
||||||
|
s6-setuidgid synapse python -B -m synapse.app.homeserver -c server.yaml
|
Loading…
Reference in New Issue
Block a user