|
|
---
|
|
|
sidebar_position: 99
|
|
|
title: Development environment
|
|
|
---
|
|
|
|
|
|
For setting up the development environment, tailchat provides a very simple and fast way:
|
|
|
|
|
|
## Use Docker to quickly build a dependent environment
|
|
|
|
|
|
**mongodb**
|
|
|
```bash
|
|
|
docker run -d --name mongo -p 27017:27017 mongo:4
|
|
|
```
|
|
|
|
|
|
**redis**
|
|
|
```bash
|
|
|
docker run -d --name redis -p 6379:6379 redis
|
|
|
```
|
|
|
|
|
|
**minio**
|
|
|
```bash
|
|
|
docker run -d \
|
|
|
-p 19000:9000 \
|
|
|
-p 19001:9001 \
|
|
|
--name minio \
|
|
|
-e "MINIO_ROOT_USER=tailchat" \
|
|
|
-e "MINIO_ROOT_PASSWORD=com.msgbyte.tailchat" \
|
|
|
minio/minio server /data --console-address ":9001"
|
|
|
```
|
|
|
|
|
|
### Example
|
|
|
|
|
|
Here is a minimal example `.env` which let you can run tailchat in development environment.
|
|
|
|
|
|
```ini
|
|
|
PORT=11000
|
|
|
MONGO_URL=mongodb://127.0.0.1:27017/tailchat
|
|
|
REDIS_URL=redis://localhost:6379/
|
|
|
MINIO_URL=127.0.0.1:19000
|
|
|
MINIO_USER=tailchat
|
|
|
MINIO_PASS=com.msgbyte.tailchat
|
|
|
```
|
|
|
|
|
|
## Node Version
|
|
|
|
|
|
Tailchat is develop with `nodejs`, please install nodejs by yourself, here is nodejs official: [https://nodejs.org/](https://nodejs.org/)
|
|
|
|
|
|
Suggestion to use `nodejs18.x`, and not support `nodejs20` yet because nodejs has some break change.
|
|
|
|
|
|
## Start the development server
|
|
|
|
|
|
```bash
|
|
|
pnpm install
|
|
|
pnpm dev
|
|
|
```
|
|
|
|
|
|
You can edit the configuration of `server/.env` to your own relevant context
|
|
|
|
|
|
The file can be started from `server/.env.example`
|
|
|
|
|
|
Now you can preview your server in `http://localhost:11011`
|
|
|
|
|
|
## Project directory description
|
|
|
|
|
|
- `apps`: non-core applications
|
|
|
- `cli`: Tailchat’s command line program
|
|
|
- `github-app`: Tailchat’s github integration bot
|
|
|
- `oauth-demo`: Tailchat open platform third-party login demo program
|
|
|
- `widget`: Web page embedded widget
|
|
|
- `client`: client
|
|
|
- `desktop`: desktop version
|
|
|
- `mobile`: mobile version
|
|
|
- `packages`: dependency packages
|
|
|
- `shared`: platform-independent common code
|
|
|
- `web`: web version
|
|
|
- `plugins`: pure frontend plugins
|
|
|
- `src`: source code
|
|
|
- `packages`
|
|
|
- `types`: common types for both front and back ends
|
|
|
- `server`: server
|
|
|
- `admin`: background management
|
|
|
- `models`: database model
|
|
|
- `plugins`: server-side plugins
|
|
|
- `services`: microservices
|
|
|
- `website`: official website
|