Skip to main content

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 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