蚂蚁资源
1
项目展示
Tailchat 官方信息:
建议的最低配置 1 核 2G
- 内存少的同学建议,可以查看往期文章:linux设置虚拟内存
来设置虚拟内存 - 服务器推荐:雨云1元试用
前提条件
安装docker与docker-compose:
- 查看往期文章:安装docker与docker-compose
进行安装本次教程的基础环境
拉取 Tailchat 官方映像:
从公共镜像拉取已编译的镜像
docker pull moonrailgun/tailchat
docker tag moonrailgun/tailchat tailchat
修改文件配置:
mkdir tailchat && cd tailchat
nano docker-compose.yml
nano docker-compose.env
官方配置模板:
docker-compose.yml:
version: "3.3"
services:
# Gateway
service-gateway:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/gateway
PORT: 3000
depends_on:
- mongo
- redis
labels:
- "traefik.enable=true"
- "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
- "traefik.http.services.api-gw.loadbalancer.server.port=3000"
networks:
- internal
# User Service
service-user:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/user/*.service.js
depends_on:
- mongo
- redis
networks:
- internal
# Group Service
service-group:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/group/*.service.js
depends_on:
- mongo
- redis
networks:
- internal
# Chat Service
service-chat:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/chat/*.service.js
depends_on:
- mongo
- redis
networks:
- internal
# File Service / Plugin Registry / Configuration Service
service-file:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: core/file,core/plugin/registry,core/config
depends_on:
- mongo
- redis
- minio
networks:
- internal
# Open Platform
service-openapi:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICES: openapi/app,openapi/bot,openapi/integration,openapi/oidc/oidc
OPENAPI_PORT: 3003
OPENAPI_UNDER_PROXY: "true"
depends_on:
- mongo
- redis
- minio
labels:
- "traefik.enable=true"
- "traefik.http.routers.openapi-oidc.rule=PathPrefix(`/open`)"
- "traefik.http.services.openapi-oidc.loadbalancer.server.port=3003"
networks:
- internal
# Plugin Service (All Plugins)
service-all-plugins:
build:
context: .
image: tailchat
restart: unless-stopped
env_file: docker-compose.env
environment:
SERVICEDIR: plugins
depends_on:
- mongo
- redis
- minio
networks:
- internal
# Database
mongo:
image: mongo:4
restart: on-failure
volumes:
- ./data:/data/db
networks:
- internal
# Data cache and Transporter
redis:
image: redis:alpine
restart: on-failure
networks:
- internal
# Persist Storage
minio:
image: minio/minio
restart: on-failure
networks:
- internal
environment:
MINIO_ROOT_USER: tailchat
MINIO_ROOT_PASSWORD: com.msgbyte.tailchat
volumes:
- ./storage:/data
command: minio server /data --console-address ":9001"
# Router
traefik:
image: traefik:v2.1
restart: unless-stopped
command:
- "--api.insecure=true" # Don't do that in production!
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
- "--entryPoints.web.forwardedHeaders.insecure" # Not good
ports:
- 11000:80
- 127.0.0.1:11001:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- internal
- default
networks:
internal:
name: tailchat-internal
volumes:
data:
storage:
docker-compose.env:
LOGGER=true
LOGLEVEL=info
SERVICEDIR=services
TRANSPORTER=redis://redis:6379
REDIS_URL=redis://redis:6379
MONGO_URL=mongodb://mongo/tailchat
SECRET=
# file
API_URL=https://chat.antszy.com
# minio
MINIO_URL=minio:9000
MINIO_USER=tailchat
MINIO_PASS=com.msgbyte.tailchat
# SMTP
SMTP_SENDER=123456789@qq.com
SMTP_URI=smtps://123456789:aaa@smtp.qq.com/?pool=true
# metrics
PROMETHEUS=1
docker-compose.env说明
docker-compose.env:
- API_URL:是外部可访问的 URL 地址,用于文件服务访问,可以是域名或 IP 如果发送的图片无法正常显示,则不设置此变量
- SECRET:服务器端加密密钥,用于生成令牌。默认值为tailchat
启动Tailchat:
docker compose up -d
网页访问:
IP+11000
例如:
192.168.31.243:11000
部署管理后台(可选后续有用到)
docker compose -f docker-compose.yml -f admin.yml up -d
本文为原创文章,版权归蚂蚁资源所有,欢迎分享本文,转载请保留出处!