This project provides Docker containerization for mostlymatter, a fork of Mattermost developed by Framasoft that removes user and message limits.
Mostlymatter is a fork of Mattermost that removes the user and message limits by multiplying them by 1,000. The user limits are increased to 5,000,000 and 11,000,000. The original project is maintained at Framagit.
- Automated builds via GitHub Actions
- Automatic builds for each version released at https://packages.framasoft.org/projects/mostlymatter/
- Multi-architecture support (amd64 and arm64)
- Minimal Docker containers published to GitHub Packages
- Secure by default (runs as non-root user)
- Configurable via environment variables
# Pull the latest image
docker pull ghcr.io/teda-tech/mostlymatter:latest
# Run the container
docker run -p 8065:8065 ghcr.io/teda-tech/mostlymatter:latestFor production use, you should mount volumes for configuration, data, logs, and plugins:
docker run -d \
--name mostlymatter \
-p 8065:8065 \
-v mostlymatter-config:/opt/mostlymatter/config \
-v mostlymatter-data:/opt/mostlymatter/data \
-v mostlymatter-logs:/opt/mostlymatter/logs \
-v mostlymatter-plugins:/opt/mostlymatter/plugins \
ghcr.io/teda-tech/mostlymatter:latestHere's a basic example using Docker Compose with PostgreSQL:
version: '3'
services:
mostlymatter:
image: ghcr.io/teda-tech/mostlymatter:latest
restart: unless-stopped
depends_on:
- postgres
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres:5432/mattermost?sslmode=disable
volumes:
- mostlymatter-config:/opt/mostlymatter/config
- mostlymatter-data:/opt/mostlymatter/data
- mostlymatter-logs:/opt/mostlymatter/logs
- mostlymatter-plugins:/opt/mostlymatter/plugins
ports:
- "8065:8065"
postgres:
image: postgres:13
restart: unless-stopped
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=mostest
- POSTGRES_DB=mattermost
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
mostlymatter-config:
mostlymatter-data:
mostlymatter-logs:
mostlymatter-plugins:
postgres-data:The Docker images are tagged to match the upstream mostlymatter versions. You can use a specific version by specifying the tag:
docker pull ghcr.io/teda-tech/mostlymatter:v10.6.1Mostlymatter can be configured using environment variables with the MM_ prefix. Since Mostlymatter is a fork of Mattermost, it uses the same configuration options as the original Mattermost project. Here are some common configuration options:
MM_SQLSETTINGS_DRIVERNAME=postgres # or mysql
MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres:5432/mattermost?sslmode=disable
MM_SERVICESETTINGS_SITEURL=https://mattermost.example.com
MM_SERVICESETTINGS_LISTENADDRESS=:8065
MM_EMAILSETTINGS_ENABLESMTPAUTH=true
MM_EMAILSETTINGS_SMTPUSERNAME=your-smtp-username
MM_EMAILSETTINGS_SMTPPASSWORD=your-smtp-password
MM_EMAILSETTINGS_SMTPSERVER=smtp.example.com
MM_EMAILSETTINGS_SMTPPORT=587
MM_EMAILSETTINGS_CONNECTIONSECURITY=TLS
MM_EMAILSETTINGS_FEEDBACKEMAIL=mattermost@example.com
MM_EMAILSETTINGS_REPLYTOADDRESS=mattermost@example.com
MM_EMAILSETTINGS_FEEDBACKNAME=Mattermost
# Local file storage
MM_FILESETTINGS_DIRECTORY=/opt/mostlymatter/data
# Or S3 compatible storage
MM_FILESETTINGS_DRIVERNAME=amazons3
MM_FILESETTINGS_AMAZONS3BUCKET=your-bucket-name
MM_FILESETTINGS_AMAZONS3ACCESSKEYID=your-access-key
MM_FILESETTINGS_AMAZONS3SECRETACCESSKEY=your-secret-key
MM_FILESETTINGS_AMAZONS3ENDPOINT=s3.amazonaws.com
For a complete list of environment variables and configuration options, refer to the Mattermost Environment Variables Documentation. All configuration options available in Mattermost are also available in Mostlymatter, with the same environment variable names and formats.
Note that while Mostlymatter removes the user and message limits from Mattermost, the configuration process and options remain identical to the original Mattermost project.
This project uses a memory bank approach for documentation. See the memory-bank/ directory for comprehensive project documentation.
This project follows Conventional Commits to enable Semantic Versioning:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
This format allows us to automatically determine the next semantic version number (MAJOR.MINOR.PATCH) based on the types of commits:
- MAJOR version for incompatible API changes (
BREAKING CHANGEin commit footer) - MINOR version for new functionality in a backward compatible manner (
feattype) - PATCH version for backward compatible bug fixes (
fixtype)
Common types:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the coderefactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing testschore: Changes to the build process or auxiliary toolsci: Changes to CI configuration files and scripts
Examples:
feat: add automated version detection
fix: correct Docker image tag format
docs: update deployment instructions
chore: update GitHub Actions workflow
This project is licensed under the same license as the upstream mostlymatter project.