Closed dyh2024 closed 3 months ago
@dyh2024 Hello there! I'm here to assist you with any bugs, questions, or contributions you may have. Let's work together to resolve this issue.
The account registration page getting stuck when deploying Dify versions 0.6.8, 0.6.9, and 0.6.10 using self-hosted (Docker) and self-hosted (Source) setups on a Tencent Cloud Server, but not when using Docker Compose deployment, may be due to CORS (Cross-Origin Resource Sharing) issues.
To resolve this, ensure that the CORS configuration is correctly set in your deployment setup. Specifically, update the following configuration items in your environment variables to match your domain name:
CONSOLE_API_URL: The backend URL of the console API.
CONSOLE_WEB_URL: The front-end URL of the console web.
SERVICE_API_URL: Service API Url.
APP_API_URL: WebApp API backend Url.
APP_WEB_URL: WebApp Url.
Additionally, ensure that the CORS settings are properly configured:
CONSOLE_CORS_ALLOW_ORIGINS: The CORS policy for the console, default is `*`.
WEB_API_CORS_ALLOW_ORIGINS: The CORS policy for the WebApp, default is `*`.
This configuration ensures that the front end and back end are correctly aligned, preventing CORS issues that could cause the registration page to get stuck.
Furthermore, ensure that the following environment variables are properly configured in your docker-compose.yaml
file:
CONSOLE_WEB_URL: 'http://your-console-web-url'
CONSOLE_API_URL: 'http://your-console-api-url'
SERVICE_API_URL: 'http://your-service-api-url'
APP_WEB_URL: 'http://your-app-web-url'
WEB_API_CORS_ALLOW_ORIGINS: '*'
CONSOLE_CORS_ALLOW_ORIGINS: '*'
By ensuring these configurations are correctly set, you can avoid CORS issues and ensure the account registration page functions properly [1][2][3][4].
To continue talking to Dosu, mention @dosu.
Please check your env vars.
Please check your env vars.
My env vars consistent with the documentation( https://docs.dify.ai/getting-started/install-self-hosted/local-source-code,https://docs.dify.ai/getting-started/install-self-hosted/start-the-frontend-docker-container), and keep the same with default values, no modifications . for examples:api/.env , web/.env.local . Do I need to modify the default vars? for example :CONSOLE_API_URL=http://127.0.0.1:5001 and NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
@dyh2024 Hello there! I'm here to assist you with any bugs, questions, or contributions you may have. Let's work together to resolve this issue.
The account registration page getting stuck when deploying Dify versions 0.6.8, 0.6.9, and 0.6.10 using self-hosted (Docker) and self-hosted (Source) setups on a Tencent Cloud Server, but not when using Docker Compose deployment, may be due to CORS (Cross-Origin Resource Sharing) issues.
To resolve this, ensure that the CORS configuration is correctly set in your deployment setup. Specifically, update the following configuration items in your environment variables to match your domain name:
CONSOLE_API_URL: The backend URL of the console API. CONSOLE_WEB_URL: The front-end URL of the console web. SERVICE_API_URL: Service API Url. APP_API_URL: WebApp API backend Url. APP_WEB_URL: WebApp Url.
Additionally, ensure that the CORS settings are properly configured:
CONSOLE_CORS_ALLOW_ORIGINS: The CORS policy for the console, default is `*`. WEB_API_CORS_ALLOW_ORIGINS: The CORS policy for the WebApp, default is `*`.
This configuration ensures that the front end and back end are correctly aligned, preventing CORS issues that could cause the registration page to get stuck.
Furthermore, ensure that the following environment variables are properly configured in your
docker-compose.yaml
file:CONSOLE_WEB_URL: 'http://your-console-web-url' CONSOLE_API_URL: 'http://your-console-api-url' SERVICE_API_URL: 'http://your-service-api-url' APP_WEB_URL: 'http://your-app-web-url' WEB_API_CORS_ALLOW_ORIGINS: '*' CONSOLE_CORS_ALLOW_ORIGINS: '*'
By ensuring these configurations are correctly set, you can avoid CORS issues and ensure the account registration page functions properly [1][2][3][4].
To continue talking to Dosu, mention @dosu.
I was started from local source (https://docs.dify.ai/getting-started/install-self-hosted/local-source-code), where(in which files) should i to configure these environment variables?
To configure the environment variables when starting from the local source, you should modify the .env
files for the API and web services. Here are the steps:
API Service Configuration:
api
directory:
cd api
cp .env.example .env
.env
file to include the necessary environment variables:
CONSOLE_API_URL=http://127.0.0.1:5001
CONSOLE_WEB_URL=http://127.0.0.1:3000
SERVICE_API_URL=http://127.0.0.1:5001
APP_API_URL=http://127.0.0.1:5001/api
APP_WEB_URL=http://127.0.0.1:3000
Web Frontend Configuration:
web
directory:
cd web
.env.local
and copy the contents from .env.example
. Modify the values of these environment variables:
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
CORS Configuration:
.env
files:
CONSOLE_CORS_ALLOW_ORIGINS=*
WEB_API_CORS_ALLOW_ORIGINS=*
After modifying these files, you need to rebuild and restart your services for the changes to take effect.
For more detailed configuration options, you can refer to the environments.md
file in the Dify documentation [1][2].
To continue talking to Dosu, mention @dosu.
To configure the environment variables when starting from the local source, you should modify the
.env
files for the API and web services. Here are the steps:
API Service Configuration:
- Navigate to the
api
directory:cd api
- Copy the environment variable configuration file:
cp .env.example .env
- Modify the
.env
file to include the necessary environment variables:CONSOLE_API_URL=http://127.0.0.1:5001 CONSOLE_WEB_URL=http://127.0.0.1:3000 SERVICE_API_URL=http://127.0.0.1:5001 APP_API_URL=http://127.0.0.1:5001/api APP_WEB_URL=http://127.0.0.1:3000
Web Frontend Configuration:
- Navigate to the
web
directory:cd web
- Create a file named
.env.local
and copy the contents from.env.example
. Modify the values of these environment variables:NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
CORS Configuration:
- Ensure that the CORS settings are properly configured in your
.env
files:CONSOLE_CORS_ALLOW_ORIGINS=* WEB_API_CORS_ALLOW_ORIGINS=*
After modifying these files, you need to rebuild and restart your services for the changes to take effect.
For more detailed configuration options, you can refer to the
environments.md
file in the Dify documentation [1][2].To continue talking to Dosu, mention @dosu.
Configure the environment variables as same as above-mentioned, but the problem remain!
To configure the environment variables when starting from the local source, you should modify the
.env
files for the API and web services. Here are the steps:
API Service Configuration:
- Navigate to the
api
directory:cd api
- Copy the environment variable configuration file:
cp .env.example .env
- Modify the
.env
file to include the necessary environment variables:CONSOLE_API_URL=http://127.0.0.1:5001 CONSOLE_WEB_URL=http://127.0.0.1:3000 SERVICE_API_URL=http://127.0.0.1:5001 APP_API_URL=http://127.0.0.1:5001/api APP_WEB_URL=http://127.0.0.1:3000
Web Frontend Configuration:
- Navigate to the
web
directory:cd web
- Create a file named
.env.local
and copy the contents from.env.example
. Modify the values of these environment variables:NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
CORS Configuration:
- Ensure that the CORS settings are properly configured in your
.env
files:CONSOLE_CORS_ALLOW_ORIGINS=* WEB_API_CORS_ALLOW_ORIGINS=*
After modifying these files, you need to rebuild and restart your services for the changes to take effect. For more detailed configuration options, you can refer to the
environments.md
file in the Dify documentation [1][2]. To continue talking to Dosu, mention @dosu.Configure the environment variables as same as above-mentioned, but the problem remain!
To address the issue with the account registration page getting stuck and encountering net::ERR_CONNECTION_REFUSED
errors for the /setup
endpoint, follow these steps:
Check Network Configuration:
Verify Docker Configuration:
services:
api:
...
ports:
- "5001:5001"
Inspect Docker Compose Configuration:
docker-compose.yaml
file is correctly configured. For example, make sure the api
service is properly set up to expose the necessary ports and that the nginx
service is configured to reverse proxy the API service:
services:
api:
image: langgenius/dify-api:0.6.10
...
ports:
- "5001:5001"
nginx:
...
ports:
- "80:80"
Database Connection:
setup
function interacts with the database, so any issues with the database connection could cause the setup process to fail. Verify the database settings in the docker-compose.yaml
file:
services:
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: difyai123456
POSTGRES_DB: dify
...
Check Logs:
docker-compose logs
Ensure Services are Running:
docker-compose ps
Reverse Proxy Configuration:
nginx
service is correctly configured to reverse proxy the API and web services. Here is an example configuration snippet for nginx
:
services:
nginx:
image: nginx:latest
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- api
- web
ports:
- "80:80"
Environment Variables:
.env
file, the NEXT_PUBLIC_API_PREFIX
and NEXT_PUBLIC_PUBLIC_API_PREFIX
should be correctly configured to point to the appropriate URLs. Here are some examples:
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
Configuration File:
Ensure that the configuration file api/config.py
is correctly set up. Verify that the database and other service configurations are correctly specified. For example:
import os
import dotenv
dotenv.load_dotenv()
DEFAULTS = {
'DB_USERNAME': 'postgres',
'DB_PASSWORD': 'dify123456',
'DB_HOST': 'localhost',
'DB_PORT': '5432',
'DB_DATABASE': 'dify',
'REDIS_HOST': 'localhost',
'REDIS_PORT': '6379',
'REDIS_DB': '0',
'CONSOLE_API_URL': 'http://localhost:5001/console/api',
'CONSOLE_WEB_URL': 'http://localhost:5001',
'SERVICE_API_URL': 'http://localhost:5001/api',
...
}
def get_env(key):
return os.environ.get(key, DEFAULTS.get(key))
class Config:
def __init__(self):
self.DB_USERNAME = get_env('DB_USERNAME')
self.DB_PASSWORD = get_env('DB_PASSWORD')
self.DB_HOST = get_env('DB_HOST')
self.DB_PORT = get_env('DB_PORT')
self.DB_DATABASE = get_env('DB_DATABASE')
self.REDIS_HOST = get_env('REDIS_HOST')
self.REDIS_PORT = get_env('REDIS_PORT')
self.REDIS_DB = get_env('REDIS_DB')
self.CONSOLE_API_URL = get_env('CONSOLE_API_URL')
self.CONSOLE_WEB_URL = get_env('CONSOLE_WEB_URL')
self.SERVICE_API_URL = get_env('SERVICE_API_URL')
...
By following these steps, you should be able to resolve the net::ERR_CONNECTION_REFUSED
errors and get the account registration page working correctly [1][2][3][4][5].
To continue talking to Dosu, mention @dosu.
Please check your env vars.
Maybe I found the cause of the problem!
After I deployed the server according to the document https://docs.dify.ai/getting-started/install-self-hosted/local-source-code#server-deployment, And start then frontend service according to the document https://docs.dify.ai/getting-started/install-self-hosted/start-the-frontend-docker-container, by then command 'docker run -it -p 3000:3000 -e CONSOLE_URL=http://127.0.0.1:5001 -e APP_URL=http://127.0.0.1:5001 langgenius/dify-web:latest' .
My environment is Tencent Cloud Server and opened the ports: 3000,5001.
When I visit http://127.0.0.1:3000 and http://(Internal IP):3000, no problem. But when I visit http://(Public IP):3000, The problem arose(the install(Account registration) page keeps getting stuck).
The vars of CORS in api/.env :
Is there any solution to this problem?
Please check your env vars.
Maybe I found the cause of the problem!
After I deployed the server according to the document https://docs.dify.ai/getting-started/install-self-hosted/local-source-code#server-deployment, And start then frontend service according to the document https://docs.dify.ai/getting-started/install-self-hosted/start-the-frontend-docker-container, by then command 'docker run -it -p 3000:3000 -e CONSOLE_URL=http://127.0.0.1:5001 -e APP_URL=http://127.0.0.1:5001 langgenius/dify-web:latest' .
My environment is Tencent Cloud Server and opened the ports: 3000,5001.
When I visit http://127.0.0.1:3000 and http://(Internal IP):3000, no problem. But when I visit http://(Public IP):3000, The problem arose(the install(Account registration) page keeps getting stuck).
The vars of CORS in api/.env :
Is there any solution to this problem?
If you deploy the application to your public severs.
You need to change this as well.
CONSOLE_URL=http://public-ip:5001/ -e APP_URL=http://public-ip:5001/
Because you are trying to access the localhost(your computer) in your public server and it doesn't know.
Please check your env vars.
Maybe I found the cause of the problem! After I deployed the server according to the document https://docs.dify.ai/getting-started/install-self-hosted/local-source-code#server-deployment, And start then frontend service according to the document https://docs.dify.ai/getting-started/install-self-hosted/start-the-frontend-docker-container, by then command 'docker run -it -p 3000:3000 -e CONSOLE_URL=http://127.0.0.1:5001 -e APP_URL=http://127.0.0.1:5001 langgenius/dify-web:latest' . My environment is Tencent Cloud Server and opened the ports: 3000,5001. When I visit http://127.0.0.1:3000 and http://(Internal IP):3000, no problem. But when I visit http://(Public IP):3000, The problem arose(the install(Account registration) page keeps getting stuck). The vars of CORS in api/.env : Is there any solution to this problem?
If you deploy the application to your public severs.
You need to change this as well.
CONSOLE_URL=http://public-ip:5001/ -e APP_URL=http://public-ip:5001/
Because you are trying to access the localhost(your computer) in your public server and it doesn't know.
Thanks! This done!
Self Checks
Dify version
0.6.8, 0.6.9, 0.6.10
Cloud or Self Hosted
Self Hosted (Docker), Self Hosted (Source)
Steps to reproduce
Deploy dify strictly follow the document of https://docs.dify.ai/getting-started/install-self-hosted/local-source-code , or strictly follow the document of https://docs.dify.ai/getting-started/install-self-hosted/start-the-frontend-docker-container, Both appear the install(Account registration) page keeps getting stuck。 But succeed follow the document of https://docs.dify.ai/getting-started/install-self-hosted/docker-compose on the same Tencent Cloud Server 。
✔️ Expected Behavior
User registration page
❌ Actual Behavior