← Alle Vorlagen · Soziales und Community
Mattermost mit einem Klick deployen
Open-Source-Teamchat mit Kanälen, Threads, Dateifreigabe und Integrationen
Eine selbst gehostete Alternative zu Slack und Microsoft Teams.
Was ist Mattermost?
Mattermost ist eine Open-Source-Plattform für die Zusammenarbeit im Teamchat: öffentliche und private Kanäle, Direkt- und Gruppennachrichten, Unterhaltungen in Threads, Dateifreigabe, Suche, Markdown und eigene Emojis, in mehr als 20 Sprachen. Webhooks, Slash-Befehle, Bots, Plugins und eine API verbinden Mattermost mit anderen Tools, dazu kommen Integrationen für Jira, GitHub und GitLab. Apps für Windows, macOS, Linux, iOS und Android verbinden sich mit seiner Adresse.
Diese Vorlage betreibt Mattermost Team Edition, den kostenlosen Build unter der MIT-Lizenz, mit PostgreSQL und legt den Systemadministrator aus den Feldern an, bevor die Seite irgendwem antwortet. Die Team Edition ist für kleine Teams gedacht: Sie nimmt bis zu 250 aktive Benutzer auf und hat kein Single Sign-on, keine Gastkonten und keine Gruppenanrufe, die es in den kostenpflichtigen Tarifen gibt. Der Haken: Push-Benachrichtigungen an die Apps auf dem Handy laufen über den kostenlosen Test Push Notification Service von Mattermost, den Mattermost selbst nicht für den Produktivbetrieb empfiehlt.
Mattermost-Hosting auf Pethost
- Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei Mattermost. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: E-Mail, Benutzername, Admin-Passwort.
- In ein, zwei Minuten läuft Mattermost unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
- Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.
Fragen zu Mattermost
Ist Mattermost kostenlos?
Ja. Mattermost Team Edition ist kostenlos, unter der MIT-Lizenz aus Open-Source-Code kompiliert, und behält den gesamten Nachrichtenverlauf. Sie ist für Teams mit weniger als 250 aktiven Benutzern gedacht; die kostenpflichtigen Tarife bringen SSO, Gastkonten, Gruppenanrufe und Compliance-Funktionen dazu.
Mattermost oder Slack?
Beide haben Kanäle, Threads, Direktnachrichten und Integrationen. Slack läuft nur auf den Servern von Slack, Mattermost dagegen dort, wo du es deployst, und seine eingehenden Webhooks verstehen das Format von Slack, sodass viele Slack-Integrationen unverändert funktionieren.
Kann ich von Slack zu Mattermost umziehen?
Ja. Die Migrationstools von Mattermost, mmetl und mmctl import, übernehmen Benutzer, Kanäle, Nachrichtenverlauf, Direktnachrichten, Threads und Dateien aus einem Slack-Export. Slash-Befehle kommen nicht mit.
Hat Mattermost Apps fürs Handy?
Ja, für iOS und Android, dazu Desktop-Apps für Windows, macOS und Linux. Mit der Team Edition laufen Push-Benachrichtigungen über den Test Push Notification Service von Mattermost, der kostenlos ist, aber ohne Garantien kommt.
Wie viele Benutzer kann Mattermost Team Edition haben?
Bis zu 250 aktive Benutzer: Bei 200 warnt sie, und bei 250 lehnt sie es ab, weitere anzulegen oder zu aktivieren. Ein Team, das darüber hinauswächst, wechselt in einen kostenpflichtigen Tarif.
Funktionieren Anrufe in Mattermost mit dieser Vorlage?
So, wie sie ist, nicht. Anrufe (Calls) übertragen Audio und Video über Port 8443, den diese Vorlage nicht veröffentlicht; Textchat, Dateien und Integrationen funktionieren vollständig.
Wie viel RAM und Speicherplatz braucht Mattermost?
Mattermost braucht für ein kleines Team etwa 300 MB RAM mit Postgres, und Datenbank und Dateien wachsen mit den Nachrichten und Uploads. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.
Mattermost: die Docker-Compose-Datei
Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.
Container: proxy (caddy:2.11-alpine), mattermost (mattermost/mattermost-team-edition:12.0), postgres (postgres:17-alpine).
Volumes, im nächtlichen Backup: config, data, logs, plugins, client-plugins, db.
services:
# A new Mattermost makes whoever signs up first its System Admin. So the page is served through
# this small Caddy, which answers only once the administrator exists: at its start it waits for
# Mattermost, and while Mattermost says it has no accounts, it signs the administrator up with
# the email, username and password given, as that first account. A refusal stops it, says so in
# its log, and is tried again at its next start.
proxy:
image: caddy:2.11-alpine
restart: unless-stopped
environment:
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_USERNAME: ${ADMIN_USERNAME}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
command:
- sh
- -c
- |
set -e
mattermost=http://mattermost:8065
echo "waiting for Mattermost"
until client=$$(wget -qO- "$$mattermost/api/v4/config/client?format=old" 2>/dev/null); do sleep 2; done
case "$$client" in
*'"NoAccounts":"true"'*)
json() { printf '%s' "$$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; }
body=$$(printf '{"email":"%s","username":"%s","password":"%s"}' \
"$$(json "$$ADMIN_EMAIL")" "$$(json "$$ADMIN_USERNAME")" "$$(json "$$ADMIN_PASSWORD")")
if ! wget -qO /dev/null --header 'Content-Type: application/json' --post-data "$$body" "$$mattermost/api/v4/users"; then
echo "Mattermost refused the administrator: an email address, a username of letters, digits, dots, dashes and underscores, and a password of 8 characters at least are what it takes" >&2
exit 1
fi
echo "the administrator $$ADMIN_USERNAME is made"
;;
esac
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
configs:
- source: caddy
target: /etc/caddy/Caddyfile
# The image's own directories, which a proxy without certificates does not use.
tmpfs:
- /config
- /data
depends_on:
- mattermost
mattermost:
image: mattermost/mattermost-team-edition:12.0
restart: unless-stopped
environment:
MM_SQLSETTINGS_DRIVERNAME: postgres
MM_SQLSETTINGS_DATASOURCE: postgres://mattermost:${POSTGRES_PASSWORD}@postgres:5432/mattermost?sslmode=disable&connect_timeout=10
MM_SERVICESETTINGS_SITEURL: ${URL}
# Only the proxy reaches Mattermost, and it says who the client is.
MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER: X-Forwarded-For
volumes:
- config:/mattermost/config
- data:/mattermost/data
- logs:/mattermost/logs
- plugins:/mattermost/plugins
- client-plugins:/mattermost/client/plugins
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: mattermost
POSTGRES_USER: mattermost
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U mattermost -d mattermost"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
configs:
caddy:
content: |
{
admin off
auto_https off
}
:8065 {
reverse_proxy mattermost:8065
}
volumes:
config:
data:
logs:
plugins:
client-plugins:
db:
Mehr in Soziales und Community
- listmonkEin Manager für Newsletter und Mailinglisten
- LemmyEin Link-Aggregator und Forum für das Fediverse
- NodeBBEin Forum für deine Community
- Apache AnswerFragen und Antworten für eine Community, ein Help Center oder ein Team, ein eigenes Stack Overflow
- MastodonDein eigener Server im Fediverse: Beiträge, Follows und Antworten über Mastodon hinaus
- PixelfedFotos teilen ohne Werbung und Algorithmen, eine Instagram-Alternative, die mit Mastodon föderiert