Code Monkey home page Code Monkey logo

mattermost_ynh's Introduction

Mattermost for YunoHost

Integration level Working status Maintenance status

Install Mattermost with YunoHost

Read this README in other languages.

This package allows you to install Mattermost quickly and simply on a YunoHost server.
If you don't have YunoHost, please consult the guide to learn how to install it.

Overview

Mattermost Team Edition

A free-to-use, open source, self-hosted alternative to proprietary SaaS messaging. Team Edition is your open source “virtual office”, offering all the core productivity benefits of competing SaaS solutions. It deploys as a single Linux binary with PosgreSQL under an MIT license.

Mattermost Enterprise Edition

To explore the benefits of Mattermost’s enterprise features, you can replace the Mattermost Team Edition binary with a Mattermost Enterprise Edition binary. This version supports upgrading to Mattermost Enterprise Edition E10 or E20.

YunoHost specific features

This package can install the Entreprise Edition or the Team Edition.

Mattermost Mobile and Desktop Apps are available here

Features include:

  • One-to-one and group messaging, file sharing, and unlimited search history
  • Threaded messaging, emoji, and custom emoji
  • Tools for custom branding
  • Continuous archiving
  • Multi-factor authentication
  • Highly customizable third-party bots, integrations, and command line tools
  • Extensive integration support via webhooks, APIs, drivers, and third-party extensions
  • Easily scalable to dozens of users per team
  • Runtime profiling data and system monitoring reports

Shipped version: 9.8.1~ynh1

Screenshots

Screenshot of Mattermost

Documentation and resources

Developer info

Please send your pull request to the testing branch.

To try the testing branch, please proceed like that:

sudo yunohost app install https://github.com/YunoHost-Apps/mattermost_ynh/tree/testing --debug
or
sudo yunohost app upgrade mattermost -u https://github.com/YunoHost-Apps/mattermost_ynh/tree/testing --debug

More info regarding app packaging: https://yunohost.org/packaging_apps

mattermost_ynh's People

Contributors

alexaubin avatar amyblais avatar ericgaspar avatar frju365 avatar github-actions[bot] avatar jasonblais avatar kay0u avatar kemenaran avatar lindy65 avatar maniackcrudelis avatar nemsia avatar oniricorpe avatar tituspijean avatar yalh76 avatar yunohost-bot avatar zamentur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mattermost_ynh's Issues

Remove analytics

Mattermost use some analytics from segment.com
You can see them from the console of your browser.

Please remove this by a patch. It's not really what we expected from a open source app !
And more from a YunoHost app !

Allow installation in sub-directories

For now the installation is only possible at the root of a domain. This is not very flexible, and prevents installing Mattermost on the main domain of a Yunohost instance.

A configuration option could be added to install Mattermost in a subdirectory if needed.

Enable more package_check tests

For now most of package_check tests are disabled, because it's hard to test them locally.

Find a way to enable more of them.

Modernize the scripts syntax

Currently the scripts don't use many of the Yunohost helper functions.

They could make the scripts more readable and less error-prone. Although this would require to bump the minimum required Yunohost version to 2.6.4.

502 Bad Gateway after install

Hi ,
could someone help me to debug please ?
i just installed mattermost, but it's like the service is unknown by the system ...

yunohost -v

yunohost: 2.7.2
yunohost-admin: 2.7.2
moulinette: 2.7.2
ssowat: 2.7.2

install log :

2017-12-01 00:18:18,660 INFO yunohost.hook - [31160.1] + sudo cp /var/cache/yunohost/from_file/mattermost_ynh-8295da93cd36c66bf27e9b0082514f1dce255ba5/scripts/../conf/nginx.conf-nosub /etc/nginx/conf.d/mat.krashboyz.org.d/mattermost.conf
2017-12-01 00:18:18,675 INFO yunohost.hook - [31160.1] + sudo cp /var/cache/yunohost/from_file/mattermost_ynh-8295da93cd36c66bf27e9b0082514f1dce255ba5/scripts/../conf/supervisor.conf /etc/supervisor/conf.d/mattermost.conf
2017-12-01 00:18:18,690 INFO yunohost.hook - [31160.1] + sudo yunohost app setting mattermost is_public -v Yes
2017-12-01 00:18:18,953 INFO moulinette.actionsmap process - processing action [31278.1]: yunohost.app.setting
2017-12-01 00:18:18,979 INFO yunohost.hook - [31160.1] + '[' Yes = Yes ']'
2017-12-01 00:18:18,980 INFO yunohost.hook - [31160.1] + sudo yunohost app setting mattermost unprotected_uris -v /
2017-12-01 00:18:19,246 INFO moulinette.actionsmap process - processing action [31282.1]: yunohost.app.setting
2017-12-01 00:18:19,274 INFO yunohost.hook - [31160.1] + sudo service nginx reload
2017-12-01 00:18:19,540 INFO yunohost.hook - [31160.1] + sudo yunohost app ssowatconf
2017-12-01 00:18:19,831 INFO moulinette.actionsmap process - processing action [31294.1]: yunohost.app.ssowatconf
2017-12-01 00:18:21,837 INFO yunohost.app app_setting - [31294.1] cannot get app setting 'update_time' for 'mattermost'
2017-12-01 00:18:22,119 SUCCESS yunohost.app success - [31294.1] La configuration de SSOwat a été générée
2017-12-01 00:18:22,120 INFO yunohost.hook - [31160.1] La configuration de SSOwat a été générée
2017-12-01 00:18:22,147 INFO yunohost.hook - [31160.1] + sudo supervisorctl reload
2017-12-01 00:18:22,601 INFO yunohost.hook - [31160.1] Restarted supervisord
2017-12-01 00:18:25,082 SUCCESS yunohost.app success - [31160.1] La configuration de SSOwat a été générée
2017-12-01 00:18:25,083 SUCCESS yunohost.app success - [31160.1] Installation terminée

mattermost log :

more /var/log/mattermost.logmattermost.log <---------------- strange name for the logfile ^^

[2017/12/01 00:18:24 CET] [INFO] Loaded system translations for 'en' from '/var/www/mattermost/i18n/en.json'
[2017/12/01 00:18:24 CET] [INFO] Current version is 4.0.0 (4.0.2/Fri Jul 28 19:49:45 UTC 2017/f71cc067faf935b95ba6fd9e4b24ce5496ab62b9/none)
[2017/12/01 00:18:24 CET] [INFO] Enterprise Enabled: false
[2017/12/01 00:18:24 CET] [INFO] Current working directory is /var/www/mattermost
[2017/12/01 00:18:24 CET] [INFO] Loaded config file from /var/www/mattermost/config/config.json
[2017/12/01 00:18:24 CET] [INFO] Server is initializing...
[2017/12/01 00:18:24 CET] [INFO] Pinging SQL master database
[2017/12/01 00:18:24 CET] [INFO] The database schema has been set to version 4.0.0
[2017/12/01 00:18:24 CET] [CRIT] Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes
[2017/12/01 00:18:26 CET] [INFO] Loaded system translations for 'en' from '/var/www/mattermost/i18n/en.json'
[2017/12/01 00:18:26 CET] [INFO] Current version is 4.0.0 (4.0.2/Fri Jul 28 19:49:45 UTC 2017/f71cc067faf935b95ba6fd9e4b24ce5496ab62b9/none)
[2017/12/01 00:18:26 CET] [INFO] Enterprise Enabled: false
[2017/12/01 00:18:26 CET] [INFO] Current working directory is /var/www/mattermost
[2017/12/01 00:18:26 CET] [INFO] Loaded config file from /var/www/mattermost/config/config.json
[2017/12/01 00:18:26 CET] [INFO] Server is initializing...
[2017/12/01 00:18:26 CET] [INFO] Pinging SQL master database
[2017/12/01 00:18:26 CET] [CRIT] Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes
[2017/12/01 00:18:31 CET] [INFO] Loaded system translations for 'en' from '/var/www/mattermost/i18n/en.json'
[2017/12/01 00:18:31 CET] [INFO] Current version is 4.0.0 (4.0.2/Fri Jul 28 19:49:45 UTC 2017/f71cc067faf935b95ba6fd9e4b24ce5496ab62b9/none)
[2017/12/01 00:18:31 CET] [INFO] Enterprise Enabled: false
[2017/12/01 00:18:31 CET] [INFO] Current working directory is /var/www/mattermost
[2017/12/01 00:18:31 CET] [INFO] Loaded config file from /var/www/mattermost/config/config.json
[2017/12/01 00:18:31 CET] [INFO] Server is initializing...
[2017/12/01 00:18:31 CET] [INFO] Pinging SQL master database
[2017/12/01 00:18:31 CET] [CRIT] Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes
[2017/12/01 00:18:36 CET] [INFO] Loaded system translations for 'en' from '/var/www/mattermost/i18n/en.json'
[2017/12/01 00:18:36 CET] [INFO] Current version is 4.0.0 (4.0.2/Fri Jul 28 19:49:45 UTC 2017/f71cc067faf935b95ba6fd9e4b24ce5496ab62b9/none)
[2017/12/01 00:18:36 CET] [INFO] Enterprise Enabled: false
[2017/12/01 00:18:36 CET] [INFO] Current working directory is /var/www/mattermost
[2017/12/01 00:18:36 CET] [INFO] Loaded config file from /var/www/mattermost/config/config.json
[2017/12/01 00:18:36 CET] [INFO] Server is initializing...
[2017/12/01 00:18:36 CET] [INFO] Pinging SQL master database
[2017/12/01 00:18:36 CET] [CRIT] Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes

searching how to make the table supporting FULLTEXT

Propose updating to Mattermost 3.5

Hey @kemenaran,

Just wanted to inform you that Mattermost 3.5 release has been cut.

The new release contains security updates and several API changes - you can view the full changelog for Mattermost 3.5 here and find download links with hash numbers here

Wondering if you'd like to help update the Yunohost Installer to be compatible with Mattermost 3.5?

If you do update, please consider tweeting about it, which we can then retweet for greater reach.

Also, feel free to join the Mattermost Installers community channel for latest news relevant for installer owners.

Get sources from the original source

First, thanks for packagging mattermost, it's awesome !

I got one concern about the way you add app sources during installation ( https://github.com/kemenaran/yunohost-mattermost/blob/master/scripts%2Finstall#L64-L68 )
Adding a executable binary file in your repository is not really recommended; I'd rather download original source from Github as mentionned in the upstream documentation

I could provide a patch in the next few days if you don't have time to do that.

thx again

Fix permissions on the `var/log` directory

Mattermost needs permissions to write in the /var/log directory. Currently we only give permission to the mattermost user to write in /var/log/mattermost.log, which may be insufficient.

The issue never occured for now – but as errors when writing log files tend to crash the whole server, this better be cleaned up.

Changement du propriétaire de l'app

Bonjour,
Il serait bien, pour une meilleure gestion des applications et une meilleure gestion des contributions, que toutes les apps rejoignent l'organisation Yunohost-Apps.
Merci,
frju365


Hello,
To manage in a better way the contributions and the Apps, we invite you to change the ownership of your app to Yunohost-Apps Organization.
Thanks,
frju365

Encryption

There are multiple types of encryption with Mattermost

1.TLS
https://docs.mattermost.com/install/config-tls-mattermost.html
2.Encryption options at the disk level are documented both for MySQL and PostgreSQL.
https://www.postgresql.org/docs/8.1/encryption-options.html
3. Minio ( basically storage server)
4. encryption-at-rest is available for files stored via hardware and software disk encryption solutions applied to the server

So 1 and 2 or implemented by default or not? and if not how can i set them up while using yunohost
and if you can provide some info about 4 that would be cool

Add a Rasbberry-compatible package

can u please make the apps compatible with a raspberry
1960 WARNING Mattermost requires an x86_64 machine, but this one is 'armv7l'.
thanks to u for now i have this wen i try to install

thanks for u

Fix new Yunohost linter issues

The Yunohost Linter has been upgraded, and now wants scripts to use more helpers (instead of unsafe shell script commands).

https://ci-stretch.nohost.me/ci/job/2202

 [Manifest]

! Consider adding an 'help' key for argument 'is_public' to explain to the user what it means for *this* app to be public or private :
    "help": {
       "en": "Some explanation"
    } 
! [YEP-2.1] You should specify the type of the argument 'admin_email'. You can use : domain, path, boolean, app, password, user, string. 
! [YEP-2.1] You should specify the type of the argument 'admin_locale'. You can use : domain, path, boolean, app, password, user, string. 
! [YEP-2.1] You should specify the type of the argument 'team_display_name'. You can use : domain, path, boolean, app, password, user, string. 
! YunoHost version requirement is still 2.x ... Good job if it does still work on Jessie !... But are you really sure about that ;) ? be careful that many new helpers you might already be playing with are only available on 3.x... 

 [Install Script]

! [YEP-2.12] You should avoid using 'sed -i', please use 'ynh_replace_string' instead 
! [YEP-2.12] You should not need to use 'sudo', the script is being run as root. (If you need to run a command using a specific user, use 'ynh_exec_as') 
! Instead of 'dd if=/dev/urandom' or 'openssl rand', you might want to use ynh_string_random 
! Please add a few messages for the user, to explain what is going on (in friendly, not-too-technical terms) during the installation. You can use 'ynh_print_info' or 'ynh_script_progression' for this. 

 [Remove Script]

✘ [YEP-2.12] You should avoid using 'rm -rf', please use 'ynh_secure_remove' instead 
! [YEP-2.12] You should not need to use 'sudo', the script is being run as root. (If you need to run a command using a specific user, use 'ynh_exec_as') 

 [Upgrade Script]

! [YEP-2.12] You should avoid using 'sed -i', please use 'ynh_replace_string' instead 
! [YEP-2.12] You should not need to use 'sudo', the script is being run as root. (If you need to run a command using a specific user, use 'ynh_exec_as') 

 [Backup Script]


 [Restore Script]

? [YEP-2.4] 'ynh_die' or 'exit' command is executed with system modification before (cmd 'rm').
This system modification is an issue if a verification exit the script.
You should move this verification before any system modification. 
! [YEP-2.12] You should not need to use 'sudo', the script is being run as root. (If you need to run a command using a specific user, use 'ynh_exec_as') 
--- FAIL ---

Upcoming breaking change when using Mattermost with a reverse proxy

My name is Jason Blais and I'm a product manager for the Mattermost open source project.

Mattermost is moving to new APIv4 endpoints, which will allow for more powerful integrations and server interaction.

As part of this move, we will be moving the WebSocket endpoint to APIv4 in Q3 of 2017 (tentatively scheduled for July 16, 2017 release). This will result in a breaking change for deployments using a reverse proxy.

For those configuring NGINX proxy, just a single one-line change is required, replacing the location /api/v3/users/websocket { line with location ~ /api/v[0-9]+/(users/)?websocket$ { in the /etc/nginx/sites-available/mattermost NGINX configuration file. We've noted this in our documentation.

I'm opening an issue so we can discuss if any changes are needed for the Yunohost package, as we weren't sure what kind of configuration is recommended on your end.

Install Issues

I have the current up to date versions of Debian and YUNoHost installed. This is what the current version of MySQL YUNoHost uses for MySQL "mysql Ver 15.1 Distrib 10.0.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2"(What I get when I run "mysql --version"). When I try to install this app I get this error message, "Error: Requirements are not met, the package mysql-common (5.5.49-0+deb8u1) must be >= 5.6". What can we do to fix this? I would love to use Mattermost on my YUNoHost server.

Force https

The app don't open in https itself and https has to be manually typed so that app can use secure connection.

Error 502 after update

mattermost log :

[2018/05/10 22:01:33 CEST] [INFO] Le serveur écoute sur le port [::]:8065
[2018/05/10 22:01:33 CEST] [EROR] Unable to setup forwarding: listen tcp :80: bind: permission denied
[2018/05/10 22:01:33 CEST] [CRIT] Erreur de démarrage du serveur, err : accept tcp [::]:8065: use of closed network connection
[2018/05/10 22:01:33 CEST] [INFO] API version 3 is scheduled for deprecation. Please see https://api.mattermost.com for details.
[2018/05/10 22:01:33 CEST] [INFO] Lancement de 4 concentrateurs websocket
[2018/05/10 22:01:33 CEST] [INFO] Starting workers
[2018/05/10 22:01:33 CEST] [INFO] Starting schedulers.

nginx log :

2018/05/11 13:31:47 [error] 2757#0: *7931 connect() failed (111: Connection refused) while connecting to upstream, client: 194.2.202.93, server: mat.krashboyz.org, request: "POST /api/v4/use
rs/status/ids HTTP/1.1", upstream: "http://127.0.0.1:8065/api/v4/users/status/ids", host: "mat.krashboyz.org"

yunohost -v (on a VPS)

yunohost: 
  repo: stable
  version: 2.7.12
yunohost-admin: 
  repo: stable
  version: 2.7.12
moulinette: 
  repo: stable
  version: 2.7.12
ssowat: 
  repo: stable
  version: 2.7.12

Install partially working

I tried to install this via the admin-webpage - didn't work.
Only the bash install worked.

Maybe setting the passwor is a problem in the webpage?

Does the admin interface fuck up passwords after 63+ characters? Do you know this? It was already an issue with another app...

Greetings! And have a nice weekend!

500 error when editing instance settings

Hello,
I'v installed the packaged on a server with :
64Bit
12 GB of RAM

and I get an error when I want to change settings (passwd, main URL,...) :
"We received an unexpected status code from the server. (500)"

Have you got any idea to solve it ?
Thanks,
frju365

Mattermost systemd service won't start on VPS with OpenVZ virtualisation

Hello,

During an upgrade the actual official repo version (the one without any restore script), it failed.
Mattermost service can't start.
Then I tried to remove it, and do a fresh install. Same result.
Note: I used the official app repo, and the version is different from this master, but it doesn't work better with master.

I have this error when trying to start the service : mattermost.service: control process exited, code=exited status=124

When checking the details with journalctl -xn, I have this message failed to reset devices.list on /system.slice/mattermost.service

Do you know what's going on ?

Download sources using `app.src`

Instead of downloading, unpacking and copying in place Mattermost sources, we can use the ynh_setup_source helper, with an app.src manifest that describes the source to download and install.

Use the free version (rather than the Entreprise Edition)

Currently the package downloads the tarball for the Entreprise Edition, and not the free Community Edition.

Feature-wise, this is stricly the same (Entreprise Edition features are not unlocked unless a serial key is provided). But this creates a licensing problem, as the EE doesn't have a free licence (and the CE does).

  • Fix the URLs and provide the CE instead
  • Ensure that migration from EE to CE works properly

Use a HEAD pointer on Yunohost's community.json app list

From the nice tip given by @alexAubin:

ProTip™ : possibly you can now set the commit to 'HEAD', to use the latest commit of master automatically in the future. If you do this, it is strongly recommended to use a 'testing' branch for changes that are not deemed stable yet.

I need to decide if a want to create a "testing" branch (and merge it every month or so into "master"), or keep merging into "master" and create a "yunohost-apps-list" branch.

Implement systemd start notifications in Mattermost

When starting the Mattermost service, systemd has no way to know whether the server launched successfully or not.

There is a kludge to work around this: after launching the server, we wait for the port 8085 to be available (and bail out after 10s). If the server crashes at startup before listening to the port, or if it gets into an infinite loop, systemd will mark it as failed.

It works, but it is still a piece of hard-to-maintain shell script. It also forces us to have a __PORT__ variable in the systemd service config, which we have to replace at install time by the port number.

The correct way to do this is to send a READY=1 message on some specific socket – so that systemd knows that our service started properly.

This should be implemented upstream in Mattermost.

Integrate Mattermost with Yunohost LDAP

Mattermost allows integrating the accounts with an LDAP system. This would let Mattermost users use the same credentials than their Yunohost account.

However LDAP integration is only available in Mattermost Entreprise, which users need to pay for.

Is it worth supporting features that users need to pay for?

Pros:

  • Paying for software is good, it helps supporting a viable system ;
  • Mattermost paid features are actually open-source (behind a feature-flag).

Cons:

  • Harder to developers to test without paying for a license ;
  • Looks like free work to support a revenue-generating feature for Mattermost.

Use systemd rather than supervisor

Currently the package uses supervisor to manage the server start and shutdown.

We should use instead a systemd script:

  • More in line with what the rest of the system does,
  • No need to install an extra dependency (as supervisor is not installed by default).

This would require Debian 8 "Jessie" as the minimum version for installing Mattermost.

Make package_check tests run in our test.sh VM

Currently the test.sh script duplicates a lot of work done by the official Yunohost testing tool, package_check. test.sh executes tests, keeps track of snapshots, and so on.

This could be replaced by simply running package_check in our VM, and forget about manual snapshot management and so on.

The difficulty is to make LXC containers actually work in the VM: it seems there are a lot of subte issues that need to be fixed one by one. For some of them there are already PR opened upstream.

Fix linter warnings

https://ci-apps.yunohost.org/jenkins/job/mattermost%20(Community)/lastBuild/console

>>>> INSTALL SCRIPT <<<<
✘ [YEP-2.4] ynh_abort_if_errors is missing. For details,look at https://dev.yunohost.org/issues/419 

>>>> REMOVE SCRIPT <<<<

>>>> UPGRADE SCRIPT <<<<
✘ [YEP-2.4] ynh_abort_if_errors is missing. For details,look at https://dev.yunohost.org/issues/419 

>>>> BACKUP SCRIPT <<<<
✘ [YEP-2.4] ynh_abort_if_errors is missing. For details,look at https://dev.yunohost.org/issues/419 

>>>> RESTORE SCRIPT <<<<
✘ [YEP-2.4] ynh_abort_if_errors is missing. For details,look at https://dev.yunohost.org/issues/419 

Editing Config.json

I wanted to edit config.json to enable Plugin Feature but its not in Opt/mattermost folder.

Can you tell me where the file is?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.