<table><thead><tr><thwidth="310">Variable Name</th><th>Example Value</th><th>Env variable description</th><thdata-hidden></th></tr></thead><tbody><tr><td>NODE_ENV</td><td>prod</td><td>Environment Mode</td><td></td></tr><tr><td>APP_DOMAIN</td><td>mychatbot.ai</td><td>Application Domain Name</td><td></td></tr><tr><td>API_ORIGIN</td><td>https://mychatbot.ai/api</td><td>The API endpoint will be used to communicate with the backend</td><td></td></tr><tr><td>FRONTEND_BASE_URL</td><td>https://mychatbot.ai:8080</td><td>The API endpoint will be used to communicate with the frontend</td><td></td></tr><tr><td>FRONTEND_ORIGIN</td><td>http://mychatbot.ai, https://mychatbot.ai</td><td>The origins that will be accepted by the API. A list of permitted origins for cross-origin requests</td><td></td></tr><tr><td>JWT_SECRET</td><td>346998ba1f171f107433</td><td>Secret to encrypt JWT token</td><td></td></tr><tr><td>SESSION_SECRET</td><td>27feaf70d2c78892bf49</td><td>Secret to encrypt session token</td><td></td></tr><tr><td>HTTPS_ENABLED</td><td>true</td><td>Https setting</td><td></td></tr><tr><td>INVITATION_JWT_SECRET</td><td>51c8ea00d82eb10ee226</td><td>Secret to encrypt invitation token</td><td></td></tr><tr><td>PASSWORD_RESET_JWT_SECRET</td><td>5ee97916017176d1ca6c</td><td>Secret to encrypt reset password token</td><td></td></tr><tr><td>CONFIRM_ACCOUNT_SECRET</td><td>80f74dce70e5385bf80b</td><td>Secret to encrypt confirm account token</td><td></td></tr><tr><td>MONGO_USER</td><td>my_mongo_username</td><td>Mongodb username</td><td></td></tr><tr><td>MONGO_PASSWORD</td><td>my_mongo_password</td><td>Mongodb password</td><td></td></tr><tr><td>AUTH_TOKEN</td><td>c97643c1c1e5e9dc5745</td><td>Secret to encrypt NLU token</td><td></td></tr><tr><td>NEXT_PUBLIC_API_ORIGIN</td><td>https://mychatbot.ai/api</td><td>Next.js API endpoint</td><td></td></tr></tbody></table>
Note that you can also adjust the default token expirations durations as needed.
{% hint style="info" %}
To be able to send email you will need to configure SMTP. Learn how to configure SMTP environment variables by following our detailed [SMTP setup guide](../developer-guide/smtp-configuration-and-emails.md)[.](../developer-guide/smtp-configuration-and-emails.md)
Deploying an Hexabot project on production requires you to setup a HTTP Web Server like Apache2, HAProxy or Nginx to secure communications using SSL, establish access per domain name, and a lot of other capabilities such as rate limiting for example to help protect against abuse and prevent server overload. In this guide, we will walk you through a typical HTTP Web Server setup using Nginx and Certbot for SSL certificate generation.
If you get an error please make sure you don't have any syntax error in `/etc/nginx/sites-available/default`
2. Reload Nginx with new configuration:
```bash
sudo systemctl reload nginx
```
***
Access your domain using HTTPS (eg. https://mychatbot.ai) to check if you have successfully deployed your Hexabot project using Nginx! 🚀🎉. Feel free to ask for support from the community on our Discord channel.
## **Method 2: Using Dockerized Nginx and Certbot services** :
This guide will help you set up Nginx with SSL using Docker and Certbot for your Hexabot project.
#### Step 1: Copy Required Files for Dockerized Nginx and Certbot
To use the Dockerized version of Nginx and Certbot:
1. Download the following files from the Hexabot GitHub repository:
* docker/nginx
* docker/docker-compose.nginx.yml
* docker/docker-compose.nginx.prod.yml
* docker/init-letsencrypt.sh
2. Copy these files under the `my-chatbot/docker` directory of your project.
#### Step 2: Initialize SSL with Certbot
1. Navigate to the `my-chatbot/docker` directory:
```sh
cd my-chatbot/docker
```
2.**Optional**: If you'd like to test your setup without hitting request limits for SSL certificates, set the staging variable to 1 in the `init-letsencrypt.sh` script before running it:
```sh
staging=1
```
After confirming the setup, set the `staging` variable back to `0` to request live certificates.
3. Run the `init-letsencrypt.sh` script:
Make sure to set the `APP_DOMAIN` variable to your application domain name in the`.env` file. It's recommended also to use a valid email address so make sure to set the `SSL_EMAIL` variable as well.
```sh
APP_DOMAIN=mychatbot.ai
SSL_EMAIL=hello@hexabot.ai
```
You can test the DNS configuration by running one of these commands:
```sh
nslookup mychatbot.ai
```
Or
```sh
dig mychatbot.ai
```
Make the `init-letsencrypt.sh` script executable by granting it execute permissions.
Once the script completes, run `docker ps` verify that your Nginx and Certbot docker containers are up and running. Access your Hexabot instance via the domain you specified (e.g., `https://mychatbot.ai`) to check if SSL certificates have been generated and are properly installed.