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
docker run -d --name mongo -p 27017:27017 mongo:4
redis
docker run -d --name redis -p 6379:6379 redis
minio
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.
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/
Suggestion to use nodejs18.x, and not support nodejs20 yet because nodejs has some break change.
The Vercel nightly workflows use Node.js 24 for the frontend build by setting engines.node in the deployment copy of package.json. Local development, CI tests, and the Docker runtime continue to use Node.js 18.
Start the development server
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 applicationscli: Tailchat’s command line programgithub-app: Tailchat’s github integration botoauth-demo: Tailchat open platform third-party login demo programwidget: Web page embedded widget
client: clientdesktop: desktop versionmobile: mobile versionpackages: dependency packagesshared: platform-independent common codeweb: web versionplugins: pure frontend pluginssrc: source code
packagestypes: common types for both front and back ends
server: serveradmin: background managementmodels: database modelplugins: server-side pluginsservices: microservices
website: official website