Fixed nginx crashes and added email

This commit is contained in:
msbt
2018-03-19 23:26:52 +01:00
parent b318fa557f
commit 3c9f74f6f7
4 changed files with 50 additions and 10 deletions

View File

@@ -1,3 +1,10 @@
[0.1.3]
* Changed log location of nginx due to backup crashes
[0.1.2]
* Updated logo (transparent)
* Enabled email settings
[0.1.1] [0.1.1]
* Removed the Riot part of the installation due to security * Removed the Riot part of the installation due to security
* Changed from Sqlite to Postgres * Changed from Sqlite to Postgres

View File

@@ -24,7 +24,8 @@
"addons": { "addons": {
"localstorage": {}, "localstorage": {},
"ldap": {}, "ldap": {},
"postgresql": {} "postgresql": {},
"sendmail": {}
}, },
"manifestVersion": 1, "manifestVersion": 1,
"website": "https://matrix.org", "website": "https://matrix.org",

View File

@@ -3,6 +3,8 @@ MAINTAINER Authors name <support@cloudron.io>
RUN mkdir -p /app/code RUN mkdir -p /app/code
RUN mkdir -p /app/data RUN mkdir -p /app/data
RUN mkdir -p /app/data/templates
WORKDIR /app/code WORKDIR /app/code
EXPOSE 8000 EXPOSE 8000
@@ -11,18 +13,18 @@ EXPOSE 8000
RUN rm /etc/nginx/sites-enabled/* RUN rm /etc/nginx/sites-enabled/*
ADD nginx_matrix.conf /etc/nginx/sites-enabled/ ADD nginx_matrix.conf /etc/nginx/sites-enabled/
RUN rm -rf /var/lib/nginx && ln -sf /app/data/nginx /var/lib/nginx RUN rm -rf /var/lib/nginx && ln -sf /app/data/nginx /var/lib/nginx
RUN rm -rf /var/log/nginx && ln -sf /app/data/nginx_log /var/log/nginx RUN rm -rf /var/log/nginx && ln -sf /run/nginx_log /var/log/nginx
# TURN # TURN
RUN apt update && apt-get install -y coturn RUN apt update && apt-get install -y coturn
RUN sed -e 's,#TURNSERVER_ENABLED=1,TURNSERVER_ENABLED=1,' -i /etc/default/coturn \ RUN sed -e 's,#TURNSERVER_ENABLED=1,TURNSERVER_ENABLED=1,' -i /etc/default/coturn \
&& rm /etc/turnserver.conf \ && rm /etc/turnserver.conf \
&& ln -s /app/data/turnserver.conf /etc/turnserver.conf && ln -s /app/data/turnserver.conf /etc/turnserver.conf
# Synapse # Synapse
# a local copy is needed because of the mail templates, else the pip installation would suffice
RUN git clone https://github.com/matrix-org/synapse.git
RUN apt-get install -y build-essential python2.7-dev libffi-dev \ RUN apt-get install -y build-essential python2.7-dev libffi-dev \
python-pip python-setuptools sqlite3 \ python-pip python-setuptools sqlite3 \
libssl-dev libjpeg-dev libxslt1-dev libssl-dev libjpeg-dev libxslt1-dev
@@ -31,6 +33,9 @@ RUN pip install --upgrade setuptools
RUN pip install psycopg2-binary py-bcrypt RUN pip install psycopg2-binary py-bcrypt
RUN pip install https://github.com/matrix-org/synapse/tarball/master RUN pip install https://github.com/matrix-org/synapse/tarball/master
# Identity Server
# fix! RUN pip install https://github.com/matrix-org/sydent/tarball/master
# copy index.html # copy index.html
COPY index.html /app/code COPY index.html /app/code

View File

@@ -8,10 +8,12 @@ if [[ ! -d /app/data/synapse ]]; then
# copy turn config # copy turn config
cp /usr/share/coturn/examples/etc/turnserver.conf /app/data/turnserver.conf cp /usr/share/coturn/examples/etc/turnserver.conf /app/data/turnserver.conf
# copy email templates for matrix
cp -r /app/code/synapse/res/templates /app/data/templates
#set default TURN listening port #set default TURN listening port
if [ -z ${TURN_TLS_PORT+x} ]; then TURN_TLS_PORT="5349"; else echo "TURN_TLS_PORT is set to '$TURN_TLS_PORT'"; fi if [ -z ${TURN_TLS_PORT+x} ]; then TURN_TLS_PORT="5349"; else echo "TURN_TLS_PORT is set to '$TURN_TLS_PORT'"; fi
mkdir -p /app/data/synapse mkdir -p /app/data/synapse
cd /app/data/synapse cd /app/data/synapse
python -m synapse.app.homeserver \ python -m synapse.app.homeserver \
@@ -20,6 +22,10 @@ if [[ ! -d /app/data/synapse ]]; then
--report-stats=no \ --report-stats=no \
--generate-config --generate-config
# python -m sydent.sydent \
# --config-path sydent.yaml \
# --generate-config
# synapse config # synapse config
sed -i "s/server_name:.*/server_name: ${APP_DOMAIN}/" homeserver.yaml sed -i "s/server_name:.*/server_name: ${APP_DOMAIN}/" homeserver.yaml
sed -i "s/web_client:.*/web_client: False/" homeserver.yaml sed -i "s/web_client:.*/web_client: False/" homeserver.yaml
@@ -48,6 +54,7 @@ if [[ ! -d /app/data/synapse ]]; then
sed -i "s/enable_group_creation:.*/enable_group_creation: True/" homeserver.yaml sed -i "s/enable_group_creation:.*/enable_group_creation: True/" homeserver.yaml
sed -i "s/#user_directory:/user_directory:/" homeserver.yaml sed -i "s/#user_directory:/user_directory:/" homeserver.yaml
sed -i "s/# search_all_users:.*/ search_all_users: True/" homeserver.yaml sed -i "s/# search_all_users:.*/ search_all_users: True/" homeserver.yaml
sed -i "s/log_file: .*/log_file: \"\/app\/data\/synapse\/homeserver.log\"/" homeserver.yaml
# coturn # coturn
@@ -61,7 +68,7 @@ if [[ ! -d /app/data/synapse ]]; then
sed -i "s/turn_uris: .*/turn_uris: [\"turn:${APP_DOMAIN}:${TURN_TLS_PORT}?transport=udp\", \"turn:${APP_DOMAIN}:${TURN_TLS_PORT}?transport=tcp\"]/" homeserver.yaml sed -i "s/turn_uris: .*/turn_uris: [\"turn:${APP_DOMAIN}:${TURN_TLS_PORT}?transport=udp\", \"turn:${APP_DOMAIN}:${TURN_TLS_PORT}?transport=tcp\"]/" homeserver.yaml
sed -i "s/turn_shared_secret: .*/turn_shared_secret: \"${TURNPWD}\"/" homeserver.yaml sed -i "s/turn_shared_secret: .*/turn_shared_secret: \"${TURNPWD}\"/" homeserver.yaml
sed -i "s/#cipher-list=.*/cipher-list=\"HIGH\"/" /app/data/turnserver.conf sed -i "s/#cipher-list=.*/cipher-list=\"HIGH\"/" /app/data/turnserver.conf
sed -i "s/#log-file=.*/log-file=\/app\/data\/turn_log\/turn.log/" /app/data/turnserver.conf sed -i "s/#log-file=.*/log-file=\/run\/\/turn_log\/turn.log/" /app/data/turnserver.conf
# get cert names from synapse # get cert names from synapse
@@ -72,12 +79,27 @@ if [[ ! -d /app/data/synapse ]]; then
sed -i "s,#pkey=.*,pkey=/app/data/synapse/${TLS_KEY}," /app/data/turnserver.conf sed -i "s,#pkey=.*,pkey=/app/data/synapse/${TLS_KEY}," /app/data/turnserver.conf
sed -i "s,#dh-file=.*,dh-file=/app/data/synapse/${TLS_DH}," /app/data/turnserver.conf sed -i "s,#dh-file=.*,dh-file=/app/data/synapse/${TLS_DH}," /app/data/turnserver.conf
# set up email
sed -i 's/#email:/email:/' homeserver.yaml
sed -i 's/# enable_notifs: false/ enable_notifs: false/' homeserver.yaml
sed -i "s/# smtp_host: "localhost"/ smtp_host: \"${MAIL_SMTP_SERVER}\"/" homeserver.yaml
sed -i "s/# smtp_port: 25/ smtp_port: ${MAIL_SMTP_PORT}/" homeserver.yaml
sed -i "s/# smtp_user: "exampleusername"/ smtp_user: \"${MAIL_SMTP_USERNAME}\"/" homeserver.yaml
sed -i "s/# smtp_pass: "examplepassword"/ smtp_pass: \"${MAIL_SMTP_PASSWORD}\"/" homeserver.yaml
sed -i 's/# require_transport_security: False/ require_transport_security: True/' homeserver.yaml
sed -i "s/# notif_from: .*/ notif_from: \"Your Friendly Matrix Home Server <${MAIL_FROM}>\"/" homeserver.yaml
sed -i 's/# app_name: Matrix/ app_name: Matrix/' homeserver.yaml
sed -i 's/# template_dir: res\/templates/ template_dir: \/app\/data\/templates/' homeserver.yaml
sed -i 's/# notif_template_html: notif_mail.html/ notif_template_html: notif_mail.html/' homeserver.yaml
sed -i 's/# notif_template_text: notif_mail.txt/ notif_template_text: notif_mail.txt/' homeserver.yaml
sed -i 's/# notif_for_new_users: True/ notif_for_new_users: True/' homeserver.yaml
fi fi
mkdir -p /app/data/nginx mkdir -p /run/nginx
mkdir -p /app/data/nginx_log mkdir -p /run/nginx_log
mkdir -p /app/data/turn_log mkdir -p /run/turn_log
chown -R www-data.www-data /app/data chown -R www-data.www-data /app/data
@@ -100,6 +122,11 @@ sed -i "s/ password: .*/ password: ${POSTGRESQL_PASSWORD}/" homeserver.yaml
sed -i "s/ database: .*/ database: ${POSTGRESQL_DATABASE}/" homeserver.yaml sed -i "s/ database: .*/ database: ${POSTGRESQL_DATABASE}/" homeserver.yaml
sed -i "s, uri: .*, uri: \"${LDAP_URL}\"," homeserver.yaml sed -i "s, uri: .*, uri: \"${LDAP_URL}\"," homeserver.yaml
#update email settings in case they changed
sed -i "s/ smtp_host:.*/ smtp_host: \"${MAIL_SMTP_SERVER}\"/" homeserver.yaml
sed -i "s/ smtp_port:.*/ smtp_port: ${MAIL_SMTP_PORT}/" homeserver.yaml
sed -i "s/ smtp_user:.*/ smtp_user: \"${MAIL_SMTP_USERNAME}\"/" homeserver.yaml
sed -i "s/ smtp_pass:.*/ smtp_pass: \"${MAIL_SMTP_PASSWORD}\"/" homeserver.yaml
gosu www-data python -m synapse.app.homeserver --config-path homeserver.yaml &> /dev/null & gosu www-data python -m synapse.app.homeserver --config-path homeserver.yaml &> /dev/null &