1
0
mirror of https://github.com/coltoneshaw/CS-Repro-Mattermost.git synced 2025-12-23 10:01:30 +01:00

working repro, still building

This commit is contained in:
coltoneshaw
2022-10-06 15:35:43 -04:00
parent 5d43dd5c6e
commit 7c51d94cda
22 changed files with 5911 additions and 1 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
enterprise.txt
volumes

View File

@@ -1 +1,38 @@
# CS-Deep-Dive-LDAP-SAML
# README
This is a docker compose file that contains a working Mattermost with an LDAP server. The LDAP image comes from [rroemhild/docker-test-openldap](https://github.com/rroemhild/docker-test-openldap).
To start this docker file run the below from the root repo directory
You can access mattermost via `localhost:8065`.
## Getting Started
1. Add an enterprise license to this folder with the name `license.txt`
2. Start the docker containers. This may take a second to download everything.
```
docker-compose up -d
```
3. You can log access Mattermost at `localhost:8065`
## Things to break
- User left an ldap synced team of their own accord
- new email address, can't sign in
- ID attributes don't match.
## Make key
```bash
openssl req -x509 -newkey rsa:4096 -keyout myKey.pem -out cert.pem -days 365 -nodes
openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in cert.pem
```

28
certs/cert.pem Normal file
View File

@@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEsDCCApgCCQDevuuaZ0R6dzANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCTkMwHhcNMjIwOTI5MDAxMDI1WhcNMjMwOTI5MDAxMDI1WjAa
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCTkMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQCrQWpN8jzbgtWvpi3gKKYZPI8oHQfUN99ydSCDCtxgzEtQHYGn
hPKDMx74u5IGUHztyhPA+NtlFm/qq3IwhlaD0pWwPFuFYYHObK81US55joQh4riX
ouSIKyYrix9HTSrnG8zqrIyInBZF7s9mXA/OfIwOvNYqf3N8AwSFucZMflfFyvzF
w41denE7uoWY4L+4/zu37MlWo2mo8NFKNL/dnB2WJzXEvXVaDTD9ng1aVODbJjW2
j7WTilZZi5+7hFup2yGVcYHAkGkZ+OKhDekuKln/EjCdFP/opxHM6s1JYVe/HHfV
nc/1Ib28fP3oMs0rfJfwR2OJ0wlid1ujRXjofZQ5d/RVsxf7PIOn9ErtWwuqIKBJ
Je1h/hyGsc8hKApR1PsNwkPctNgVayqNkCw+gQ1JtGOLIVOe1OwPH2gRHk6tFEDW
Ztut/uv8u4JCs0ebTdzfc8e/6SFLvTFZzBO2f/jVS+HU4yjmLhUZSqj3tVnYhQYQ
xoRhKKsQYtLw67cLVCt1xl+JThaUIJLQfSbgGKa4X+NKK+lLduw3hER3H8NseP46
qhanRJYhaHNkdeGY/QO55Fn4jud0SEBezvBMMubHR9ui7g6YWSjmePh0Ef2y1B+H
y/dzaaccwfKar+MftU1cbEcDDpaiwKlb98HuVPouDq3NbVXJpIFoiou6SwIDAQAB
MA0GCSqGSIb3DQEBCwUAA4ICAQB3jf+B2TaBCyhP0gNvB4RhOVH35oPGR9p+8mbp
X3cyhZN9V7muB6Mjvm8MIqMZ/nYrRIeEXRItMvrq2bJ0VOU2gXkK0cfEPUWBjXzz
6AhE7Mo6tTX0AX3bT4HhUSqJjQpGQCjdz2bB5StZEAaK2WU1qtVv71mD6YLDTJqu
YzAXvuAvpk03MAEF5BnL3sAwz4jq2SrkojV5QUWu7xIawlCdXN6QmJbHLVQADpZ1
BAP24Ip68HY2FddZdOsjqDZIQmXl+3tswewDAwRLYbrNCEfULdU5KaZKr0jj3JE9
Jo1bt+ssjX+rVRHuD+J5cDr825/Hcpsu7g84yHn/wx5A1Bof+7DVno9n9f+bJPbp
8Zs9MGUNPw4eRLCh+K4HbWgEfrngfu7b/lcYXVvBAaTWKKii9n9Kb4165HJCEmL0
Y5p7FqKbh+j2wBUn3xz6cWqn++hHvrRCn6dvoIqK2ZL9EU546YwUTbNT/ePuwuS3
7yPwTMgBsxPbw6YIt1dtu/Ox6WCNSt+MBo3vGJI9HbSmMfA3J1dEMQYxyPd/eYRg
i5e42+YEntTKEHKt3FyGo790U4zrjujCkA48aBXtYapCpeb2xp9apR8SUIPj0gXP
hcwmpojF+Ou+xyXnHmJx9SEY53jpE9TDK+fjLnf+h1uHzEbKMqAaIgWLlWIzHZ+a
pntjqg==
-----END CERTIFICATE-----

BIN
certs/keyStore.p12 Normal file

Binary file not shown.

87
certs/mattermost.crt Normal file
View File

@@ -0,0 +1,87 @@
Bag Attributes
localKeyID: EF 64 CD 0D 53 DC 8C E1 64 D3 F5 EC 1D 94 15 D0 41 E9 E0 6E
subject=/C=US/ST=NC
issuer=/C=US/ST=NC
-----BEGIN CERTIFICATE-----
MIIEsDCCApgCCQDevuuaZ0R6dzANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCTkMwHhcNMjIwOTI5MDAxMDI1WhcNMjMwOTI5MDAxMDI1WjAa
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCTkMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQCrQWpN8jzbgtWvpi3gKKYZPI8oHQfUN99ydSCDCtxgzEtQHYGn
hPKDMx74u5IGUHztyhPA+NtlFm/qq3IwhlaD0pWwPFuFYYHObK81US55joQh4riX
ouSIKyYrix9HTSrnG8zqrIyInBZF7s9mXA/OfIwOvNYqf3N8AwSFucZMflfFyvzF
w41denE7uoWY4L+4/zu37MlWo2mo8NFKNL/dnB2WJzXEvXVaDTD9ng1aVODbJjW2
j7WTilZZi5+7hFup2yGVcYHAkGkZ+OKhDekuKln/EjCdFP/opxHM6s1JYVe/HHfV
nc/1Ib28fP3oMs0rfJfwR2OJ0wlid1ujRXjofZQ5d/RVsxf7PIOn9ErtWwuqIKBJ
Je1h/hyGsc8hKApR1PsNwkPctNgVayqNkCw+gQ1JtGOLIVOe1OwPH2gRHk6tFEDW
Ztut/uv8u4JCs0ebTdzfc8e/6SFLvTFZzBO2f/jVS+HU4yjmLhUZSqj3tVnYhQYQ
xoRhKKsQYtLw67cLVCt1xl+JThaUIJLQfSbgGKa4X+NKK+lLduw3hER3H8NseP46
qhanRJYhaHNkdeGY/QO55Fn4jud0SEBezvBMMubHR9ui7g6YWSjmePh0Ef2y1B+H
y/dzaaccwfKar+MftU1cbEcDDpaiwKlb98HuVPouDq3NbVXJpIFoiou6SwIDAQAB
MA0GCSqGSIb3DQEBCwUAA4ICAQB3jf+B2TaBCyhP0gNvB4RhOVH35oPGR9p+8mbp
X3cyhZN9V7muB6Mjvm8MIqMZ/nYrRIeEXRItMvrq2bJ0VOU2gXkK0cfEPUWBjXzz
6AhE7Mo6tTX0AX3bT4HhUSqJjQpGQCjdz2bB5StZEAaK2WU1qtVv71mD6YLDTJqu
YzAXvuAvpk03MAEF5BnL3sAwz4jq2SrkojV5QUWu7xIawlCdXN6QmJbHLVQADpZ1
BAP24Ip68HY2FddZdOsjqDZIQmXl+3tswewDAwRLYbrNCEfULdU5KaZKr0jj3JE9
Jo1bt+ssjX+rVRHuD+J5cDr825/Hcpsu7g84yHn/wx5A1Bof+7DVno9n9f+bJPbp
8Zs9MGUNPw4eRLCh+K4HbWgEfrngfu7b/lcYXVvBAaTWKKii9n9Kb4165HJCEmL0
Y5p7FqKbh+j2wBUn3xz6cWqn++hHvrRCn6dvoIqK2ZL9EU546YwUTbNT/ePuwuS3
7yPwTMgBsxPbw6YIt1dtu/Ox6WCNSt+MBo3vGJI9HbSmMfA3J1dEMQYxyPd/eYRg
i5e42+YEntTKEHKt3FyGo790U4zrjujCkA48aBXtYapCpeb2xp9apR8SUIPj0gXP
hcwmpojF+Ou+xyXnHmJx9SEY53jpE9TDK+fjLnf+h1uHzEbKMqAaIgWLlWIzHZ+a
pntjqg==
-----END CERTIFICATE-----
Bag Attributes
localKeyID: EF 64 CD 0D 53 DC 8C E1 64 D3 F5 EC 1D 94 15 D0 41 E9 E0 6E
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
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
x6HwQnd/hJeig7u6P5zf051OUo6W
-----END PRIVATE KEY-----

55
certs/mattermost.key Normal file
View File

@@ -0,0 +1,55 @@
Bag Attributes
localKeyID: EF 64 CD 0D 53 DC 8C E1 64 D3 F5 EC 1D 94 15 D0 41 E9 E0 6E
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
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
x6HwQnd/hJeig7u6P5zf051OUo6W
-----END PRIVATE KEY-----

52
certs/myKey.pem Normal file
View File

@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCrQWpN8jzbgtWv
pi3gKKYZPI8oHQfUN99ydSCDCtxgzEtQHYGnhPKDMx74u5IGUHztyhPA+NtlFm/q
q3IwhlaD0pWwPFuFYYHObK81US55joQh4riXouSIKyYrix9HTSrnG8zqrIyInBZF
7s9mXA/OfIwOvNYqf3N8AwSFucZMflfFyvzFw41denE7uoWY4L+4/zu37MlWo2mo
8NFKNL/dnB2WJzXEvXVaDTD9ng1aVODbJjW2j7WTilZZi5+7hFup2yGVcYHAkGkZ
+OKhDekuKln/EjCdFP/opxHM6s1JYVe/HHfVnc/1Ib28fP3oMs0rfJfwR2OJ0wli
d1ujRXjofZQ5d/RVsxf7PIOn9ErtWwuqIKBJJe1h/hyGsc8hKApR1PsNwkPctNgV
ayqNkCw+gQ1JtGOLIVOe1OwPH2gRHk6tFEDWZtut/uv8u4JCs0ebTdzfc8e/6SFL
vTFZzBO2f/jVS+HU4yjmLhUZSqj3tVnYhQYQxoRhKKsQYtLw67cLVCt1xl+JThaU
IJLQfSbgGKa4X+NKK+lLduw3hER3H8NseP46qhanRJYhaHNkdeGY/QO55Fn4jud0
SEBezvBMMubHR9ui7g6YWSjmePh0Ef2y1B+Hy/dzaaccwfKar+MftU1cbEcDDpai
wKlb98HuVPouDq3NbVXJpIFoiou6SwIDAQABAoICAHy0nt9xtQU3ybklbqSblRAt
fCV+tlO/9/OV/P3Pq9jFC1akleRRuHL3h+ciV1xHwiE6FJZh4QlEhGzDOdzCBj/p
2dzCpvaCoY6asB9IJWqY7/jo6vhowrexjBMLNNSsCcDPCrIcwh08ZC+6jcaA5XW8
VhTpR58cvhCg9esW86KCIhJDFTxBgTB/1/LhiSVhC9t/6JGvWJHBX1CJRC4gKVML
urO7i7jfKZRQpMsaC6kqw65xrY1qKpPsmaKNPNzEricLDfKP/CcoQZCLHySeR525
c119dm78ermE5z5sAN8dhlMBPPYN/AAJ+OtHrXEnhSXUjaOHqKEVTvEn70/+Z+Lb
WfD0haxbpacZYSunsa/T6qhF3x9DoK8E1BuMz0p/2zYemRhg2EigvchgiaAJ6TB7
bfgmT37dQtq+BdOttc78/xDKEwp51OTDNF0GGCGsGfLaWerj/CarOnjvxX0D4tCZ
ix6dHTTHeI7gEdWaAjYyRhUc8CqNg9N73pp9ZJ5a0LVjCRtODBbjuyJZW++whuVR
I4ckRVRf2i9LSz10yYwtx/KD4qCsKBXjfddkhWSmL5UthbxR3VWHch/QqbxNGV/m
XYrWSIf+9AlfxR4QhYF8JXrQRvL9E66IkHyahOeyEE0Rc2q5AYMNM3k5VUtlBlDK
g7+XtqQTqh3eOwPO9UcJAoIBAQDZvEA2MxqnRq1joE17Dhxv3nO5U5MDUIInZXRr
aGgf41dIGi1qqeT4KxqbE9fYledKlLDDu/J+2O5svZyUs5xG1LKfWXkyeB7YgkOH
jjDKhAnzagV9EDwfR0PgNZtXMSEUQ4wU+wuBCo2fwu8lUEh12+jqpSR9aY04eWMq
d9udHCjMbak4d1rv3OCT9anSnKgBrbBfZAU5e25gUHYtwWA7ImF/tBdO3jmdD+fm
qgK62+grZgv3bq73LE1qoafg5uDtPHILRCpe2Az/5KS2g/jx4YK7PS4OATvsq6/9
HMw6/H19U9CNaRmE1wRswPTkOhh5VU0JKYx5nO9G5PaOvRg/AoIBAQDJWhJ3bo/t
0KgID2peYzB9sFjQBknQwQa2A4QOsaeml+3oXt92eCjQlJOy4VDjFya4vY1g5iM2
MRzLCBFKK33a0XG5u99x5jQJfPFF/h+3Ne3oO8DlnYK1TkIFg3/LV56AJGlqP9x7
XG+LPlArN0kPoVfy9+X2eKN6mP2t3CeeUAqN+Njprra9cQBbnsrQ+i7y5LW2/j0U
+5/7Ks5bX0GTMW/uPQe4fZnBqRv2wZIIar3BxTGP2bvAVzE27VVzao47i8LCpK/i
VSKXLFq/lmC8KFEWwX4ruOeurqJY7gUMl6IQfbM4ghuEygG+xF3m0iBdD11sHN5v
aowvRQdQmvr1AoIBAHg2NiF2b5XBMMObYou5C7w7zhqY6MbgsSs9GVyfpTVN2AeH
5GFKcY8OhT7vYrFCehM0Kq+2Wbjs3h4NRaDX1UVJ82CFDqPtq+IPcWcq+wckhTXt
6B/XUcpXF0N3dU9bYY8FiBahUAWrpOt6vXwVahwgEOVTzeSr3Ps8EaMFz6tbO686
MD5rrzpU8WzfKiaMtTlQAtt3pmbJHfRxF/5FEHM1lSzjaibyDE8J1BgG70DpXrJv
QdYXNuRigk+H9t71uWNhhvlvZhE9KVgyjTnzfQNWZU4pBf9XcRVG6QBO4PcEJeiG
2NLqHtu3tsqwccR7yr1aehC/7r3KBlVW3kWKYxMCggEAbzQKzOFIJly94K263mRD
rLcPZdyDOgLRVQb+ESt23yA7qcF0Azb7u67DH+EmzjTEEvXFNkYEHnLjZxKOkfsR
KB/SgnTLRFmSVccmbbSbCZGEUmVl9KqYPM/60Ja+pqw+gqEZgy+/8nWruShyGFwR
QsumCi91VzlreFM0j6fuTZYBLkXIbs8qZ9gYDYHWm7IA6e78mRMy4vrRcWND0tz6
F3QPUHFuaSsdFwLxycdAgtuI75Kb+8mR0vmU2bQcJIEuCp72so9IAGVqlDlP6U4B
IQnXNw0oRLd7ZVNXoGvcaAb638a8i7H3xs/WROiov8k/TIYm34XWJ4yd3aFvF8pw
XQKCAQBydFyYSRNSb2nLBh6w7lL6aBjs8ubZ1gU0WWJUaPsEfowRPctPYGO2u2i1
QWHRZuimlPFQ/fuX01G1463H/Oqb1jcfzIjAXafPOtnXZyofkF3Uv0OqnUFNGQBx
9K6TR4mZ+4EP8Ah2lxf1QDNSPVUvwA++Af0Mqnq1L4nPb9F7hCm6fpJ/RT1BJr3+
thHyoZmv0VOgk6sHnsBIlpcI2CKfcAqcxCQOg1EigqXR7+7Ac8j9c3RWEYle9HGm
TuDFKIsuFm/7QtYp5tCKDMetnK1SAUDf2zxS5LRwP3njQSuexfXYGSrIjJgWFIb3
x6HwQnd/hJeig7u6P5zf051OUo6W
-----END PRIVATE KEY-----

36
deep-dive.env Normal file
View File

@@ -0,0 +1,36 @@
# necessary Mattermost options/variables (see env.example)
MM_SQLSETTINGS_DRIVERNAME=postgres
MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@postgres:5432/mattermost?sslmode=disable&connect_timeout=
MM_SERVICESETTINGS_LICENSEFILELOCATION=config/license.mattermost-enterprise
## turning on local mode so we can use mmctl in the startup script
MM_SERVICESETTINGS_ENABLELOCALMODE=true
## LDAP config settings
MM_LDAPSETTINGS_ENABLE=true
MM_LDAPSETTINGS_ENABLESYNC=true
MM_LDAPSETTINGS_LDAPSERVER=openldap
MM_LDAPSETTINGS_LDAPPORT=10389
MM_LDAPSETTINGS_BASEDN="dc=planetexpress,dc=com"
MM_LDAPSETTINGS_BINDUSERNAME="cn=admin,dc=planetexpress,dc=com"
MM_LDAPSETTINGS_BINDPASSWORD=GoodNewsEveryone
MM_LDAPSETTINGS_USERFILER=(objectClass=inetOrgPerson)
MM_LDAPSETTINGS_GROUPFILTER=(objectClass=Group)
MM_LDAPSETTINGS_EnableAdminFilter=true
MM_LDAPSETTINGS_AdminFilter="(memberof=cn=admin_staff,ou=people,dc=planetexpress,dc=com)"
MM_LDAPSETTINGS_GROUPDISPLAYNAMEATTRIBUTE=cn
MM_LDAPSETTINGS_GROUPIDATTRIBUTE=dn
MM_LDAPSETTINGS_FIRSTNAMEATTRIBUTE=givenName
MM_LDAPSETTINGS_LASTNAMEATTRIBUTE=sn
MM_LDAPSETTINGS_EmailAttribute=mail
MM_LDAPSETTINGS_UsernameAttribute=uid
MM_LDAPSETTINGS_IdAttribute=uid
MM_LDAPSETTINGS_LoginIdAttribute=uid
MM_LDAPSETTINGS_TRACE=true
# MM_SamlSettings_IdpMetadataURL="http://keycloak:8080/auth/realms/master/protocol/saml/descriptor"
MM_LOGSETTINGS_ADVANCEDLOGGINGCONFIG="{\"console-log\":{\"Type\":\"console\",\"Format\":\"json\",\"Levels\":[{\"ID\":10,\"Name\":\"stdlog\",\"Stacktrace\":false},{\"ID\":5,\"Name\":\"debug\",\"Stacktrace\":false},{\"ID\":4,\"Name\":\"info\",\"Stacktrace\":false,\"color\":36},{\"ID\":3,\"Name\":\"warn\",\"Stacktrace\":false,\"color\":33},{\"ID\":2,\"Name\":\"error\",\"Stacktrace\":true,\"color\":31},{\"ID\":1,\"Name\":\"fatal\",\"Stacktrace\":true},{\"ID\":0,\"Name\":\"panic\",\"Stacktrace\":true}],\"Options\":{\"Out\":\"stdout\"},\"MaxQueueSize\":1000},\"file-log\":{\"Type\":\"file\",\"Format\":\"json\",\"Levels\":[{\"ID\":10,\"Name\":\"stdlog\",\"Stacktrace\":false},{\"ID\":5,\"Name\":\"debug\",\"Stacktrace\":false},{\"ID\":4,\"Name\":\"info\",\"Stacktrace\":false},{\"ID\":3,\"Name\":\"warn\",\"Stacktrace\":false},{\"ID\":2,\"Name\":\"error\",\"Stacktrace\":true},{\"ID\":1,\"Name\":\"fatal\",\"Stacktrace\":true},{\"ID\":0,\"Name\":\"panic\",\"Stacktrace\":true}],\"Options\":{\"Compress\":true,\"Filename\":\"logs/traceLogs.json\",\"MaxAgeDays\":15,\"MaxBackups\":3,\"MaxSizeMB\":100},\"MaxQueueSize\":1000}}"

98
docker-compose.yml Normal file
View File

@@ -0,0 +1,98 @@
version: '3.9'
services:
postgres:
container_name: deep-dive-postgres
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=mmuser_password
- POSTGRES_DB=mattermost
- LISTEN_ADDRESS="*"
image: postgres:13-alpine
restart: unless-stopped
ports:
- "5432:5432"
security_opt:
- no-new-privileges:true
pids_limit: 100
read_only: true
tmpfs:
- /tmp
- /var/run/postgresql
volumes:
- ./volumes/db/var/lib/postgresql/data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -U mmuser -d mattermost
interval: 10s
timeout: 3s
retries: 3
openldap:
container_name: deep-dive-openldap
hostname: openldap
restart: unless-stopped
image: rroemhild/test-openldap:latest
ports:
- "10389:10389"
- "10636:10636"
prometheus:
container_name: deep-dive-prometheus
image: prom/prometheus:latest
restart: always
ports:
- 9090:9090
volumes:
- ./files/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- ./volumes/prometheus:/prometheus
grafana:
container_name: deep-dive-grafana
image: grafana/grafana:7.5.7
ports:
- 3000:3000
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- ./files/grafana/dashboards:/var/lib/grafana/dashboards
- ./files/grafana/provisioning:/etc/grafana/provisioning
- ./volumes/grafana:/var/lib/grafana
mattermost:
container_name: deep-dive-mattermost
env_file:
- deep-dive.env
depends_on:
postgres:
condition: service_healthy
image: mattermost/mattermost-enterprise-edition:release-7.2
restart: unless-stopped
security_opt:
- no-new-privileges:true
pids_limit: 200
read_only: false
ports:
- "8065:8065"
- "8067:8067"
tmpfs:
- /tmp
volumes:
- ./volumes/app/mattermost/config:/mattermost/config:rw
- ./volumes/app/mattermost/data:/mattermost/data:rw
- ./volumes/app/mattermost/logs:/mattermost/logs:rw
- ./volumes/app/mattermost/plugins:/mattermost/plugins:rw
- ./volumes/app/mattermost/client/plugins:/mattermost/client/plugins:rw
- ./volumes/app/mattermost/bleve-indexes:/mattermost/bleve-indexes:rw
- ./enterprise.txt:/mattermost/config/license.mattermost-enterprise:ro
keycloak:
image: quay.io/keycloak/keycloak:latest
volumes:
- ./volumes/keycloak:/opt/keycloak/data:rw
environment:
- PROXY_ADDRESS_FORWARDING="true"
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
# - KEYCLOAK_URL=http://localhost:8080/auth
ports:
- 8080:8080
command:
- start-dev

BIN
files/.DS_Store vendored Normal file

Binary file not shown.

3
files/README.md Normal file
View File

@@ -0,0 +1,3 @@
# AdvancedLogging.json
This is a json example to build the advanced logs for Mattermost. This will include the `stdout` files generated by ldap / sql trace. To use this format to a string and set `LogSettings.AdvancedLogging` or format to a string and use the environment variable `MM_LOGSETTINGS_ADVANCEDLOGGING`.

View File

@@ -0,0 +1,40 @@
{
"console-log": {
"Type": "console",
"Format": "json",
"Levels": [
{"ID": 10, "Name": "stdlog", "Stacktrace": false},
{"ID": 5, "Name": "debug", "Stacktrace": false},
{"ID": 4, "Name": "info", "Stacktrace": false, "color": 36},
{"ID": 3, "Name": "warn", "Stacktrace": false, "color": 33},
{"ID": 2, "Name": "error", "Stacktrace": true, "color": 31},
{"ID": 1, "Name": "fatal", "Stacktrace": true},
{"ID": 0, "Name": "panic", "Stacktrace": true}
],
"Options": {
"Out": "stdout"
},
"MaxQueueSize": 1000
},
"file-log": {
"Type": "file",
"Format": "json",
"Levels": [
{"ID": 10, "Name": "stdlog", "Stacktrace": false},
{"ID": 5, "Name": "debug", "Stacktrace": false},
{"ID": 4, "Name": "info", "Stacktrace": false},
{"ID": 3, "Name": "warn", "Stacktrace": false},
{"ID": 2, "Name": "error", "Stacktrace": true},
{"ID": 1, "Name": "fatal", "Stacktrace": true},
{"ID": 0, "Name": "panic", "Stacktrace": true}
],
"Options": {
"Compress": true,
"Filename": "traceLogs.json",
"MaxAgeDays": 15,
"MaxBackups": 3,
"MaxSizeMB": 100
},
"MaxQueueSize": 1000
}
}

BIN
files/grafana/.DS_Store vendored Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
apiVersion: 1
providers:
# <string> an unique provider name. Required
- name: 'a unique provider name'
# <int> Org id. Default to 1
orgId: 1
# <string> name of the dashboard folder.
folder: ''
# <string> folder UID. will be automatically generated if not specified
folderUid: ''
# <string> provider type. Default to 'file'
type: file
# <bool> disable dashboard deletion
disableDeletion: false
# <int> how often Grafana will scan for changed dashboards
updateIntervalSeconds: 10
# <bool> allow updating provisioned dashboards from the UI
allowUiUpdates: false
options:
# <string, required> path to dashboard files on disk. Required when using the 'file' type
path: /var/lib/grafana/dashboards
# <bool> use folder names from filesystem to create folders in Grafana
foldersFromFilesStructure: true

View File

@@ -0,0 +1,17 @@
apiVersion: 1
datasources:
- name: mattermost
type: prometheus
access: proxy
url: http://prometheus:9090
password:
user:
database:
isDefault: true
jsonData:
tlsAuth: false
tlsAuthWithCACert: false
httpMethod: "POST"
version: 1
editable: true

30
files/prometheus.yml Normal file
View File

@@ -0,0 +1,30 @@
# my global config
global:
scrape_interval: 5s # By default, scrape targets every 15 seconds.
evaluation_interval: 5s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'mattermost-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every five seconds.
# scrape_interval: 5s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["mattermost:8067"]

1
files/public.crt Normal file
View File

@@ -0,0 +1 @@
MIICozCCAYsCBgGDhvaKdjANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDDAptYXR0ZXJtb3N0MB4XDTIyMDkyOTAxNTU0N1oXDTMyMDkyOTAxNTcyN1owFTETMBEGA1UEAwwKbWF0dGVybW9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIhzTzXqXGG9rQbCHVZBJlZsruk+lRSp7dBItPl1Dr0DctaIWc1DXKQMQKLthGyE9RLlW4SyjH08qCo1oqACG4Lg8A1OER/9Gt263/Yim0IBTldzK27g9Xkp8MK6WUGMP4eweuNbu1UhuXy7+cb50dPD8/v0h4+ys1LGHZ0b/maNGN2ehz9nhnmpqrfCc9KDpljuib7AEa5cdscof6YAFQj8pYDidmS3AVE8tGpksuOUQl8FjKVPnmAJbkcQqymVVEMvcRa+O/1qqrSOunrYZsAlQmD74y6UA0kbstSu/K5PFgNGzmmDw/A/u11cPxzh5A7yOCJ3Q9JZBu/882dw/AUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEANoRIrWqaC6iD/t78S98Rl1VVF86e3Ef2v/bmF3KNFi/twSzFaSuqLSVl9SkWoas8uKWX6AmtBOm9MCPIF7q+d+yAIQkt2UxtuFEsd61Z9Couc4p/rxJGbVGBRqeeTWm8GRUrASaj/JqbZVPM1QtOKpmlCP+5fEq7e/npO0Blfje5pWkAGkA4WhXxYpYVe+cCyXvpcckJLzGCxbGg2iFeD4nmPIO1Drsme35tgwt3gPZhY2DqUTaP/CsauxGi5xv840871kz6mOu75qw4Qpo0MBlSZR2f8IFaHyzZpFyu0p83ZKK3/XTPmuvFfJh59640axZBT6pXWoNp/JyD4KnZSg==

40
keycloak.yml Normal file
View File

@@ -0,0 +1,40 @@
version: '3'
volumes:
postgres_data:
driver: local
services:
# postgres:
# image: postgres
# volumes:
# - postgres_data:/var/lib/postgresql/data
# environment:
# POSTGRES_DB: keycloak
# POSTGRES_USER: keycloak
# POSTGRES_PASSWORD: password
keycloak:
image: quay.io/keycloak/keycloak:latest
environment:
# KC_DB_VENDOR: POSTGRES
# DB_ADDR: postgres
# DB_DATABASE: keycloak
# : keycloak
# DB_SCHEMA: public
# DB_PASSWORD: password
# KC_DB_URL: 'jdbc:postgresql://postgres/keycloak'
# KC_DB_USERNAME: keycloak
# KC_DB: postgres
# KC_DB_PASSWORD: password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: Pa55w0rd
# KC_HOSTNAME: keycloak
# KC_HOSTNAME_PORT
# volumes:
# - ./volumes/keycloak:/opt/jboss/keycloak/standalone/data/
ports:
- 8080:8080
depends_on:
postgres:
condition: service_healthy