Configure GCS as storage in Chatwoot
Chatwoot supports Google Cloud storage as the storage provider. To enable GCS in Chatwoot, follow the below mentioned steps.
Set google as the active storage service in the environment variables
ACTIVE_STORAGE_SERVICE='google'
Get project ID variable
Login to your Google Cloud console. On your home page of your project you will be able to see the project id and project name as follows.
GCS_PROJECT=your-project-id
Setup GCS Bucket
Go to Storage -> Browser. Click on "Create Bucket". You will be presented with a screen as shown below. Select the default values and continue.
Once this is done you will get the bucket name. Set this as GCS_BUCKET.
GCS_BUCKET=your-bucket-name
Setup a service account
Go to Identity & Services -> Identity -> Service Accounts
. Click on "Create Service Account".
Provice a name and an ID for the service account, click on create. You will be asked to "Grant this service account access to the project" Select Cloud Storage -> Storage Admin as shown below.
Add service account to the bucket
Go to Storage -> Browser -> Your bucket -> Permissions. Click on add. On "New members" field select the service account you just created.
Select role as Cloud Storage -> Storage Admin
and save.
Generate a key for the service account
Go to Identity & Services -> Identity -> Service Accounts -> Your service account
. There is a section called Keys. Click on Add Key. You will be presented with an option like the one below. Select JSON from the option.
Copy the json file content and set it as GCS_CREDENTIALS
A sample credential file is of the following format.
{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "",
"client_email": "",
"client_id": "",
"auth_uri": "",
"token_uri": "",
"auth_provider_x509_cert_url": "",
"client_x509_cert_url": ""
}
When pasting the credentials to the ENV file, make sure to remove the new lines and paste it into a single line.
GCS_CREDENTIALS={"type": "service_account","project_id": "","private_key_id": "","private_key": "","client_email": "","client_id": "","auth_uri": "","token_uri": "","auth_provider_x509_cert_url": "","client_x509_cert_url": ""}
Note: If you are running Chatwoot v2.17+, make sure to wrap GCS_CREDENTIALS
in single quotes.