diff --git a/api/README.md b/api/README.md index 8ffd3d741d..a324d75c10 100644 --- a/api/README.md +++ b/api/README.md @@ -11,28 +11,34 @@ docker-compose -f docker-compose.middleware.yaml -p dify up -d cd ../api ``` + 2. Copy `.env.example` to `.env` 3. Generate a `SECRET_KEY` in the `.env` file. - ```bash + ```bash for Linux sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env ``` + + ```bash for Mac + secret_key=$(openssl rand -base64 42) + sed -i '' "/^SECRET_KEY=/c\\ + SECRET_KEY=${secret_key}" .env + ``` + 4. Create environment. Dify API service uses [Poetry](https://python-poetry.org/docs/) to manage dependencies. You can execute `poetry shell` to activate the environment. > Using pip can be found [below](#usage-with-pip). +5. Install dependencies + +======= ```bash poetry env use 3.10 - ``` - -6. Install dependencies - - ```bash poetry install ``` - + In case of contributors missing to update dependencies for `pyproject.toml`, you can perform the following shell instead. ```bash @@ -41,23 +47,23 @@ poetry add $(cat requirements-dev.txt) --group dev # install dependencies of development and update pyproject.toml ``` -7. Run migrate +6. Run migrate Before the first launch, migrate the database to the latest version. - + ```bash poetry run python -m flask db upgrade ``` -8. Start backend - +7. Start backend + ```bash poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug ``` -9. Start Dify [web](../web) service. -10. Setup your application by visiting `http://localhost:3000`... -11. If you need to debug local async processing, please start the worker service. +8. Start Dify [web](../web) service. +9. Setup your application by visiting `http://localhost:3000`... +10. If you need to debug local async processing, please start the worker service. ```bash poetry run python -m celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail @@ -65,23 +71,21 @@ The started celery app handles the async tasks, e.g. dataset importing and documents indexing. - ## Testing 1. Install dependencies for both the backend and the test environment - + ```bash poetry install --with dev - ``` - + ``` + 2. Run the tests locally with mocked system environment variables in `tool.pytest_env` section in `pyproject.toml` - + ```bash cd ../ poetry run -C api bash dev/pytest/pytest_all_tests.sh ``` - ## Usage with pip > [!NOTE] @@ -96,7 +100,7 @@ docker-compose -f docker-compose.middleware.yaml -p dify up -d cd ../api ``` - + 2. Copy `.env.example` to `.env` 3. Generate a `SECRET_KEY` in the `.env` file. @@ -105,21 +109,21 @@ ``` 4. Create environment. - + If you use Anaconda, create a new environment and activate it ```bash conda create --name dify python=3.10 conda activate dify ``` - -6. Install dependencies - + +5. Install dependencies + ```bash pip install -r requirements.txt ``` -7. Run migrate +6. Run migrate Before the first launch, migrate the database to the latest version. @@ -127,27 +131,17 @@ flask db upgrade ``` -8. Start backend: +7. Start backend: + ```bash flask run --host 0.0.0.0 --port=5001 --debug ``` -9. Setup your application by visiting http://localhost:5001/console/api/setup or other apis... -10. If you need to debug local async processing, please start the worker service. + +8. Setup your application by visiting or other apis... +9. If you need to debug local async processing, please start the worker service. + ```bash celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail ``` + The started celery app handles the async tasks, e.g. dataset importing and documents indexing. - - -## Testing - -1. Install dependencies for both the backend and the test environment - ```bash - pip install -r requirements.txt -r requirements-dev.txt - ``` - -2. Run the tests locally with mocked system environment variables in `tool.pytest_env` section in `pyproject.toml` - ```bash - dev/pytest/pytest_all_tests.sh - ``` - diff --git a/web/README.md b/web/README.md index 3864e2ba5e..2ecba1c8ff 100644 --- a/web/README.md +++ b/web/README.md @@ -1,8 +1,11 @@ # Dify Frontend + This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). ## Getting Started + ### Run by source code + To start the web frontend service, you will need [Node.js v18.x (LTS)](https://nodejs.org/en) and [NPM version 8.x.x](https://www.npmjs.com/) or [Yarn](https://yarnpkg.com/). First, install the dependencies: @@ -14,6 +17,7 @@ yarn install --frozen-lockfile ``` Then, configure the environment variables. Create a file named `.env.local` in the current directory and copy the contents from `.env.example`. Modify the values of these environment variables according to your requirements: + ``` # For production release, change this to PRODUCTION NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT @@ -45,27 +49,35 @@ Open [http://localhost:3000](http://localhost:3000) with your browser to see the You can start editing the file under folder `app`. The page auto-updates as you edit the file. ## Deploy + ### Deploy on server + First, build the app for production: + ```bash npm run build ``` Then, start the server: + ```bash npm run start ``` If you want to customize the host and port: + ```bash npm run start --port=3001 --host=0.0.0.0 ``` ## Lint Code + If your IDE is VSCode, rename `web/.vscode/settings.example.json` to `web/.vscode/settings.json` for lint code setting. ## Documentation -Visit https://docs.dify.ai/getting-started/readme to view the full documentation. + +Visit to view the full documentation. ## Community + The Dify community can be found on [Discord community](https://discord.gg/5AEfbxcd9k), where you can ask questions, voice ideas, and share your projects.