Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

teamgram-server-architectureTeamgram 服务器架构

Agent Skill

teamgram-server-architecture 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

6,683

周安装

273

GitHub Stars

公开资料未说明

下载量

2,140
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:teamgram-server-architecture(Teamgram 服务器架构)
来源仓库:https://github.com/zhihang9978/teamgram-server-architecture
安装命令:
openclaw skills install teamgram-server-architecture
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install teamgram-server-architecture

简介

构建 Telegram 兼容后端的系统性架构设计方案。

  • 涵盖服务拆分原则与水平扩展策略建议。teamgram-server-architecture 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 适用于自建私有化消息服务平台规划参考。
  • 包含 MTProto 服务与 WebApp 桥接实现思路。
  • 非开箱即用解决方案,需二次开发适配业务需求。

SKILL.md

name
teamgram-server-architecture
description
Teamgram Server architecture guide for building Telegram-compatible backends. Use when designing service topology, implementing MTProto services, or self-hosting Teamgram. Covers service拆分, data flow, deployment patterns, and development workflows based on the official teamgram/teamgram-server repository.
version
1.0.1

Teamgram Server Architecture

Complete architecture guide based on the official teamgram/teamgram-server repository.

⚠️ 免责声明与安全提示

本技能基于对开源项目 teamgram/teamgram-server 的分析整理,仅供学习参考。 重要提示: - 内容可能随官方仓库更新而过时,请以官方最新版本为准 - 生产环境使用前请自行验证所有配置和代码 - 部署配置中的密码、密钥等必须使用强密码并通过安全方式注入 - 建议直接参考官方文档: https://github.com/teamgram/teamgram-server - 生产环境部署前请进行安全审计和渗透测试

Overview

Teamgram Server is an unofficial open-source MTProto server implementation in Go, compatible with Telegram clients and supporting self-hosted deployment.

API Layer: 223 (截至技能创建时,请以官方仓库最新版本为准) MTProto Versions: Abridged, Intermediate, Padded intermediate, Full

Core Features

  • Private Chat - End-to-end encrypted messaging
  • Basic Group - Small group chats (up to 200 members)
  • ⚠️ Super Group - Large groups (requires additional implementation)
  • Contacts - Contact management and sync
  • Web - Web client support

Service Architecture

High-Level Topology

                    ┌─────────────────┐
                    │   Load Balancer │
                    │    (Nginx/HA)   │
                    └────────┬────────┘
                             │
        ┌────────────────────┼────────────────────┐
        │                    │                    │
┌───────▼───────┐   ┌────────▼────────┐   ┌──────▼──────┐
│   gnetway     │   │   httpserver    │   │   session   │
│  (TCP/MTProto)│   │   (HTTP API)    │   │ (WebSocket) │
└───────┬───────┘   └────────┬────────┘   └──────┬──────┘
        │                    │                    │
        └────────────────────┼────────────────────┘
                             │
                    ┌────────▼────────┐
                    │   BFF Layer     │
                    │ (Business Logic)│
                    └────────┬────────┘
                             │
        ┌────────────────────┼────────────────────┐
        │                    │                    │
┌───────▼───────┐   ┌────────▼────────┐   ┌──────▼──────┐
│   Service     │   │    Service      │   │   Service   │
│   Layer       │   │    Layer        │   │   Layer     │
└───────────────┘   └─────────────────┘   └─────────────┘

Interface Layer (app/interface)

ServiceProtocolPurpose
gnetwayTCP/MTProtoMain client gateway, handles MTProto encryption
httpserverHTTP/RESTBot API and webhooks
sessionWebSocketWeb client connections

BFF Layer (app/bff)

Backend-for-Frontend aggregation layer:

  • Aggregates multiple service calls
  • Handles client-specific logic
  • Reduces client-side complexity

Service Layer (app/service)

ServiceResponsibilityKey Features
authsessionAuthentication & SessionAuth key management, session validation
bizCore Business LogicChat, message, user, dialog, updates
dfsDistributed File StorageFile upload/download, MinIO integration
geoipGeo-locationIP geolocation for security
idgenID GenerationSnowflake-style distributed IDs
mediaMedia ProcessingThumbnail generation, FFmpeg integration
statusOnline StatusUser presence, last seen

Messenger Layer (app/messenger)

ServicePurpose
msgMessage routing and delivery
syncMulti-device synchronization

Biz Service Breakdown

The biz service is a monolithic business logic container:

app/service/biz/
├── biz/        # Core business operations
├── chat/       # Group/channel management
├── code/       # Verification codes (SMS/email)
├── dialog/     # Conversation management
├── message/    # Message storage and retrieval
├── updates/    # Real-time updates push
└── user/       # User profiles and settings

Recommended Refactoring

For large-scale deployments, split biz into:

chat-service/      - Group & channel management
message-service/   - Message CRUD and search
user-service/      - User profiles and contacts
notification-service/ - Push notifications

Data Flow

Message Sending Flow

Client → gnetway → session → msg → message (biz)
                                           ↓
                                    MySQL (persist)
                                           ↓
                                    Kafka (broadcast)
                                           ↓
                              sync → updates → Client

Authentication Flow

Client → gnetway → authsession
                        ↓
                   MySQL (auth_keys)
                        ↓
                   Redis (sessions)

File Upload Flow

Client → gnetway → dfs → MinIO
                  ↓
               MySQL (file_metadata)

Infrastructure Dependencies

ComponentPurposeRequired
MySQL 5.7+Primary data store✅ Yes
RedisCache, sessions, deduplication✅ Yes
etcdService discovery & config✅ Yes
KafkaMessage pipeline, events✅ Yes
MinIOObject storage✅ Yes
FFmpegMedia transcoding⚠️ Optional

Project Structure

teamgram-server/
├── app/
│   ├── bff/              # Backend-for-Frontend
│   ├── interface/        # Gateway layer
│   │   ├── gnetway/      # MTProto gateway
│   │   ├── httpserver/   # HTTP API
│   │   └── session/      # WebSocket session
│   ├── messenger/        # Message routing
│   │   ├── msg/          # Message service
│   │   └── sync/         # Sync service
│   └── service/          # Core services
│       ├── authsession/  # Auth & session
│       ├── biz/          # Business logic
│       ├── dfs/          # File storage
│       ├── geoip/        # Geo location
│       ├── idgen/        # ID generator
│       ├── media/        # Media processing
│       └── status/       # Online status
├── pkg/                  # Shared packages
│   ├── code/             # Error codes
│   ├── conf/             # Configuration
│   ├── net2/             # Network utilities
│   └── ...
├── clients/              # Client SDKs
├── data/                 # SQL schemas
├── docs/                 # Documentation
└── specs/                # Architecture specs

Development Workflow

1. Code Generation

Teamgram uses TL (Type Language) schema:

# Generate Go code from TL schema
make generate
# or
dalgenall.sh

2. Database Migration

# Initialize database
mysql -u root -p < data/teamgram.sql

# Run migrations
make migrate

3. Service Development Pattern

Each service follows this structure:

app/service/<name>/
├── cmd/              # Entry point
├── etc/              # Configuration
├── internal/
│   ├── config/       # Config structures
│   ├── core/         # Business logic
│   ├── dao/          # Data access
│   ├── server/       # gRPC/HTTP handlers
│   └── svc/          # Service context
└── <name>.go         # Main service file

4. Adding New RPC

  1. Define in TL schema (specs/mtproto.tl)
  2. Run code generation
  3. Implement handler in internal/core/
  4. Register in internal/server/
  5. Update client SDKs

Configuration

Service Configuration (YAML)

# app/service/biz/etc/biz.yaml
Name: biz
Host: 0.0.0.0
Port: 20001

MySQL:
  DataSource: user:password@tcp(localhost:3306)/teamgram?charset=utf8mb4

Redis:
  Host: localhost:6379

Etcd:
  Hosts:
    - localhost:2379
  Key: biz

Environment Variables

# .env file
MYSQL_DATA_SOURCE=user:password@tcp(localhost:3306)/teamgram
REDIS_HOST=localhost:6379
ETCD_ENDPOINTS=localhost:2379
KAFKA_BROKERS=localhost:9092
MINIO_ENDPOINT=localhost:9000

Deployment Patterns

Docker Compose (Development)

docker-compose up -d

Kubernetes (Production)

# Example deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: teamgram-biz
spec:
  replicas: 3
  selector:
    matchLabels:
      app: teamgram-biz
  template:
    spec:
      containers:
      - name: biz
        image: teamgram/biz:latest
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "2Gi"
            cpu: "2000m"

Scaling Considerations

Horizontal Scaling

  • Stateless services: biz, httpserver, dfs (easy to scale)
  • Stateful services: gnetway (connection-based), session (session affinity)
  • Database: MySQL read replicas, Redis Cluster

Vertical Scaling

  • Media service: CPU-intensive (FFmpeg)
  • Message service: Memory-intensive (caching)
  • Auth service: Low resource usage

Security Best Practices

  1. Network Isolation

- Internal services behind VPC - Only gnetway/httpserver exposed publicly

  1. Encryption

- MTProto end-to-end encryption - TLS for HTTP/WebSocket - mTLS between services (optional)

  1. Authentication

- Auth keys in secure storage - Session tokens with expiration - Rate limiting per user/IP

  1. Data Protection

- Database encryption at rest - MinIO bucket encryption - Backup encryption

Monitoring

Metrics

- Request rate per service
- Response latency (p50, p95, p99)
- Error rates
- Active connections
- Message throughput

Logging

// Structured logging
log.Info().
    Str("service", "biz").
    Str("method", "messages.sendMessage").
    Int64("user_id", userID).
    Int64("msg_id", msgID).
    Dur("latency", duration).
    Msg("request processed")

References

See Also

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

74.73%
按下载量换算1,599

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills