All you need to run a storage or distributor node for Joystream mainnet, on a single host machine with docker is in this repo.
You can also use docker desktop but is not the recommended way to run a production instance :)
Docker provides a convenience script to make installation process a little easier.
Prepare a top level .env
for some configurable values.
cp env.example .env
Start a joystream-node
docker compose up -d joystream-node
Start the storage squid processor and graphql server
docker compose up -d squid-db
docker compose up -d squid-processor
docker compose up -d squid-graphql-server
A working graphql endpoint should be accessible at http://localhost:8081/graphql For additional configuring options for the query node check the docs
Start tracing and monitoring
docker compose up -d collector
docker compose up -d metricbeat
Before going further, you should wait for the processor to fully sync up before using them production for your storage or distributor nodes.
You can track its progress by looking at the logs:
docker logs --tail 100 --follow processor
To run a Distributor node follow these instructions
To run a Storage node follow these instructions
Once you have setup your storage or distributor node, you will need to make them publicly acessible with a caddy webserver.
All you need to do is set your CADDY_DOMAIN
in .env then start it up:
docker compose up -d caddy
If you set CADDY_DOMAIN=https://mydistributor.cooldomain.net
your can check their status at:
https://mydistributor.cooldomain.net/distributor/api/v1/status
if you setup the distributor node.
https://mydistributor.cooldomain.net/storage/api/v1/status
if you setup the storage node.
You can make any necessary changes in the Caddyfile. Then to gracefully reload the configuration:
docker exec caddy caddy reload --config /etc/caddy/Caddyfile