services: postgres: image: postgres:17 hostname: mattermost-db deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 512M reservations: memory: 256M networks: - mattermost_internal volumes: - mattermost_postgres_data:/var/lib/postgresql/data environment: - POSTGRES_USER=mmuser - POSTGRES_DB=mattermost - POSTGRES_PASSWORD_FILE=/run/secrets/mm_pg_pass - POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale=en_US.UTF-8 - TZ=Europe/Amsterdam secrets: - mm_pg_pass healthcheck: test: ["CMD-SHELL", "pg_isready -U mmuser -d mattermost"] interval: 10s timeout: 5s retries: 5 start_period: 30s mattermost: image: mattermost/mattermost-team-edition:latest hostname: mattermost deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 1G reservations: memory: 512M networks: mattermost_internal: macvlan_vlan15: ipv4_address: 10.10.15.150 volumes: - mattermost_config:/mattermost/config - mattermost_data:/mattermost/data - mattermost_logs:/mattermost/logs - mattermost_plugins:/mattermost/plugins - mattermost_client_plugins:/mattermost/client/plugins - mattermost_bleve:/mattermost/bleve-indexes environment: # Site Configuration - MM_SERVICESETTINGS_SITEURL=https://mattermost.local - MM_SERVICESETTINGS_LISTENADDRESS=:8065 - MM_SERVICESETTINGS_ENABLELOCALMODE=false - MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER=X-Forwarded-For,X-Real-IP # Security Settings - MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS=false - MM_SERVICESETTINGS_ALLOWCORSFROM=https://mattermost.local - MM_SERVICESETTINGS_ENABLESECURITYFIXALERT=true - MM_SERVICESETTINGS_SESSIONLENGTHMOBILESECONDS=2592000 - MM_SERVICESETTINGS_SESSIONLENGTHWEBSECONDS=2592000 - MM_SERVICESETTINGS_SESSIONCACHEINMINUTES=10 # Rate Limiting - MM_RATELIMITSETTINGS_ENABLE=true - MM_RATELIMITSETTINGS_PERSEC=10 - MM_RATELIMITSETTINGS_MAXBURST=100 # Plugin Settings - MM_PLUGINSETTINGS_ENABLE=true - MM_PLUGINSETTINGS_ENABLEUPLOADS=true - MM_PLUGINSETTINGS_DIRECTORY=/mattermost/plugins - MM_PLUGINSETTINGS_CLIENTDIRECTORY=/mattermost/client/plugins - MM_PLUGINSETTINGS_ENABLEHEALTHCHECK=true # Email Settings - MM_EMAILSETTINGS_ENABLESIGNUPWITHEMAIL=true - MM_EMAILSETTINGS_ENABLESIGNINWITHEMAIL=true - MM_EMAILSETTINGS_ENABLESIGNINWITHUSERNAME=true - MM_EMAILSETTINGS_REQUIREEMAILVERIFICATION=false # Logging - MM_LOGSETTINGS_ENABLECONSOLE=true - MM_LOGSETTINGS_CONSOLELEVEL=DEBUG #INFO - MM_LOGSETTINGS_ENABLEFILE=true - MM_LOGSETTINGS_FILELEVEL=INFO - MM_LOGSETTINGS_ENABLEWEBHOOKDEBUGGING=false # Performance - MM_SERVICESETTINGS_GOROUTINEHEALTHTHRESHOLD=-1 - MM_CLUSTERSETTINGS_ENABLE=false # Timezone - TZ=Europe/Amsterdam depends_on: - postgres healthcheck: test: ["NONE"] secrets: mm_pg_pass: external: true networks: macvlan_vlan15: name: macvlan_vlan15 external: true mattermost_internal: name: mattermost_internal external: true volumes: mattermost_postgres_data: external: true mattermost_config: external: true mattermost_data: external: true mattermost_logs: external: true mattermost_plugins: external: true mattermost_client_plugins: external: true mattermost_bleve: external: true