Mistborn is your own virtual private cloud platform and WebUI that manages self hosted services, and secures them with firewall, Wireguard VPN w/ PiHole-DNSCrypt, and IP filtering. Optional SIEM+IDS. Supports 2FA, Nextcloud, Jitsi, Home Assistant, +
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
3.3 KiB

version: "3"
services:
db:
build: db
read_only: true
restart: unless-stopped
volumes:
- ../../mistborn_volumes/extra/mattermost/db/var/lib/postgresql/data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
env_file:
- ../.envs/.production/.mattermost
#environment:
# - POSTGRES_USER=mmuser
# - POSTGRES_PASSWORD=mmuser_password
# - POSTGRES_DB=mattermost
# uncomment the following to enable backup
# - AWS_ACCESS_KEY_ID=XXXX
# - AWS_SECRET_ACCESS_KEY=XXXX
# - WALE_S3_PREFIX=s3://BUCKET_NAME/PATH
# - AWS_REGION=us-east-1
app:
build:
context: compose/production/mattermost #app
# uncomment following lines for team edition or change UID/GID
args:
- edition=team
- PUID=1000
- PGID=1000
restart: unless-stopped
volumes:
- ../../mistborn_volumes/extra/mattermost/app/mattermost/config:/mattermost/config:rw
- ../../mistborn_volumes/extra/mattermost/app/mattermost/data:/mattermost/data:rw
- ../../mistborn_volumes/extra/mattermost/app/mattermost/logs:/mattermost/logs:rw
- ../../mistborn_volumes/extra/mattermost/app/mattermost/plugins:/mattermost/plugins:rw
- ../../mistborn_volumes/extra/mattermost/app/mattermost/client-plugins:/mattermost/client/plugins:rw
- /etc/localtime:/etc/localtime:ro
# When you want to use SSO with GitLab, you have to add the cert pki chain of GitLab inside Alpine
# to avoid Token request failed: certificate signed by unknown authority (link: https://github.com/mattermost/mattermost-server/issues/13059)
# - <path_to_your_gitlab_pki>/pki_chain.pem:/etc/ssl/certs/pki_chain.pem:ro
env_file:
- ../.envs/.production/.mattermost
environment:
# set same as db credentials and dbname
#- MM_USERNAME=mmuser
#- MM_PASSWORD=mmuser_password
#- MM_DBNAME=mattermost
# use the credentials you've set above, in the format:
# MM_SQLSETTINGS_DATASOURCE=postgres://${MM_USERNAME}:${MM_PASSWORD}@db:5432/${MM_DBNAME}?sslmode=disable&connect_timeout=10
#- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10
- MM_SQLSETTINGS_DATASOURCE=postgres://${MM_USERNAME}:${MM_PASSWORD}@db:5432/${MM_DBNAME}?sslmode=disable&connect_timeout=10
# in case your config is not in default location
#- MM_CONFIG=/mattermost/config/config.json
web:
build: web
#ports:
# - "80:80"
# - "443:443"
labels:
- "traefik.enable=true"
- "traefik.http.routers.mattermost-http.rule=Host(`mattermost.mistborn`)"
- "traefik.http.routers.mattermost-http.entrypoints=web"
- "traefik.http.routers.mattermost-http.middlewares=mistborn_auth@file"
- "traefik.http.routers.mattermost-https.rule=Host(`mattermost.mistborn`)"
- "traefik.http.routers.mattermost-https.entrypoints=websecure"
- "traefik.http.routers.mattermost-https.middlewares=mistborn_auth@file"
- "traefik.http.routers.mattermost-https.tls.certresolver=basic"
- "traefik.http.services.mattermost-service.loadbalancer.server.port=80"
read_only: true
restart: unless-stopped
volumes:
# This directory must have cert files if you want to enable SSL
#- ./volumes/web/cert:/cert:ro
- /etc/localtime:/etc/localtime:ro