---
title: FAQs
---

### 1. Not receiving reset password emails

You need to configure the `Mail` parameters in the `.env` file. For detailed instructions, please refer to ["Environment Variables Explanation: Mail-related configuration"](/en/getting-started/install-self-hosted/environments#mail-related-configuration).

After modifying the configuration, run the following commands to restart the service:

```bash
docker compose down
docker compose up -d
```

If you still haven't received the email, please check if the email service is working properly and whether the email has been placed in the trash list.

### 2. How to handle if the workflow is too complex and exceeds the node limit?

In the community edition, you can manually adjust the MAX\_TREE\_DEPTH limit for single branch depth in `web/app/components/workflow/constants.ts.` Our default value is 50, and it's important to note that excessively deep branches may affect performance in self-hosted scenarios.

### 3. How to specify the runtime for each workflow node?

You can modify the `TEXT_GENERATION_TIMEOUT_MS` variable in the `.env` file to adjust the runtime for each node. This helps prevent overall application service unavailability caused by certain processes timing out.

### 4. How to reset the password of the admin account?

If you deployed using Docker Compose, you can reset the password with the following command while your Docker Compose is running:

```
docker exec -it docker-api-1 flask reset-password
```

It will prompt you to enter the email address and the new password. Example:

```bash
dify@my-pc:~/hello/dify/docker$ docker compose up -d
[+] Running 9/9
 ✔ Container docker-web-1         Started                                                              0.1s 
 ✔ Container docker-sandbox-1     Started                                                              0.1s 
 ✔ Container docker-db-1          Started                                                              0.1s 
 ✔ Container docker-redis-1       Started                                                              0.1s 
 ✔ Container docker-weaviate-1    Started                                                              0.1s 
 ✔ Container docker-ssrf_proxy-1  Started                                                              0.1s 
 ✔ Container docker-api-1         Started                                                              0.1s 
 ✔ Container docker-worker-1      Started                                                              0.1s 
 ✔ Container docker-nginx-1       Started                                                              0.1s 
dify@my-pc:~/hello/dify/docker$ docker exec -it docker-api-1 flask reset-password
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
sagemaker.config INFO - Not applying SDK defaults from location: /etc/xdg/sagemaker/config.yaml
sagemaker.config INFO - Not applying SDK defaults from location: /root/.config/sagemaker/config.yaml
Email: hello@dify.ai
New password: newpassword4567
Password confirm: newpassword4567
Password reset successfully.
```

### 5. How to Change the Port

If you're using Docker Compose, you can customize the access port by modifying the `.env` configuration file.

You need to modify the Nginx configuration:

```json
EXPOSE_NGINX_PORT=80
EXPOSE_NGINX_SSL_PORT=443
```

Other self-host issue please check this document [Self-Host Related](/en/learn-more/faq/install-faq)。

### 6. How to resolve database connection errors in docker-api-1?

**Issue Details**: When accessing `http://localhost`, you may encounter an `Internal Server Error`; and the following message might appear in the `docker-api-1` logs:

```bash
FATAL:  no pg_hba.conf entry for host "172.19.0.7", user "postgres", database "dify", no encryption
```

**Solution**: Update the `/var/lib/postgresql/pgdata/pg_hba.conf` file inside the db container to allow connections from the network segment mentioned in the error message. For example:

```bash
docker exec -it docker-db-1 sh -c "echo 'host all all 172.19.0.0/16 trust' >> /var/lib/postgresql/data/pgdata/pg_hba.conf"
docker-compose restart
```

### 7. How to change the file size limit for knowledge base uploads?

Modify the `UPLOAD_FILE_SIZE_LIMIT` parameter in the `.env` file to adjust the default limit. Additionally, you should also sync the `NGINX_CLIENT_MAX_BODY_SIZE` parameter value to avoid potential issues.

### 8. How to create a backup before upgrading?

Before upgrading, it is recommended to back up your current `dify` directory to prevent any potential data loss. You can create a backup with the following command:

```bash
cp -r dify "dify.bak.$(date +%Y%m%d%H%M%S)"
```

This will create a timestamped backup copy, making it easy to restore if needed.

### 9. How to install an older version of the Community Edition?

In some cases, you may want to install a specific older version of the Community Edition, you can use the `--branch` flag to do this. For example, to install version `0.15.3`:

```bash
git clone https://github.com/langgenius/dify.git --branch 0.15.3
```

This will clone the repository at that version, and the rest of the setup is the same as installing the latest version.

### 10. How to install the Community Edition using a ZIP archive?

If you're on a network-restricted server or unable to use `git` for any reason, you can install Dify using a ZIP archive:

```bash
wget -O dify.zip "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r '.zipball_url')"
unzip dify.zip && rm dify.zip
```

The remaining installation steps are the same as in the standard setup. Alternatively, you can download the ZIP archive on another device and manually upload it to the target server.

To upgrade later, download the latest archive and synchronize it with your existing installation:

```bash
wget -O dify-latest.zip "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r '.zipball_url')"
unzip dify-latest.zip && rm dify-latest.zip
rsync -a dify-latest/ dify/
rm -rf dify-latest/
cd dify/docker
docker compose pull
docker compose up -d
```

Make sure to back up your existing data before upgrading. Refer to [Question 8](#8) for details.
---

[Edit this page](https://github.com/langgenius/dify-docs/edit/main/en/getting-started/install-self-hosted/faqs.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?title=Documentation%20Issue%3A%20&body=%23%23%20Issue%20Description%0A%3C%21--%20Please%20briefly%20describe%20the%20issue%20you%20found%20--%3E%0A%0A%23%23%20Page%20Link%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs%2Fblob%2Fmain%2Fen/getting-started/install-self-hosted%2Ffaqs.mdx%0A%0A%23%23%20Suggested%20Changes%0A%3C%21--%20If%20you%20have%20specific%20suggestions%20for%20changes%2C%20please%20describe%20them%20here%20--%3E%0A%0A%3C%21--%20Thank%20you%20for%20helping%20improve%20our%20documentation%21%20--%3E)

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

---

[Edit this page](https://github.com/langgenius/dify-docs/edit/main/en/getting-started/install-self-hosted/faqs.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)

