Add development docs
This commit is contained in:
parent
2b60c58b5a
commit
b150d78e4d
3 changed files with 200 additions and 0 deletions
107
docs/development/environment-setup/ubuntu.md
Normal file
107
docs/development/environment-setup/ubuntu.md
Normal file
|
@ -0,0 +1,107 @@
|
|||
## Setting up development environment in Ubuntu
|
||||
|
||||
Open a terminal and run the following commands
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
```
|
||||
|
||||
### Install Git
|
||||
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
### Install RVM
|
||||
|
||||
You need software-properties-common installed in order to add PPA repositories.
|
||||
|
||||
```bash
|
||||
sudo apt-get install software-properties-common
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo apt-add-repository -y ppa:rael-gc/rvm
|
||||
sudo apt-get update
|
||||
sudo apt-get install rvm
|
||||
```
|
||||
|
||||
Enable `Run command as a login shell` in terminal `Preferences`. Restart your computer
|
||||
|
||||
### Install Ruby
|
||||
|
||||
Chatwoot APIs are built on Ruby on Rails, you need install ruby 2.6.3
|
||||
|
||||
```bash
|
||||
rvm install ruby-2.6.3
|
||||
```
|
||||
|
||||
Use ruby 2.6.3 as default
|
||||
|
||||
```bash
|
||||
rvm use 2.6.3 --default
|
||||
```
|
||||
|
||||
### Install Node.js
|
||||
|
||||
Install Node.js from NodeSoure using the following commands
|
||||
|
||||
```bash
|
||||
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
```
|
||||
|
||||
### Install yarn
|
||||
|
||||
We use `yarn` as package manager
|
||||
|
||||
```bash
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get install yarn
|
||||
```
|
||||
|
||||
### Install postgres
|
||||
|
||||
The database used in Chatwoot is PostgreSQL. Use the following commands to install postgres.
|
||||
|
||||
```bash
|
||||
sudo apt install postgresql postgresql-contrib
|
||||
```
|
||||
|
||||
The installation procedure created a user account called postgres that is associated with the default Postgres role. In order to use Postgres, you can log into that account.
|
||||
|
||||
```bash
|
||||
sudo -u postgres psql
|
||||
```
|
||||
|
||||
Install `libpg-dev` dependencies for ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt-get install libpq-dev
|
||||
```
|
||||
|
||||
### Install redis-server
|
||||
|
||||
Chatwoot uses Redis server in agent assignments and reporting. To install `redis-server`
|
||||
|
||||
```bash
|
||||
sudo apt-get install redis-server
|
||||
```
|
||||
|
||||
Enable Redis to start on system boot.
|
||||
|
||||
```bash
|
||||
sudo systemctl enable redis-server.service
|
||||
```
|
||||
|
||||
### Install imagemagick
|
||||
|
||||
```bash
|
||||
sudo apt-get install imagemagick
|
||||
```
|
||||
|
||||
Next: Read project setup to install project dependencies
|
17
docs/development/project-setup/dependencies.md
Normal file
17
docs/development/project-setup/dependencies.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
## Project dependencies
|
||||
|
||||
### Install Chatwoot Ruby dependencies
|
||||
|
||||
Use the following command to install ruby dependencies.
|
||||
|
||||
```bash
|
||||
bundle
|
||||
```
|
||||
|
||||
### Install Chatwoot JavaScript dependencies
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
This would install all required dependencies for Chatwoot application.
|
76
docs/development/project-setup/environment-variables.md
Normal file
76
docs/development/project-setup/environment-variables.md
Normal file
|
@ -0,0 +1,76 @@
|
|||
## Environment variables
|
||||
|
||||
### Setup environment variables
|
||||
|
||||
Copy `database` and `application` variables to the correct location.
|
||||
|
||||
```bash
|
||||
cp shared/config/database.yml config/database.yml
|
||||
cp shared/config/application.yml config/application.yml
|
||||
```
|
||||
|
||||
### Configure database
|
||||
|
||||
Use the following values in database.yml
|
||||
|
||||
```bash
|
||||
development:
|
||||
<<: *default
|
||||
username: postgres
|
||||
password:
|
||||
database: chatwoot_dev
|
||||
```
|
||||
|
||||
Following changes has to be in `config/application.yml`
|
||||
|
||||
### Configure Pusher
|
||||
|
||||
Chatwoot uses [Pusher](https://pusher.com/) to handle realtime messages. Create a free account on Pusher and fill the following environment values.
|
||||
|
||||
```yml
|
||||
pusher_app_id: ''
|
||||
pusher_key: ''
|
||||
pusher_secret: ''
|
||||
pusher_cluster: ''
|
||||
```
|
||||
|
||||
### Configure FB Channel
|
||||
|
||||
To use FB Channel, you have to create an Facebook app in developer portal. You can find more details about creating FB channels [here](https://developers.facebook.com/docs/apps/#register)
|
||||
|
||||
```yml
|
||||
fb_verify_token: ''
|
||||
fb_app_secret: ''
|
||||
fb_app_id: ''
|
||||
```
|
||||
|
||||
### Configure emails
|
||||
|
||||
For development, you don't need an email provider. Chatwoot uses [letter-opener](https://github.com/ryanb/letter_opener) gem to test emails locally
|
||||
|
||||
### Configure frontend URL
|
||||
|
||||
Provide the following value as frontend url
|
||||
|
||||
```yml
|
||||
frontend_url: 'http://localhost:3000'
|
||||
```
|
||||
|
||||
### Configure storage
|
||||
|
||||
Chatwoot currently supports only S3 bucket as storage. You can read [Creating an S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) and [Create an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) to configure the following details.
|
||||
|
||||
```yml
|
||||
S3_BUCKET_NAME: ''
|
||||
AWS_ACCESS_KEY_ID: ''
|
||||
AWS_SECRET_ACCESS_KEY: ''
|
||||
AWS_REGION: ''
|
||||
```
|
||||
|
||||
### Configure Redis URL
|
||||
|
||||
For development, you can use the following url to connect to redis.
|
||||
|
||||
```yml
|
||||
REDIS_URL: 'redis:://127.0.0.1:6379'
|
||||
```
|
Loading…
Reference in a new issue