teamgram / teamgram-server

Unofficial open source mtproto server written in golang with compatible telegram client.
https://teamgram.net
Apache License 2.0
1.84k stars 369 forks source link

Run on Docker #64

Closed AliKhadivi closed 2 years ago

AliKhadivi commented 2 years ago

Hi How to run this project on Docker?

AliKhadivi commented 2 years ago

Please add document for installation and configuration (for bare metal and docker)

AliKhadivi commented 2 years ago

Docker-compose for teamgram-server dependency:

AliKhadivi commented 2 years ago
version: "3"  

services:
  etcd:
    image: quay.io/coreos/etcd:v3.5.2
    entrypoint: /usr/local/bin/etcd
    restart: always
    volumes:
      - etcd_data:/etcd_data
    ports:
      - 127.0.0.1:2379:2379
      - 127.0.0.1:2380:2380
    command: '-data-dir=/etcd-data --name etcd --initial-advertise-peer-urls http://${HostIP:-127.0.0.1}:2380 --listen-peer-urls http://0.0.0.0:2380 --advertise-client-urls http://${HostIP:-127.0.0.1}:2379 --listen-client-urls http://0.0.0.0:2379 --initial-cluster etcd=http://${HostIP:-127.0.0.1}:2380'
  redis:
    image: redis
    ports:
      - 127.0.0.1:6379:6379
  zookeeper:
    image: confluentinc/cp-zookeeper:7.0.1
    container_name: zookeeper
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  broker:
    image: confluentinc/cp-kafka:7.0.1
    container_name: broker
    ports:
    # To learn about configuring Kafka for access across networks see
    # https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/
      - 127.0.0.1:9092:9092
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1

  mysql:
    image: 'mysql:latest'
    restart: always
    ports:
      - 127.0.0.1:3306:3306
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      # MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-changeMe}
      MYSQL_ALLOW_EMPTY_PASSWORD: "true"
      MYSQL_DATABASE: teamgram
      MYSQL_USER: teamgram
      # MYSQL_PASSWORD: ${DB_PASSWORD:-changeMe}

  minio:
    image: minio/minio
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - minio_data:/data
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: miniostorage
    command: server /data --console-address ":9001"

volumes:
  minio_data:
  etcd_data:
  mysql_data:
teamgramio commented 2 years ago

Thanks, Can you create a pull request?