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