To launch the tBTC v2 client, several configuration flags and environmental values need to be set. For simplicity, a bash script can be used rather than typing or pasting all the flags into the console.

Create the launch script:

nano keep.sh

and paste the following:

# Keep tBTC v2 Client
#
# Ethereum endpoint WebSocket URL
# This can be a provider such as Infura, Alchemy, etc or your own Geth Node
# ETHEREUM_WS_URL="wss://goerli.infura.io/ws/v3/redacted_credentials"
# note: only replace characters inside the " ". The Quotation marks
# must be retained
ETHEREUM_WS_URL="<Ethereum API WS URL>"

# copied to home/keep/config earlier
OPERATOR_KEY_FILE_NAME="<Operator Account keyfile name>"

# password set during Operator Account Address creation
OPERATOR_KEY_FILE_PASSWORD="<Operator Account keyfile password>"

# To configure your node with a Public IP, enter it below.
PUBLIC_IP="<PUBLIC_IP_OF_MACHINE>"
# Alternatively, you can use DNS.
# To configure DNS, modify the last line of the script
# and add your DNS in the following format:
# /dns4/bootstrap-1.test.keep.network/tcp/3919

# Setup configuration and storage directories
# THESE MUST BE PERSISTENT STORAGE
CONFIG_DIR="/home/keep/config"
STORAGE_DIR="/home/keep/storage"

docker run \\
    --detach \\
    --restart on-failure \\
    --volume $CONFIG_DIR:/mnt/keep/config \\
    --volume $STORAGE_DIR:/mnt/keep/storage \\
    --env KEEP_ETHEREUM_PASSWORD=$OPERATOR_KEY_FILE_PASSWORD \\
    --env LOG_LEVEL=info \\
    --log-opt max-size=100m \\
    --log-opt max-file=3 \\
    -p 3919:3919 \\
    -p 9601:9601 \\
    us-docker.pkg.dev/keep-test-f3e0/public/keep-client \\
    start \\
    --goerli \\
    --ethereum.url $ETHEREUM_WS_URL \\
    --ethereum.keyFile /mnt/keep/config/$OPERATOR_KEY_FILE_NAME \\
    --storage.dir /mnt/keep/storage \\
    --network.announcedAddresses /ip4/$PUBLIC_IP/tcp/3919

Save and close the file, and make it executable:

sudo chmod +x keep.sh

To launch the tBTC v2 client, execute:

sudo bash keep.sh

<aside> 💡 The --detach property will prevent the status messages from the client to be printed to the console. Review the Docker logs for detailed status information.

</aside>