Mattermost Alpha
Team Communication Service
Development Build
Mattermost is an open-source team communication service. It brings team messaging and file sharing into one place, accessible across PCs and phones, with archiving and search.
- Ask the core team anything at: http://forum.mattermost.org
- Share feature requests and upvotes: http://www.mattermost.org/feature-requests/
- File bugs: http://www.mattermost.org/filing-issues/
- Make a pull request: http://www.mattermost.org/contribute-to-mattermost/
You're installing "Mattermost Alpha", a pre-released version providing an early look at what we're building. While the core team runs this version internally, it's not recommended for production since we can't guarantee API stability or backwards compatibility.
That said, any issues at all, please let us know on the Mattermost forum at: http://forum.mattermost.org
Notes:
- For Alpha, Docker is intentionally setup as a single container, since production deployment is not yet recommended.
- Install Boot2Docker using instructions at: http://docs.docker.com/installation/mac/
- Start Boot2Docker from the command line and run:
boot2docker init eval โ$(boot2docker shellinit)โ
- Start Boot2Docker from the command line and run:
- Get your Docker IP address with:
boot2docker ip
- Use
sudo nano /etc/hosts
to add<Docker IP> dockerhost
to your /etc/hosts file - Run:
boot2docker shellinit
and copy the export statements to your ~/.bash_profile by runningsudo nano ~/.bash_profile
. Then run:source ~/.bash_profile
- Run:
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform
- When docker is done fetching the image, open http://dockerhost:8065/ in your browser.
-
Follow the instructions at https://docs.docker.com/installation/ubuntulinux/ or use the summary below:
sudo apt-get update sudo apt-get install wget wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker <username> sudo service docker start newgrp docker
-
Start docker container:
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform
-
When docker is done fetching the image, open http://localhost:8065/ in your browser.
-
Install Docker using the following commands:
pacman -S docker systemctl enable docker.service systemctl start docker.service gpasswd -a <username> docker newgrp docker
-
Start Docker container:
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform
-
When Docker is done fetching the image, open http://localhost:8065/ in your browser.
-
If you want to work with the latest master from the repository (i.e. not a stable release) you can run the cmd:
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform:dev
-
Instructions on how to update your Docker image are found below.
-
If you wish to remove mattermost-dev use:
docker stop mattermost-dev docker rm -v mattermost-dev
-
If you wish to gain access to a shell on the container use:
docker exec -ti mattermost-dev /bin/bash
-
Create a new Elastic Beanstalk Docker application using the Dockerrun.aws.zip file provided.
- From the AWS console select Elastic Beanstalk.
- Select "Create New Application" from the top right.
- Name the application and press next.
- Select "Create a web server" environment.
- If asked, select create an IAM role and instance profile and press next.
- For predefined configuration select under Generic: Docker. For environment type select single instance.
- For application source, select upload your own and upload Dockerrun.aws.zip from Dockerrun.aws.zip. Everything else may be left at default.
- Select an environment name, this is how you will refer to your environment. Make sure the URL is available then press next.
- The options on the additional resources page may be left at default unless you wish to change them. Press Next.
- On the configuration details place. Select an instance type of t2.small or larger.
- You can set the configuration details as you please but they may be left at their defaults. When you are done press next.
- Environment tags my be left blank. Press next.
- You will be asked to review your information. Press Launch.
-
Try it out! 14. Wait for beanstalk to update the environment. 15. Try it out by entering the domain of the form *.elasticbeanstalk.com found at the top of the dashboard into your browser. You can also map your own domain if you wish.
There are a few configuration settings you might want to adjust when setting up your instance of Mattermost. You can edit them in config/config.json or docker/0.6/config_docker.json if you're running a Docker instance.
- EmailSettings:ByPassEmail - If this is set to true, then users on the system will not need to verify their email addresses when signing up. In addition, no emails will ever be sent.
- ServiceSettings:UseLocalStorage - If this is set to true, then your Mattermost server will store uploaded files in the storage directory specified by StorageDirectory. StorageDirectory must be set if UseLocalStorage is set to true.
- ServiceSettings:StorageDirectory - The file path where files will be stored locally if UseLocalStorage is set to true. The operating system user that is running the Mattermost application must have read and write privileges to this directory.
- AWSSettings:S3* - If UseLocalStorage is set to false, and the S3 settings are configured here, then Mattermost will store files in the provided S3 bucket.
- Setup an email sending service. If you already have credentials for a SMTP server you can skip this step.
- Setup Amazon Simple Email Service
- From the
SMTP Settings
menu clickCreate My SMTP Credentials
- Copy the
Server Name
,Port
,SMTP Username
, andSMTP Password
- From the
Domains
menu setup and verify a new domain. It it also a good practice to enableGenerate DKIM Settings
for this domain. - Choose an email address like
[email protected]
for Mattermost to send emails from. - Test sending an email from
[email protected]
by clicking theSend a Test Email
button and verify everything appears to be working correctly.
- Modify the Mattermost configuration file config.json or config_docker.json with the SMTP information.
- If you're running Mattermost on Amazon Beanstalk you can shell into the instance with the following commands
ssh ec2-user@[domain for the docker instance]
sudo gpasswd -a ec2-user docker
- Retrieve the name of the container with
sudo docker ps
sudo docker exec -ti container_name /bin/bash
- Edit the config file
vi /config_docker.json
with the settings you captured from the step above. See an example below and noticeByPassEmail
has been set tofalse
"EmailSettings": {
"ByPassEmail" : false,
"SMTPUsername": "AKIADTOVBGERKLCBV",
"SMTPPassword": "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY",
"SMTPServer": "email-smtp.us-east-1.amazonaws.com:465",
"UseTLS": true,
"FeedbackEmail": "[email protected]",
"FeedbackName": "Feedback",
"ApplePushServer": "",
"ApplePushCertPublic": "",
"ApplePushCertPrivate": ""
}
- Restart Mattermost
- Find the process id with
ps -A
and look for the process namedplatform
- Kill the process
kill pid
- The service should restart automatically. Verify the Mattermost service is running with
ps -A
- Current logged in users will not be affected, but upon logging out or session expiration users will be required to verify their email address.
- Find the process id with
To upgrade your Docker image to a preview of the latest stable release (NOTE: this will erase all data in the Docker container, including the database):
-
Stop your Docker container by running:
docker stop mattermost-dev
-
Delete your Docker container by running:
docker rm mattermost-dev
-
Update your Docker image by running:
docker pull mattermost/platform
-
Start your Docker container by running:
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform
To upgrade to the latest development build on master from the repository replace mattermost/platform
with mattermost/platform:dev
in the instructions 3) and 4) above.
To contribute to this open source project please review the Mattermost Contribution Guidelines.
To setup your machine for development of mattermost see: Developer Machine Setup.
Mattermost is licensed under an "Apache-wrapped AGPL" model inspired by MongoDB. Similar to MongoDB, you can run and link to the system using Configuration Files and Admin Tools licensed under Apache, version 2.0, as described in the LICENSE file, as an explicit exception to the terms of the GNU Affero General Public License (AGPL) that applies to most of the remaining source files. See individual files for details.