86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
---
|
||
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
|