This utility script helps manage a Steem witness node using Docker. You can start, stop, restart, force kill, debug, print configuration, check status, and view logs of the witness node container with simple commands.
- Docker installed and running
- A Steem witness node Docker image (For example:
justyy/steem:ubuntu24.04). See all images at justyy/steem
The following environment variables can be used to customize the behavior of the script. The script respects any environment variable you export before running it. If a variable is not set, the default value will be used.
- Description: The name of the Docker container that will run the Steem witness node.
- Default:
steem - Example:
export DOCKER_NAME="steem"
- Description: The Docker image that will be used to run the Steem witness node.
- Default:
steem:latest - Example:
export DOCKER_IMAGE="steem:latest"
You can pull prebuilt images from justyy/steem, for example:
docker pull justyy/steem:ubuntu24.04
- Description: The local directory where Steem data will be stored. This directory will be mounted to the Docker container i.e.
/steem. - Default:
/root/steem-docker/data/witness_node_data_dir - Example:
export LOCAL_STEEM_LOCATION="/root/steem-docker"
- SEED_PORT: Port mapping for the Steem witness node seed port (default
-p 2001:2001) - API_PORT: Port mapping for the HTTP RPC port (default
-p 8091:8091)
You can remove or change these in the script e.g. if you don't want to expose the API port.
- Description: Number of file descriptors allowed for the container.
- Default:
999999
Usually, you don't need to change this value.
To customize the behavior of the script, set any of the environment variables listed above before running the script. If you do not set any of the variables, the script will use the default values.
- DOCKER_NAME:
steem - DOCKER_IMAGE:
steem:latest - LOCAL_STEEM_LOCATION:
/root/steem-docker/data/witness_node_data_dir
export DOCKER_NAME="my_steem_node"
export DOCKER_IMAGE="custom_steem_image:latest"
export LOCAL_STEEM_LOCATION="/mnt/custom_steem_data"
./run.sh start
- Starts the Steem witness node in a Docker container.
- Maps the following ports by default:
2001:2001– Seed port8091:8091– HTTP RPC port
- Mounts Steem data to
$LOCAL_STEEM_LOCATIONon the host.
./run.sh stop
- Stops the Steem witness node container gracefully with a timeout of 600 seconds.
- Removes the container after stopping.
./run.sh kill
- Immediately stops the container and removes it, regardless of its state.
./run.sh restart
- Stops and then starts the container. Equivalent to running:
./run.sh stop
./run.sh start
./run.sh test
- Starts the container interactively with a
/bin/bashshell. - Useful for inspecting the container or running commands manually.
./run.sh debug
- Debug the running steem container
./run.sh print
- Prints the current parameters used by the script, including:
DOCKER_NAMEDOCKER_IMAGELOCAL_STEEM_LOCATIONSEED_PORTAPI_PORTDOCKER_ARGSULIMIT_NUMBER
./run.sh status
- Displays detailed container information:
- Running state
- Container ID
- Image name
- Ports
- Mounted volumes
- Ulimit and restart policy
- CPU and memory usage
./run.sh wallet
- Launch a wallet_cli connected to local steemd at port 8090 (which can be specified in env variable
STEEM_WS_PORT)
./run.sh logs
- Tails the last 100 lines of the container logs by default and follows new entries.
- To show a different number of lines:
./run.sh logs 500
- To show all:
./run.sh logs all
./run.sh install_docker
- This is a quick short cut to install the docker.