Unify docker-compose-nossl.yml and docker-compose-ssl.yml
This commit is contained in:
parent
928bcc25a1
commit
811360572e
@ -4,7 +4,6 @@ services:
|
|||||||
- docker
|
- docker
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- ln -s docker-compose-nossl.yml docker-compose.yml
|
|
||||||
- docker-compose up -d
|
- docker-compose up -d
|
||||||
- sleep 10
|
- sleep 10
|
||||||
|
|
||||||
@ -12,4 +11,4 @@ script:
|
|||||||
- curl -sSf http://localhost > /dev/null
|
- curl -sSf http://localhost > /dev/null
|
||||||
|
|
||||||
after_failure:
|
after_failure:
|
||||||
- timeout 3s docker-compose logs app db
|
- timeout 3s docker-compose logs app db web
|
||||||
|
14
README.md
14
README.md
@ -13,12 +13,13 @@ See [README.aws.md](./README.aws.md) if you want to install it on AWS Elastic Be
|
|||||||
|
|
||||||
### Install with SSL certificate
|
### Install with SSL certificate
|
||||||
|
|
||||||
1. Create a symbolic link `docker-compose.yml` to `docker-compose-ssl.yml`:
|
1. Open docker-compose.yml and set `MATTERMOST_ENABLE_SSL` to true.
|
||||||
|
|
||||||
ln -s docker-compose-ssl.yml docker-compose.yml
|
environment:
|
||||||
|
- MATTERMOST_ENABLE_SSL=true
|
||||||
|
|
||||||
2. Put your SSL certificate as `web/cert/cert.pem` and the private key that has
|
2. Put your SSL certificate as `./volumes/cert/cert.pem` and the private key that has
|
||||||
no password as `web/cert/private/key-no-password.pem`. If you don't have
|
no password as `./volumes/cert/key-no-password.pem`. If you don't have
|
||||||
them you may generate a self-signed SSL certificate.
|
them you may generate a self-signed SSL certificate.
|
||||||
|
|
||||||
3. Build and run mattermost
|
3. Build and run mattermost
|
||||||
@ -29,9 +30,10 @@ See [README.aws.md](./README.aws.md) if you want to install it on AWS Elastic Be
|
|||||||
|
|
||||||
### Install without SSL certificate
|
### Install without SSL certificate
|
||||||
|
|
||||||
1. Create a symbolic link `docker-compose.yml` to `docker-compose-nossl.yml`:
|
1. Open docker-compose.yml and set `MATTERMOST_ENABLE_SSL` to false.
|
||||||
|
|
||||||
ln -s docker-compose-nossl.yml docker-compose.yml
|
environment:
|
||||||
|
- MATTERMOST_ENABLE_SSL=false
|
||||||
|
|
||||||
2. Build and run mattermost
|
2. Build and run mattermost
|
||||||
|
|
||||||
|
@ -23,8 +23,11 @@ web:
|
|||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
links:
|
links:
|
||||||
- app:platform
|
- app:app
|
||||||
volumes:
|
volumes:
|
||||||
# This directory must have cert files
|
# This directory must have cert files
|
||||||
- ./volumes/web/cert:/cert:ro
|
- ./volumes/web/cert:/cert:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- MATTERMOST_ENABLE_SSL=false
|
||||||
|
- PLATFORM_PORT_80_TCP_PORT=80
|
@ -3,9 +3,9 @@ FROM ubuntu:14.04
|
|||||||
RUN apt-get update && apt-get install -y nginx
|
RUN apt-get update && apt-get install -y nginx
|
||||||
|
|
||||||
RUN rm /etc/nginx/sites-enabled/default
|
RUN rm /etc/nginx/sites-enabled/default
|
||||||
RUN ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost
|
|
||||||
|
|
||||||
ADD mattermost /etc/nginx/sites-available/
|
COPY mattermost /etc/nginx/sites-available/
|
||||||
|
COPY mattermost-ssl /etc/nginx/sites-available/
|
||||||
ADD docker-entry.sh /
|
ADD docker-entry.sh /
|
||||||
|
|
||||||
RUN chmod +x /docker-entry.sh
|
RUN chmod +x /docker-entry.sh
|
||||||
@ -14,9 +14,6 @@ RUN chmod +x /docker-entry.sh
|
|||||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log
|
RUN ln -sf /dev/stdout /var/log/nginx/access.log
|
||||||
RUN ln -sf /dev/stderr /var/log/nginx/error.log
|
RUN ln -sf /dev/stderr /var/log/nginx/error.log
|
||||||
|
|
||||||
# Define mountable directories.
|
|
||||||
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
|
|
||||||
|
|
||||||
# Define working directory.
|
# Define working directory.
|
||||||
WORKDIR /etc/nginx
|
WORKDIR /etc/nginx
|
||||||
|
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo Starting Nginx
|
echo Starting Nginx
|
||||||
sed -Ei "s/PLATFORM_PORT/$PLATFORM_PORT_80_TCP_PORT/" /etc/nginx/sites-available/mattermost
|
sed -Ei "s/APP_PORT/$PLATFORM_PORT_80_TCP_PORT/" /etc/nginx/sites-available/mattermost
|
||||||
|
sed -Ei "s/APP_PORT/$PLATFORM_PORT_80_TCP_PORT/" /etc/nginx/sites-available/mattermost-ssl
|
||||||
|
if [ "$MATTERMOST_ENABLE_SSL" = true ]; then
|
||||||
|
ssl="-ssl"
|
||||||
|
fi
|
||||||
|
ln -s /etc/nginx/sites-available/mattermost$ssl /etc/nginx/sites-enabled/mattermost
|
||||||
nginx -g 'daemon off;'
|
nginx -g 'daemon off;'
|
||||||
|
@ -1,26 +1,8 @@
|
|||||||
# Uncomment the below configuration and set the server_name correctly if you
|
|
||||||
# want to redirect http to https
|
|
||||||
#
|
|
||||||
# server {
|
|
||||||
# listen 80;
|
|
||||||
# server_name mattermost.example.com;
|
|
||||||
# return 301 https://$server_name$request_uri;
|
|
||||||
# }
|
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443;
|
listen 80;
|
||||||
|
|
||||||
ssl on;
|
|
||||||
ssl_certificate /cert/cert.pem;
|
|
||||||
ssl_certificate_key /cert/key-no-password.pem;
|
|
||||||
ssl_session_timeout 5m;
|
|
||||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
|
||||||
ssl_ciphers HIGH:MEDIUM:!SSLv2:!PSK:!SRP:!ADH:!AECDH;
|
|
||||||
ssl_prefer_server_ciphers on;
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
gzip off;
|
gzip off;
|
||||||
proxy_set_header X-Forwarded-Ssl on;
|
|
||||||
|
|
||||||
client_max_body_size 50M;
|
client_max_body_size 50M;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
@ -29,9 +11,7 @@ server {
|
|||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Frame-Options SAMEORIGIN;
|
proxy_set_header X-Frame-Options SAMEORIGIN;
|
||||||
proxy_pass http://app:PLATFORM_PORT;
|
proxy_pass http://app:APP_PORT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# See https://github.com/mattermost/platform/blob/master/doc/install/Production-Ubuntu.md for the SSL configuration
|
|
||||||
|
34
web/mattermost-ssl
Normal file
34
web/mattermost-ssl
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# server {
|
||||||
|
# listen 80;
|
||||||
|
# server_name mattermost.example.com;
|
||||||
|
# return 301 https://$server_name$request_uri;
|
||||||
|
# }
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443;
|
||||||
|
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /cert/cert.pem;
|
||||||
|
ssl_certificate_key /cert/key-no-password.pem;
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||||
|
ssl_ciphers HIGH:MEDIUM:!SSLv2:!PSK:!SRP:!ADH:!AECDH;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
gzip off;
|
||||||
|
proxy_set_header X-Forwarded-Ssl on;
|
||||||
|
|
||||||
|
client_max_body_size 50M;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Frame-Options SAMEORIGIN;
|
||||||
|
proxy_pass http://app:APP_PORT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://github.com/mattermost/docs/blob/master/source/install/prod-ubuntu.rst for the SSL configuration
|
Reference in New Issue
Block a user