services:
    thor-solo:
        image: vechain/thor:latest
        hostname: thor-solo
        container_name: thor-solo
        user: root
        ports:
            - 8669:8669
        command:
            - solo
            - --on-demand # create new block when there is pending transaction
            - --api-addr=0.0.0.0:8669 # Enable remote connections
            - --api-cors=* # comma separated list of domains to accept cross origin requests to API
            - --gas-limit=10000000000000 # block gas limit
            - --api-call-gas-limit=10000000000000 # limit contract call gas
            - --txpool-limit=100000000000 # limit txpool size
            - --txpool-limit-per-account=256 # limit txpool size per account
            - --cache=1024 # megabytes of ram allocated to trie nodes cache
            - --data-dir=/data/thor # data directory
            - --verbosity=9
            - --persist

        healthcheck:
            # We run the health check using standard UNIX tools so we don't have to
            # install additional dependencies in the container.
            test: wget -O- http://localhost:8669/blocks/0
            interval: 5s
            timeout: 10s
            retries: 10
        networks:
            - vechain-thor

    insight:
        image: ghcr.io/vechain/insight-app:master
        hostname: insight
        container_name: insight
        environment:
            - VUE_APP_SOLO_URL=http://localhost:8669
        ports:
            - '8080:80'
        networks:
            - vechain-thor

    inspector:
        image: ghcr.io/vechain/inspector-app:latest
        hostname: inspector
        container_name: inspector
        environment:
            - VUE_APP_SOLO_URL=http://localhost:8669
        ports:
            - '8081:80'
        networks:
            - vechain-thor

networks:
    vechain-thor:
        driver: bridge
        name: vechain-thor