3.0 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	path, title
| path | title | 
|---|---|
| /docs/installation-guide-docker | Docker Setup | 
Pre-requisites
Before proceeding, make sure you have the latest version of docker and docker-compose installed.
As of now[at the time of writing this doc], we recommend
```bash
$ docker --version
Docker version 19.03.3, build a872fc2f86
$ docker-compose --version
docker-compose version 1.25.3, build d4d1b42b
```
Development environment
- 
Clone the repository. $ git clone https://github.com/chatwoot/chatwoot.git
- 
Make a copy of the example environment file and modify as required [optional]. $ cp .env.example .envIf you want to set the password for redis when you run docker-compose, set any string value to the environment variable REDIS_PASSWORDin the.envfile. This will secure the redis running inside docker-compose with the given password. Also this will be automatically picked up by the app server and sidekiq, to authenticate while making connections to redis server.
- 
Build the images. $ docker-compose build
- 
After building the image or after destroying the stack you would have to reset the database using the following command. $ docker-compose run --rm rails bundle exec rails db:reset
- 
To run the app, $ docker-compose up- Access the rails app frontend by visiting http://0.0.0.0:3000/
- Access Mailhog inbox by visiting http://0.0.0.0:8025/(You will receive all emails going out of the application here)
- Access Sidekiq Web UI by visiting http://0.0.0.0:3000/sidekiq(You need to login with administrator account to access sidekiq)
 Login with credentialsurl: http://localhost:3000 user_name: john@acme.inc password: 123456
- Access the rails app frontend by visiting 
- 
To stop the app, $ docker-compose down
Running rspec tests
For running the complete rspec tests,
```bash
$ docker-compose run --rm rails bundle exec rspec
```
For running specific test,
```bash
$ docker-compose run --rm rails bundle exec rspec spec/<path-to-file>:<line-number>
```
Production environment
To debug the production build locally, set SECRET_KEY_BASE environment variable in your .env file and then run the below commands:
```bash
$ docker-compose -f docker-compose.production.yaml build
$ docker-compose -f docker-compose.production.yaml up
```
Debugging mode
To use debuggers like byebug or binding.pry, use the following command to bring up the app instead of docker-compose up.
```bash
   $ docker-compose run --rm --service-port rails  
```
Troubleshooting
If there is an update to any of the following
- dockerfile
- gemfile
- package.json
- schema change
Make sure to rebuild the containers and run db:reset.
```bash
$ docker-compose down
$ docker-compose build
$ docker-compose run --rm rails bundle exec rails db:reset
$ docker-compose up
```
