Set Up and Connect a node with Docker
How to set up and connect a node to the Mainnet using docker.
Before proceeding, please make sure that your machine meets the hardware and software node requirements.
Setup and Connect a node to the Mainnet
1. Docker and docker-compose
Please make sure that you have Docker and docker-compose installed on your system. For more information, please refer to their documentation: https://docs.docker.com/get-docker/
2. Configure the node
Copy the files to the server in your home directory with the following command:
git clone https://github.com/Juneo-io/juneogo-docker
By default, your node will not accept remote RPC calls. If you would like to enable remote calls to your node, please expose port 9650
in the docker-compose.yml
file:
This configuration is only needed if you don't use HTTPS
ports:
- 9650:9650 # port for API calls - will enable remote RPC calls to your node (mandatory for Supernet/ Blockchain deployers)
If you want to connect the node to the Socotra testnet, you need to update the config.json
file with the network-id
flag :
{
"network-id":"socotra"
}
3. Run JuneoGo
You may run JuneoGo using http or https.
Make sure to create a .env
file before starting the docker-compose.
3.1) Run JuneoGo with HTTP
To run your node with http, please open the juneogo-docker directory in your command line and execute:
docker-compose build
docker-compose up -d juneogo
This will start bootstrapping your node.
3.2) Run JuneoGo with HTTPS
To run your node with https, please set up your custom domain to point to your machine's public ip address.
Before starting Caddy, ensure you have set up your .env
file with the necessary Caddy environment variables:
[email protected]
CADDY_DOMAIN=your-domain.com
CADDY_USER=your-username
CADDY_PASSWORD=your-password
To securely export metrics, Caddy is configured to handle metrics endpoints. Metrics are securely exposed behind Caddy. If you want to have an API node, you need to expose juneogo:9650
without credentials in the Caddyfile.
Here is the current config :
{
email {$CADDY_EMAIL}
}
{$CADDY_DOMAIN} {
handle /ext/metrics* {
reverse_proxy juneogo:9650
basic_auth {
{$CADDY_USER} {$CADDY_PASSWORD}
}
}
handle /metrics* {
reverse_proxy node_exporter:9100
basic_auth {
{$CADDY_USER} {$CADDY_PASSWORD}
}
}
handle {
respond "Access Denied" 403
}
}
You need to update the config by removing the basic authentification and/or by adding theses lines :
{$CADDY_DOMAIN} {
reverse_proxy juneogo:9650
}
After this, please open the juneogo-docker directory in your command line and execute:
docker-compose build
docker-compose up -d
This will start bootstrapping your node.
4. Boostrapping status
You can check your node's bootstrapping status with the following RPC call:
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"info.isBootstrapped",
"params": {
"chain":"JUNE"
}
}' -H 'content-type:application/json;' 192.168.10.2:9650/ext/info
Example response:
{
"jsonrpc": "2.0",
"result": {
"isBootstrapped": true
},
"id": 1
}
Once your node has fully boostrapped, navigate to juneogo-docker/juneogo/
and execute the command in the following format:
sudo chown -R [your_user_name] .juneogo/
Example (if the user is juneogo
):
sudo chown -R juneogo .juneogo/
If necessary, you can enter the juneogo Docker container with the following command:
docker exec -ti juneogo /bin/bash
Last updated