This repository has been archived by the owner on Mar 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 774
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3683870
commit b725aae
Showing
70 changed files
with
2,475 additions
and
213 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
### How can I help? | ||
|
||
### Contributing | ||
First of all, thanks! It's really awesome that you're interested in contributing to Rocket Chat. If this is the first Open Source project you will contribute to, it'd be cool if you read GitHub's excellent guide ["Contributing to Open Source"](https://guides.github.com/activities/contributing-to-open-source/). | ||
|
||
#### Getting Started | ||
You can find Rocket.Chat repositories [here] (https://github.com/RocketChat). If you see some issue you are willing to work on, just comment on it. We will add an [In Progress label](https://github.com/RocketChat/Rocket.Chat/labels/stat%3A%20in%20progress), and that's it! Want a simple task to get you started? [We maintain a list of those](https://github.com/RocketChat/Rocket.Chat/labels/contrib%3A%20easy)! | ||
|
||
**You don't have to write code to contribute!** | ||
We are always looking for help with creating or updating documentation, testing our apps (web, desktop and mobile) and reporting bugs. | ||
|
||
**Submitting Pull Requests** | ||
For contributions to code or documentation, you can fork the material, apply your contribution, and submit a [Pull Request] (https://help.github.com/articles/using-pull-requests/). | ||
|
||
**Submitting Bug Reports** | ||
We appreciate any & all bug reports! Did you find a bug? Reporting is easy! Simply open an [Issue] (https://github.com/RocketChat/Rocket.Chat/issues) in the applicable repository. | ||
|
||
Here are some suggested things to include, when applicable, which may help us troubleshoot a problem: | ||
|
||
* Operating System / Version / Architecture (64 bit?) | ||
* Browser type & Version (if web app), any browser add-ons which may be involved (e.g. AdBlocker, NoScript, etc.) | ||
* Desktop Environment (if desktop app) / Version | ||
* Rocket.Chat edition / Version or [build number] (/3.%20Support%2Frelease_version_info.md) | ||
* Expected behavior vs. Actual behavior (In other words, the "bug") | ||
* Can it be reproduced? If yes, how? | ||
* Relevant snippets from your error logs | ||
* Screen shots if helpful to communicate the problem | ||
|
||
#### Rocket.Chat At-A-Glance | ||
* [issues](https://github.com/RocketChat/Rocket.Chat/issues) categorize bug reports. | ||
* [labels](https://github.com/RocketChat/Rocket.Chat/labels) organize what we're doing. | ||
* [milestones](https://github.com/RocketChat/Rocket.Chat/milestones) control priority. | ||
|
||
#### Need Priority Features or Bug fixes? | ||
You can place a bounty on an issue you care about: https://www.bountysource.com/teams/rocketchat | ||
|
||
### Promoting Rocket.Chat | ||
If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow. | ||
|
||
**Please use this as a to-do list, as they are important** | ||
|
||
#### Follow us | ||
|
||
Please follow us on as many social networks as you can: | ||
|
||
* Facebook - https://www.facebook.com/RocketChatApp | ||
* Twitter - https://twitter.com/RocketChatApp | ||
* Google+ - https://plus.google.com/+RocketChatApp | ||
* CrunchBase - https://www.crunchbase.com/organization/rocket-chat | ||
* Angel.co - https://angel.co/rocket-chat | ||
* LinkedIn - https://www.linkedin.com/company/rocket-chat | ||
|
||
#### Vote, recommend, favorite and star us | ||
|
||
And vote for us on all these various polls and contests: | ||
|
||
* GitHub - https://github.com/RocketChat/Rocket.Chat | ||
* ProductHunt - http://www.producthunt.com/tech/rocket-chat | ||
* Bitnami - https://bitnami.com/contest/applications/13576/vote/now | ||
* Slant - http://www.slant.co/topics/3346/~what-are-the-best-on-site-alternatives-to-slack | ||
* StackShare - http://stackshare.io/stackups/lets-chat-vs-rocketchat-vs-mattermost | ||
* Reddit - https://redd.it/3hbdrc | ||
* StackExchange - http://softwarerecs.stackexchange.com/questions/18754/ | ||
* DockerHub - https://hub.docker.com/_/rocket.chat/ | ||
* AlternativeTo - https://alternativeto.net/software/rocket-chat/ | ||
|
||
#### Blog about us | ||
|
||
Here are some nice blog posts about our project for you to get some inspiration: | ||
|
||
* http://www.thehacktoday.com/how-to-install-rocket-chat-make-your-own-chatting-website | ||
* https://sameroom.io/blog/self-hosted-team-chat-options-and-alternatives | ||
* http://blog.geekgonecrazy.com/2015/09/19/osx-setup/#rocketchat | ||
* https://snowulf.com/2015/09/25/why-slack-when-you-can-rocket-chat/ | ||
* http://liminality.xyz/self-hosting/ | ||
|
||
#### Presentations | ||
|
||
* http://slides.com/gabrielengel/meteordevshop#/ | ||
|
||
#### Deployed in Websites: | ||
* Investment and Trading Chat Room http://seekingoptions.com | ||
|
||
### Reporting Security Issues | ||
First of all, thanks in advance for taking the time and effort help us improve the security of Rocket.Chat! We are committed to delivering an awesome and secure chat solution for, and aided by, our community. | ||
|
||
Given the nature of Chat, we understand each person using Rocket.Chat has some expectation about their data being secure and private. It's clear how important this is to everyone, and we work to the best of our abilities to ensure your expectations are met. | ||
|
||
#### If you find a Security Issue | ||
> __Please email the details to Rocket.Chat's security team at security@rocket.chat__ | ||
Our security team will respond to confirm receipt of your message, review and plan the mitigation of the issue appropriately, as well as set a timeline for a new release or patch. | ||
|
||
We follow responsible disclosure and will credit researchers when a security issue has been identified and mitigated while adhering to the following specifics: | ||
|
||
- You may not use automated tools in your research without our explicit consent. Use of automated tools may result in investigative action or your IP(s) being blocked. | ||
- You make a good faith effort to avoid privacy violations, destruction of data and interruption or degradation of our service during your research. | ||
- You give us reasonable time to respond to your report and carry out remediation. | ||
- We credit the first researcher to report an issue. Additionally, we reserve the right to only acknowledge researchers who discover issues in Rocket.Chat projects or related services, if we determine the issue to be of a high or critical severity, or if there has been continued research or contributions made by the reporter. | ||
- We will credit you with your name and a "no-follow" link to the address of your choosing (e.g. Twitter or personal website). | ||
- We will not bring any lawsuit or begin law enforcement investigation into you if you follow these parameters. | ||
|
||
#### What details should you include when reporting a Security Issue | ||
Please provide as many relevant details as you can. In particular: | ||
|
||
- What versions of software are involved | ||
- What steps someone can follow to go from an initial installation of that software to a point where they see the vulnerability | ||
- Any patches or steps to mitigate the problem | ||
|
||
#### WhiteHat Hall-of-Fame | ||
Rocket.Chat is very grateful for the following people who have responsibly disclosed vulnerabilities to us: | ||
|
||
- [Matt Austin](http://m-austin.com), October/2015. | ||
- [Kamran Saifullah](https://pk.linkedin.com/in/kamransaifullah786), November/2015. | ||
- [Sabri Haddouche](https://github.com/pwnsdx), November/2015. | ||
|
||
Thank you all very much! | ||
|
||
### Getting Support | ||
Every new build now includes version information. | ||
|
||
For now, it can be accessed directly via : `http://<your server name>/api/info` | ||
|
||
A sample output of the version information: | ||
|
||
``` | ||
{ | ||
"version": "0.8.0", | ||
"compile": { | ||
"date": "2015-12-11T23:57:49.792Z", | ||
"nodeVersion": "v0.10.40", | ||
"arch": "x64", | ||
"platform": "linux", | ||
"osRelease": "3.13.0-52-generic", | ||
"totalMemmory": 8373084160, | ||
"freeMemmory": 241037312, | ||
"cpus": 4 | ||
}, | ||
"commit": { | ||
"hash": "b023db6f9321194dcb3db5128b62abbc3bafdc2f", | ||
"date": "Fri Dec 11 21:52:55 2015 -0200", | ||
"author": "Gabriel Engel", | ||
"subject": "Merge pull request #1627 from jgerle/develop" | ||
}, | ||
"tag": "v0.8.0", | ||
"branch": "develop" | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
See [Deploy Rocket.Chat without docker](https://github.com/RocketChat/Rocket.Chat/wiki/Deploy-Rocket.Chat-without-docker) for more details. |
200 changes: 200 additions & 0 deletions
200
3. Installing and Updating/Deploy-Rocket.Chat-without-docker.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
### NOTE: | ||
|
||
Please only use this guide if you are comfortable with deploying applications to Ubuntu using the command line. | ||
|
||
There are easier deployment options such as: | ||
|
||
* [Sandstorm](https://apps.sandstorm.io/app/vfnwptfn02ty21w715snyyczw0nqxkv3jvawcah10c6z7hj1hnu0), you can have a server for your family and friends running in 4 seconds. | ||
* [Cloudron](https://cloudron.io/appstore.html#chat.rocket.cloudronapp), you can install and receive automatic updates on your Cloudron Smartserver. | ||
* [Heroku one click deploy](https://heroku.com/deploy?template=https://github.com/RocketChat/Rocket.Chat/tree/master), you can run and operate a small server instance on their FREE (or low cost) plans. | ||
|
||
Another option, you can request for a beta of Rocket.Chat hosting service - you can have a server up and running, professionally managed, without installations, configuration, maintenance and management head-aches. Just send an email to support@rocket.chat and request for _"Hosting beta"_. | ||
|
||
This guide explains how to deploy your own Rocket.Chat instance to a Ubuntu Linux machine using the command line. | ||
|
||
## 1. Install Dependencies | ||
|
||
- `Node.js` | ||
- `MongoDB` | ||
- `curl` | ||
- `graphicsmagick` | ||
|
||
```shell | ||
# SYSTEM CONFIGURATION | ||
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 | ||
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list | ||
sudo apt-get update | ||
sudo apt-get install -y mongodb-org curl graphicsmagick | ||
|
||
# We have to also install `npm`, which is the Node.js package manager. You can do this by typing: | ||
sudo apt-get install npm | ||
|
||
|
||
|
||
|
||
# If you encountered some errors when trying to install npm | ||
# try to install nodejs in the first place. | ||
# The nodejs package contains the nodejs binary as well as npm, so you don't need to install npm separately. | ||
sudo apt-get install nodejs | ||
|
||
# OR | ||
# An alternative that can get you a more recent version of Node.js is to add a PPA maintained by NodeSource | ||
curl -sL https://deb.nodesource.com/setup | sudo bash - | ||
# After running the setup script from nodesource, you can install the Node.js package | ||
# in the same way that you did above | ||
sudo apt-get install nodejs | ||
# In order for some npm packages to work (such as those that require building from source) | ||
# you will need to install the build-essentials package: | ||
sudo apt-get install build-essential | ||
# for more please view the link below. | ||
|
||
|
||
|
||
|
||
|
||
# Install a tool to let us change the node version. | ||
sudo npm install -g n | ||
|
||
# Meteor needs at least this version of node to work. | ||
sudo n 0.10.40 | ||
``` | ||
|
||
More on [nodejs installation](https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-ubuntu-14-04-server) | ||
|
||
|
||
## 2. Install Rocket.Chat | ||
|
||
Download Stable version of Rocket.Chat (or pick a version from [our releases page](https://rocket.chat/releases)): | ||
|
||
``` | ||
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz | ||
``` | ||
|
||
Then untar the binary release: | ||
|
||
``` | ||
tar zxvf rocket.chat.tgz | ||
``` | ||
|
||
this will expand everything into a `bundle` directory. | ||
|
||
Next, make sure MongoDB server is already up and running. Then, set environment variables and run the Rocket.Chat server: | ||
|
||
``` | ||
mv bundle Rocket.Chat | ||
cd Rocket.Chat/programs/server | ||
npm install | ||
cd ../.. | ||
export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ | ||
export MONGO_URL=mongodb://localhost:27017/rocketchat | ||
export PORT=3000 | ||
node main.js | ||
``` | ||
You **MUST** set the `ROOT_URL` environment variable to the Internet accessible URL to your server. | ||
|
||
This will start the Rocket.Chat server running. | ||
|
||
If you would like to start Rocket.Chat on an alternative port, use the environment variable PORT. | ||
|
||
**Note: If using port 80 you will have to run as root. This is because it is a privileged port.** | ||
|
||
If you choose to do this. You need to do something like this: | ||
``` | ||
sudo ROOT_URL=http://your-host-name.com-as-accessed-from-internet/ \ | ||
MONGO_URL=mongodb://localhost:27017/rocketchat \ | ||
PORT=80 \ | ||
node main.js | ||
# Or... | ||
sudo su | ||
export ROOT_URL=http://your-host-name.com-as-accessed-from-internet/ | ||
export MONGO_URL=mongodb://localhost:27017/rocketchat | ||
export PORT=80 | ||
node main.js | ||
``` | ||
|
||
NOTE: If you need to keep the server up and running across reboots, use a task manager such as forever, PM2 or write your own shell management scripts. | ||
|
||
## 3. Setup MongoDB Replica Set | ||
|
||
Rocket.Chat uses the [MongoDB replica set](http://docs.mongodb.org/manual/replication/) **OPTIONALLY** to improve performance via Meteor Oplog tailing. To configure the replica set: | ||
|
||
#### For older MongoDB versions (2.4 and bellow) | ||
|
||
Append `replSet=001-rs` into `mongod.conf` file: | ||
|
||
```shell | ||
$ echo replSet=001-rs >> /etc/mongod.conf | ||
``` | ||
|
||
And restart Mongo: | ||
|
||
```shell | ||
$ service mongod restart | ||
$ mongo | ||
``` | ||
|
||
#### For new MongoDB versions (2.6 and above) | ||
|
||
Using YAML syntax add this section into `mongod.conf`: | ||
|
||
``` | ||
replication: | ||
replSetName: "001-rs" | ||
``` | ||
|
||
Restart Mongo: | ||
|
||
```shell | ||
$ service mongod restart | ||
$ mongo | ||
``` | ||
|
||
Start the MongoDB shell and initiate the replica set: | ||
|
||
```shell | ||
$ mongo | ||
> rs.initiate() | ||
``` | ||
|
||
The result should look like this | ||
|
||
``` | ||
{ | ||
"info2" : "no configuration explicitly specified -- making one", | ||
"me" : "localhost:27017", | ||
"info" : "Config now saved locally. Should come online in about a minute.", | ||
"ok" : 1 | ||
} | ||
``` | ||
|
||
After a few seconds, you should see your prompt turn into `001-rs:PRIMARY> `, this indicates the replica set is being used. Type `exit` to get back to your regular shell. | ||
|
||
After you configured replica set, you **MUST** add the following environment variable before restarting Rocket.Chat server for it to take effect: | ||
|
||
``` | ||
MONGO_OPLOG_URL=mongodb://localhost:27017/local | ||
``` | ||
|
||
|
||
## 4. Configure Rocket.Chat | ||
|
||
Rocket.Chat is installed and needs to be configured. Follow these guides to properly configure everything your instance needs: | ||
|
||
1. [Creating the First Admin](https://github.com/RocketChat/Rocket.Chat/wiki/Creating-the-First-Admin) | ||
2. [Run Rocket.Chat behind a SSL Reverse Proxy](https://github.com/RocketChat/Rocket.Chat/wiki/Run-Rocket.Chat-behind-a-SSL-Reverse-Proxy) | ||
|
||
## 5. Update an already installed instance | ||
|
||
In summary do the following: | ||
|
||
1. Make sure server is down | ||
1. Change into the directory where you have the `Rocket.Chat` directory | ||
1. remove the old server executables | ||
* `rm -rf Rocket.Chat` | ||
1. Repeat Installation [step](#2-install-rocketchat) | ||
|
||
You can always [update directly](https://github.com/RocketChat/Rocket.Chat/issues/2408) to the newest version, the database migrations will execute from the old version to the new version. |
Oops, something went wrong.