1、拉取github代码

mkdir /data
git clone https://github.com/toncenter/ton-http-api.git
cd ton-http-api

2、创建环境变量

./configure.py
cat .env
TON_API_CACHE_ENABLED=0
TON_API_CACHE_REDIS_ENDPOINT=cache_redis
TON_API_CACHE_REDIS_PORT=6379
TON_API_CACHE_REDIS_TIMEOUT=1
TON_API_LOGS_JSONIFY=0
TON_API_LOGS_LEVEL=ERROR
TON_API_GET_METHODS_ENABLED=1
TON_API_HTTP_PORT=80
TON_API_JSON_RPC_ENABLED=1
TON_API_ROOT_PATH=/
TON_API_WEBSERVERS_WORKERS=1
TON_API_TONLIB_LITESERVER_CONFIG=private/mainnet.json
TON_API_TONLIB_KEYSTORE=/tmp/ton_keystore/
TON_API_TONLIB_PARALLEL_REQUESTS_PER_LITESERVER=50
TON_API_TONLIB_CDLL_PATH=
TON_API_TONLIB_REQUEST_TIMEOUT=10
TON_API_GUNICORN_FLAGS=
COMPOSE_FILE=docker-compose.yaml

3、下载mainnet.json文件
主网是mainnet.json,测试网是testnet.json

mkdir private
curl -sL https://ton-blockchain.github.io/global.config.json > private/mainnet.json
curl -sL https://ton-blockchain.github.io/testnet-global.config.json > private/testnet.json

另一json文档

https://github.com/fmira21/ton-node-docker/blob/main/config/api-config/mainnet-config-onetomany.json

4、更改下docker-compose.yaml文件,将ton_keystore映射出来
将下面部分加入到docker-compose.yaml中

    volumes:
      - ./ton_keystore:/tmp/ton_keystore 

具体如下

version: '3.7'
services:
  main:
    image: toncenter/ton-http-api
    build: 
      context: ton-http-api
      dockerfile: .docker/Dockerfile
    ports:
      - ${TON_API_HTTP_PORT:-8081}:8081
    environment:
      - TON_API_CACHE_ENABLED
      - TON_API_CACHE_REDIS_ENDPOINT
      - TON_API_CACHE_REDIS_PORT
      - TON_API_CACHE_REDIS_TIMEOUT
      - TON_API_LOGS_JSONIFY
      - TON_API_LOGS_LEVEL
      - TON_API_TONLIB_LITESERVER_CONFIG=/run/secrets/liteserver_config
      - TON_API_TONLIB_KEYSTORE
      - TON_API_TONLIB_PARALLEL_REQUESTS_PER_LITESERVER
      - TON_API_TONLIB_CDLL_PATH
      - TON_API_TONLIB_REQUEST_TIMEOUT
      - TON_API_GET_METHODS_ENABLED
      - TON_API_JSON_RPC_ENABLED
      - TON_API_ROOT_PATH
    restart: unless-stopped
    volumes:
      - ./ton_keystore:/tmp/ton_keystore   
    networks:
      - internal
    secrets:
      - liteserver_config
    command: -c "gunicorn -k uvicorn.workers.UvicornWorker -w ${TON_API_WEBSERVERS_WORKERS} --bind 0.0.0.0:8081 ${TON_API_GUNICORN_FLAGS} pyTON.main:app"
    healthcheck:
      test: curl -sS http://127.0.0.1:8081${TON_API_ROOT_PATH}/healthcheck || echo 1
      interval: 15s
      timeout: 3s
      retries: 12
secrets:
  liteserver_config:
    file: ${TON_API_TONLIB_LITESERVER_CONFIG:-./private/mainnet.json}
networks:
  internal:

5、启动容器

docker-compose up -d
docker-compose ps

6、验证
在web浏览器上打开http://ip:80,获取主节点信息
ton-http-api安装部署-LMLPHP

05-05 23:04