Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
diff --git a/404.html b/404.html index 6dececf86..0eb4ae20a 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
docker-compose.yml
and dappnode_package.json
",id:"key-changes-in-docker-composeyml-and-dappnode_packagejson",level:3},{value:"Simplified Dockerfile",id:"simplified-dockerfile",level:3},{value:"Simplified entrypoint",id:"simplified-entrypoint",level:3},{value:"Prometheus and Grafana",id:"prometheus-and-grafana",level:3},{value:"Step 3: Build the packages",id:"step-3-build-the-packages",level:2},{value:"Step 4: Publish the Packages",id:"step-4-publish-the-packages",level:2},{value:"Automating Publication with GitHub Actions",id:"automating-publication-with-github-actions",level:3}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"multi-config-package-development",children:"Multi-Config Package Development"}),"\n",(0,i.jsx)(n.p,{children:"This guide will walk you through the steps to develop a multi-config Dappnode package, allowing you to create multiple package configurations from a single source. We'll use the Lodestar Generic package as a reference, which builds multiple variants for different networks like Mainnet, Holesky, and Gnosis."}),"\n",(0,i.jsx)(n.h2,{id:"step-1-initialize-the-package",children:"Step 1: Initialize the Package"}),"\n",(0,i.jsx)(n.p,{children:"Start by running the following command to initialize your multi-variant Dappnode package:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @dappnode/dappnodesdk@latest init --use-variants\n"})}),"\n",(0,i.jsx)(n.p,{children:"This will create the following directory structure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:".\n\u251c\u2500\u2500 avatar-default.png\n\u251c\u2500\u2500 dappnode_package.json\n\u251c\u2500\u2500 docker-compose.yml\n\u251c\u2500\u2500 Dockerfile\n\u2514\u2500\u2500 package_variants\n \u251c\u2500\u2500 mainnet\n \u2502 \u251c\u2500\u2500 dappnode_package.json\n \u2502 \u2514\u2500\u2500 docker-compose.yml\n \u2514\u2500\u2500 testnet\n \u251c\u2500\u2500 dappnode_package.json\n \u2514\u2500\u2500 docker-compose.yml\n"})}),"\n",(0,i.jsx)(n.h2,{id:"step-2-customize-your-package",children:"Step 2: Customize your package"}),"\n",(0,i.jsx)(n.h3,{id:"create-a-directory-for-each-variant",children:"Create a directory for each variant"}),"\n",(0,i.jsxs)(n.p,{children:["Each variant of your package will have its own configuration files under ",(0,i.jsx)(n.code,{children:"package_variants"}),". For example, if you have ",(0,i.jsx)(n.code,{children:"mainnet"})," and ",(0,i.jsx)(n.code,{children:"testnet"})," variants, you will find the following:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"package_variants/\n\u251c\u2500\u2500 mainnet/\n\u2502 \u251c\u2500\u2500 dappnode_package.json\n\u2502 \u2514\u2500\u2500 docker-compose.yml\n\u2514\u2500\u2500 testnet/\n \u251c\u2500\u2500 dappnode_package.json\n \u2514\u2500\u2500 docker-compose.yml\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The contents within each variant directory include the fields that differ from one variant to another. When building a specific variant, such as ",(0,i.jsx)(n.code,{children:"testnet"}),", the data from these variant-specific files is merged with the root-level ",(0,i.jsx)(n.code,{children:"dappnode_package.json"})," and ",(0,i.jsx)(n.code,{children:"docker-compose.yml"}),". This ensures that only the necessary variant-specific changes are applied, while the common configuration remains consistent across all variants."]}),"\n",(0,i.jsx)(n.p,{children:"You can add more variants as needed by creating additional directories and files following this structure."}),"\n",(0,i.jsx)(n.h3,{id:"customize-the-avatar",children:"Customize the Avatar"}),"\n",(0,i.jsxs)(n.p,{children:["Replace the default avatar (",(0,i.jsx)(n.code,{children:"avatar-default.png"}),") with a square ",(0,i.jsx)(n.code,{children:".png"})," image that represents your package (recommended dimensions: width between 200px and 300px). This image will appear in the Dappnode UI, so it's important to choose one that aligns with your package's branding. The avatar is common for each of the variants."]}),"\n",(0,i.jsxs)(n.h3,{id:"key-changes-in-docker-composeyml-and-dappnode_packagejson",children:["Key Changes in ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"})]}),"\n",(0,i.jsxs)(n.p,{children:["In the root-level ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),", specify the general configuration that applies across all variants."]}),"\n",(0,i.jsxs)(n.p,{children:["Each variant in ",(0,i.jsx)(n.code,{children:"package_variants"})," will have its own ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),", tailored to the network or environment it is intended for."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, ",(0,i.jsx)(n.code,{children:"package_variants/mainnet/docker-compose.yml"})," could define services using ",(0,i.jsx)(n.code,{children:"NETWORK=mainnet"}),", while ",(0,i.jsx)(n.code,{children:"package_variants/testnet/docker-compose.yml"})," would use ",(0,i.jsx)(n.code,{children:"NETWORK=testnet"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Example of a variant-specific ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "name": "test-mainnet.public.dappnode.eth",\n "version": "0.1.0",\n "type": "service"\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["And the corresponding ",(0,i.jsx)(n.code,{children:"docker-compose.yml"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'version: "3.5"\nservices:\n test:\n build:\n args:\n NETWORK: mainnet\n\n'})}),"\n",(0,i.jsx)(n.h3,{id:"simplified-dockerfile",children:"Simplified Dockerfile"}),"\n",(0,i.jsxs)(n.p,{children:["Here\u2019s an example of the ",(0,i.jsx)(n.code,{children:"Dockerfile"})," used for the Lodestar Generic package. This ",(0,i.jsx)(n.code,{children:"Dockerfile"})," is responsible for configuring the Lodestar Ethereum client and handling multiple variants."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-Dockerfile",children:'ARG UPSTREAM_VERSION\n\nFROM chainsafe/lodestar:${UPSTREAM_VERSION}\n\nARG NETWORK\nARG STAKER_SCRIPTS_VERSION\n\n# Additional envs\n\nENV STAKER_SCRIPTS_URL=https://github.com/dappnode/staker-package-scripts/releases/download/${STAKER_SCRIPTS_VERSION}\n\nCOPY entrypoint.sh /usr/local/bin/entrypoint.sh\n\n# These scripts provide useful tools for the entrypoint\nADD ${STAKER_SCRIPTS_URL}/consensus_tools.sh /etc/profile.d/\nRUN chmod +rx /etc/profile.d/consensus_tools.sh\n\n# Additional commands or package installation\n\n# This environment variable sets the variant (e.g., mainnet, testnet)\nENV NETWORK=${NETWORK}\n\nENTRYPOINT ["/usr/local/bin/entrypoint.sh"]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"simplified-entrypoint",children:"Simplified entrypoint"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"entrypoint.sh"})," script for the Lodestar client manages different network setups (e.g., Holesky, Gnosis, Mainnet) and configures runtime flags accordingly. Here\u2019s a simplified version:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'#!/bin/sh\n\nSUPPORTED_NETWORKS="gnosis holesky mainnet"\nMEVBOOST_FLAG_KEY="--builder"\nCLIENT="lodestar"\n\n# Load the tools scripts\n. /etc/profile\n\n# Get the necessary environment variables for the beacon node\nENGINE_URL="http://execution.${NETWORK}.staker.dappnode:8551"\nVALID_FEE_RECIPIENT=$(get_valid_fee_recipient "${FEE_RECIPIENT}")\nMEVBOOST_FLAG=$(get_mevboost_flag "${NETWORK}" "${MEVBOOST_FLAG_KEY}")\n\nJWT_SECRET=$(get_jwt_secret_by_network "${NETWORK}")\necho "${JWT_SECRET}" >"${JWT_FILE_PATH}"\n\n# Start the beacon node with the appropriate flags\necho "[INFO - entrypoint] Running beacon node"\n\nFLAGS="beacon \\\n --network=${NETWORK} \\\n --suggestedFeeRecipient=${VALID_FEE_RECIPIENT} \\\n --jwt-secret=${JWT_FILE_PATH} \\\n --execution.urls=${ENGINE_URL} \\\n # ... Additional flags here\n --logFileDailyRotate=5 $MEVBOOST_FLAG $EXTRA_OPTS"\n\n# Run the Lodestar client with the specified flags\nexec ${CLIENT_BIN} $FLAGS\n'})}),"\n",(0,i.jsx)(n.h3,{id:"prometheus-and-grafana",children:"Prometheus and Grafana"}),"\n",(0,i.jsxs)(n.p,{children:["In multi-variant packages, you can use a common Grafana dashboard located at the root level, while each variant can have its own Prometheus targets. These are stored in variant-specific directories like ",(0,i.jsx)(n.code,{children:"package_variants/gnosis/prometheus-targets.json"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"By following this guide, you\u2019ll be able to create multi-variant packages that support different networks or configurations within a single source code base."}),"\n",(0,i.jsx)(n.h2,{id:"step-3-build-the-packages",children:"Step 3: Build the packages"}),"\n",(0,i.jsx)(n.p,{children:"Once your variants are configured, build any of them using the following command:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @dappnode/dappnodesdk@latest build --variants=docker-compose.yml
and dappnode_package.json
",id:"key-changes-in-docker-composeyml-and-dappnode_packagejson",level:3},{value:"Simplified Dockerfile",id:"simplified-dockerfile",level:3},{value:"Simplified entrypoint",id:"simplified-entrypoint",level:3},{value:"Prometheus and Grafana",id:"prometheus-and-grafana",level:3},{value:"Step 3: Build the packages",id:"step-3-build-the-packages",level:2},{value:"Step 4: Publish the Packages",id:"step-4-publish-the-packages",level:2},{value:"Automating Publication with GitHub Actions",id:"automating-publication-with-github-actions",level:3}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"multi-config-package-development",children:"Multi-Config Package Development"}),"\n",(0,i.jsx)(n.p,{children:"This guide will walk you through the steps to develop a multi-config Dappnode package, allowing you to create multiple package configurations from a single source. We'll use the Lodestar Generic package as a reference, which builds multiple variants for different networks like Mainnet, Holesky, and Gnosis."}),"\n",(0,i.jsx)(n.h2,{id:"step-1-initialize-the-package",children:"Step 1: Initialize the Package"}),"\n",(0,i.jsx)(n.p,{children:"Start by running the following command to initialize your multi-variant Dappnode package:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @dappnode/dappnodesdk@latest init --use-variants\n"})}),"\n",(0,i.jsx)(n.p,{children:"This will create the following directory structure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:".\n\u251c\u2500\u2500 avatar-default.png\n\u251c\u2500\u2500 dappnode_package.json\n\u251c\u2500\u2500 docker-compose.yml\n\u251c\u2500\u2500 Dockerfile\n\u2514\u2500\u2500 package_variants\n \u251c\u2500\u2500 mainnet\n \u2502 \u251c\u2500\u2500 dappnode_package.json\n \u2502 \u2514\u2500\u2500 docker-compose.yml\n \u2514\u2500\u2500 testnet\n \u251c\u2500\u2500 dappnode_package.json\n \u2514\u2500\u2500 docker-compose.yml\n"})}),"\n",(0,i.jsx)(n.h2,{id:"step-2-customize-your-package",children:"Step 2: Customize your package"}),"\n",(0,i.jsx)(n.h3,{id:"create-a-directory-for-each-variant",children:"Create a directory for each variant"}),"\n",(0,i.jsxs)(n.p,{children:["Each variant of your package will have its own configuration files under ",(0,i.jsx)(n.code,{children:"package_variants"}),". For example, if you have ",(0,i.jsx)(n.code,{children:"mainnet"})," and ",(0,i.jsx)(n.code,{children:"testnet"})," variants, you will find the following:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"package_variants/\n\u251c\u2500\u2500 mainnet/\n\u2502 \u251c\u2500\u2500 dappnode_package.json\n\u2502 \u2514\u2500\u2500 docker-compose.yml\n\u2514\u2500\u2500 testnet/\n \u251c\u2500\u2500 dappnode_package.json\n \u2514\u2500\u2500 docker-compose.yml\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The contents within each variant directory include the fields that differ from one variant to another. When building a specific variant, such as ",(0,i.jsx)(n.code,{children:"testnet"}),", the data from these variant-specific files is merged with the root-level ",(0,i.jsx)(n.code,{children:"dappnode_package.json"})," and ",(0,i.jsx)(n.code,{children:"docker-compose.yml"}),". This ensures that only the necessary variant-specific changes are applied, while the common configuration remains consistent across all variants."]}),"\n",(0,i.jsx)(n.p,{children:"You can add more variants as needed by creating additional directories and files following this structure."}),"\n",(0,i.jsx)(n.h3,{id:"customize-the-avatar",children:"Customize the Avatar"}),"\n",(0,i.jsxs)(n.p,{children:["Replace the default avatar (",(0,i.jsx)(n.code,{children:"avatar-default.png"}),") with a square ",(0,i.jsx)(n.code,{children:".png"})," image that represents your package (recommended dimensions: width between 200px and 300px). This image will appear in the Dappnode UI, so it's important to choose one that aligns with your package's branding. The avatar is common for each of the variants."]}),"\n",(0,i.jsxs)(n.h3,{id:"key-changes-in-docker-composeyml-and-dappnode_packagejson",children:["Key Changes in ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"})]}),"\n",(0,i.jsxs)(n.p,{children:["In the root-level ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),", specify the general configuration that applies across all variants."]}),"\n",(0,i.jsxs)(n.p,{children:["Each variant in ",(0,i.jsx)(n.code,{children:"package_variants"})," will have its own ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," and ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),", tailored to the network or environment it is intended for."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, ",(0,i.jsx)(n.code,{children:"package_variants/mainnet/docker-compose.yml"})," could define services using ",(0,i.jsx)(n.code,{children:"NETWORK=mainnet"}),", while ",(0,i.jsx)(n.code,{children:"package_variants/testnet/docker-compose.yml"})," would use ",(0,i.jsx)(n.code,{children:"NETWORK=testnet"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Example of a variant-specific ",(0,i.jsx)(n.code,{children:"dappnode_package.json"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "name": "test-mainnet.public.dappnode.eth",\n "version": "0.1.0",\n "type": "service"\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["And the corresponding ",(0,i.jsx)(n.code,{children:"docker-compose.yml"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'version: "3.5"\nservices:\n test:\n build:\n args:\n NETWORK: mainnet\n\n'})}),"\n",(0,i.jsx)(n.h3,{id:"simplified-dockerfile",children:"Simplified Dockerfile"}),"\n",(0,i.jsxs)(n.p,{children:["Here\u2019s an example of the ",(0,i.jsx)(n.code,{children:"Dockerfile"})," used for the Lodestar Generic package. This ",(0,i.jsx)(n.code,{children:"Dockerfile"})," is responsible for configuring the Lodestar Ethereum client and handling multiple variants."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-Dockerfile",children:'ARG UPSTREAM_VERSION\n\nFROM chainsafe/lodestar:${UPSTREAM_VERSION}\n\nARG NETWORK\nARG STAKER_SCRIPTS_VERSION\n\n# Additional envs\n\nENV STAKER_SCRIPTS_URL=https://github.com/dappnode/staker-package-scripts/releases/download/${STAKER_SCRIPTS_VERSION}\n\nCOPY entrypoint.sh /usr/local/bin/entrypoint.sh\n\n# These scripts provide useful tools for the entrypoint\nADD ${STAKER_SCRIPTS_URL}/consensus_tools.sh /etc/profile.d/\nRUN chmod +rx /etc/profile.d/consensus_tools.sh\n\n# Additional commands or package installation\n\n# This environment variable sets the variant (e.g., mainnet, testnet)\nENV NETWORK=${NETWORK}\n\nENTRYPOINT ["/usr/local/bin/entrypoint.sh"]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"simplified-entrypoint",children:"Simplified entrypoint"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"entrypoint.sh"})," script for the Lodestar client manages different network setups (e.g., Holesky, Gnosis, Mainnet) and configures runtime flags accordingly. Here\u2019s a simplified version:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'#!/bin/sh\n\nSUPPORTED_NETWORKS="gnosis holesky mainnet"\nMEVBOOST_FLAG_KEY="--builder"\nCLIENT="lodestar"\n\n# Load the tools scripts\n. /etc/profile\n\n# Get the necessary environment variables for the beacon node\nENGINE_URL="http://execution.${NETWORK}.staker.dappnode:8551"\nVALID_FEE_RECIPIENT=$(get_valid_fee_recipient "${FEE_RECIPIENT}")\nMEVBOOST_FLAG=$(get_mevboost_flag "${NETWORK}" "${MEVBOOST_FLAG_KEY}")\n\nJWT_SECRET=$(get_jwt_secret_by_network "${NETWORK}")\necho "${JWT_SECRET}" >"${JWT_FILE_PATH}"\n\n# Start the beacon node with the appropriate flags\necho "[INFO - entrypoint] Running beacon node"\n\nFLAGS="beacon \\\n --network=${NETWORK} \\\n --suggestedFeeRecipient=${VALID_FEE_RECIPIENT} \\\n --jwt-secret=${JWT_FILE_PATH} \\\n --execution.urls=${ENGINE_URL} \\\n # ... Additional flags here\n --logFileDailyRotate=5 $MEVBOOST_FLAG $EXTRA_OPTS"\n\n# Run the Lodestar client with the specified flags\nexec ${CLIENT_BIN} $FLAGS\n'})}),"\n",(0,i.jsx)(n.h3,{id:"prometheus-and-grafana",children:"Prometheus and Grafana"}),"\n",(0,i.jsxs)(n.p,{children:["In multi-variant packages, you can use a common Grafana dashboard located at the root level, while each variant can have its own Prometheus targets. These are stored in variant-specific directories like ",(0,i.jsx)(n.code,{children:"package_variants/gnosis/prometheus-targets.json"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"By following this guide, you\u2019ll be able to create multi-variant packages that support different networks or configurations within a single source code base."}),"\n",(0,i.jsx)(n.h2,{id:"step-3-build-the-packages",children:"Step 3: Build the packages"}),"\n",(0,i.jsx)(n.p,{children:"Once your variants are configured, build any of them using the following command:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @dappnode/dappnodesdk@latest build --variants=auto_check.yml
)",id:"1-auto-check-for-upstream-updates-auto_checkyml",level:2},{value:"Workflow File:",id:"workflow-file",level:3},{value:"2. Main Build and Pre-release (main.yml
)",id:"2-main-build-and-pre-release-mainyml",level:2},{value:"Workflow File:",id:"workflow-file-1",level:3}];function l(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"github-actions-for-dappnode-packages",children:"GitHub Actions for Dappnode Packages"}),"\n",(0,t.jsx)(n.p,{children:"GitHub Actions help automate workflows around your projects on GitHub. For Dappnode packages, we utilize specific GitHub Actions to manage updates and releases."}),"\n",(0,t.jsxs)(n.h2,{id:"1-auto-check-for-upstream-updates-auto_checkyml",children:["1. Auto Check for Upstream Updates (",(0,t.jsx)(n.code,{children:"auto_check.yml"}),")"]}),"\n",(0,t.jsx)(n.p,{children:"This action checks if there's an available update from the upstream repository. If an update is found, it creates a Pull Request with the new version."}),"\n",(0,t.jsx)(n.h3,{id:"workflow-file",children:"Workflow File:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Filename:"})," ",(0,t.jsx)(n.code,{children:"auto_check.yml"})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'name: Bump upstream version\n\non:\n schedule:\n - cron: "00 */4 * * *"\n push:\n branches:\n - "master"\n\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - run: npx @dappnode/dappnodesdk github-action bump-upstream\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }}\n PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }}\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Features:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Scheduled Runs"}),": The action runs every 4 hours (as per the cron setting)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment Variables"}),": Uses ",(0,t.jsx)(n.code,{children:"GITHUB_TOKEN"})," for authentication, and ",(0,t.jsx)(n.code,{children:"PINATA_API_KEY"})," and ",(0,t.jsx)(n.code,{children:"PINATA_SECRET_API_KEY"})," for interfacing with the IPFS pinning service Pinata."]}),"\n"]}),"\n",(0,t.jsxs)(n.h2,{id:"2-main-build-and-pre-release-mainyml",children:["2. Main Build and Pre-release (",(0,t.jsx)(n.code,{children:"main.yml"}),")"]}),"\n",(0,t.jsx)(n.p,{children:"This action builds the Dappnode package and creates a pre-release that's ready to be published."}),"\n",(0,t.jsx)(n.h3,{id:"workflow-file-1",children:"Workflow File:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Filename:"})," ",(0,t.jsx)(n.code,{children:"main.yml"})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'name: "Main"\non:\n pull_request:\n push:\n branches:\n - "main"\n - "master"\n - "v[0-9]+.[0-9]+.[0-9]+"\n paths-ignore:\n - "README.md"\n\njobs:\n build-test:\n runs-on: ubuntu-latest\n name: Build test\n if: github.event_name != \'push\'\n steps:\n - uses: actions/checkout@v3\n - run: npx @dappnode/dappnodesdk build --skip_save\n\n release:\n name: Release\n runs-on: ubuntu-latest\n if: github.event_name == \'push\'\n steps:\n - uses: actions/checkout@v3\n - name: Publish\n run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1"\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Features:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Branch Filters"}),": The action only triggers on the ",(0,t.jsx)(n.code,{children:"main"}),", ",(0,t.jsx)(n.code,{children:"master"}),", and version tags (e.g., ",(0,t.jsx)(n.code,{children:"v1.0.0"}),")."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Paths Ignore"}),": Ignores changes solely related to ",(0,t.jsx)(n.code,{children:"README.md"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Conditional Runs"}),": Different steps are executed based on the event that triggered the workflow (e.g., push event or pull request)."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>o});var t=s(7294);const a={},i=t.createContext(a);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8c6013e9.92a9ae6f.js b/assets/js/8c6013e9.92a9ae6f.js
deleted file mode 100644
index 48fc7442b..000000000
--- a/assets/js/8c6013e9.92a9ae6f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[6110],{1542:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var t=s(5893),a=s(1151);const o={},i="GitHub Actions for Dappnode Packages",r={id:"dev/github-actions",title:"GitHub Actions for Dappnode Packages",description:"GitHub Actions help automate workflows around your projects on GitHub. For Dappnode packages, we utilize specific GitHub Actions to manage updates and releases.",source:"@site/docs/dev/github-actions.md",sourceDirName:"dev",slug:"/dev/github-actions",permalink:"/docs/dev/github-actions",draft:!1,unlisted:!1,editUrl:"https://github.com/dappnode/DappnodeDocs/edit/master/docs/dev/github-actions.md",tags:[],version:"current",frontMatter:{},sidebar:"devSidebar",previous:{title:"Multi-Config Package Development",permalink:"/docs/dev/package-development/multi-configuration"}},c={},d=[{value:"1. Auto Check for Upstream Updates (auto_check.yml
)",id:"1-auto-check-for-upstream-updates-auto_checkyml",level:2},{value:"Workflow File:",id:"workflow-file",level:3},{value:"2. Main Build and Pre-release (main.yml
)",id:"2-main-build-and-pre-release-mainyml",level:2},{value:"Workflow File:",id:"workflow-file-1",level:3}];function l(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"github-actions-for-dappnode-packages",children:"GitHub Actions for Dappnode Packages"}),"\n",(0,t.jsx)(n.p,{children:"GitHub Actions help automate workflows around your projects on GitHub. For Dappnode packages, we utilize specific GitHub Actions to manage updates and releases."}),"\n",(0,t.jsxs)(n.h2,{id:"1-auto-check-for-upstream-updates-auto_checkyml",children:["1. Auto Check for Upstream Updates (",(0,t.jsx)(n.code,{children:"auto_check.yml"}),")"]}),"\n",(0,t.jsx)(n.p,{children:"This action checks if there's an available update from the upstream repository. If an update is found, it creates a Pull Request with the new version."}),"\n",(0,t.jsx)(n.h3,{id:"workflow-file",children:"Workflow File:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Filename:"})," ",(0,t.jsx)(n.code,{children:"auto_check.yml"})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'name: Bump upstream version\n\non:\n schedule:\n - cron: "00 */4 * * *"\n push:\n branches:\n - "master"\n\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - run: npx @dappnode/dappnodesdk github-action bump-upstream\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }}\n PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }}\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Features:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Scheduled Runs"}),": The action runs every 4 hours (as per the cron setting)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment Variables"}),": Uses ",(0,t.jsx)(n.code,{children:"GITHUB_TOKEN"})," for authentication, and ",(0,t.jsx)(n.code,{children:"PINATA_API_KEY"})," and ",(0,t.jsx)(n.code,{children:"PINATA_SECRET_API_KEY"})," for interfacing with the IPFS pinning service Pinata."]}),"\n"]}),"\n",(0,t.jsxs)(n.h2,{id:"2-main-build-and-pre-release-mainyml",children:["2. Main Build and Pre-release (",(0,t.jsx)(n.code,{children:"main.yml"}),")"]}),"\n",(0,t.jsx)(n.p,{children:"This action builds the Dappnode package and creates a pre-release that's ready to be published."}),"\n",(0,t.jsx)(n.h3,{id:"workflow-file-1",children:"Workflow File:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Filename:"})," ",(0,t.jsx)(n.code,{children:"main.yml"})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'name: "Main"\non:\n pull_request:\n push:\n branches:\n - "main"\n - "master"\n - "v[0-9]+.[0-9]+.[0-9]+"\n paths-ignore:\n - "README.md"\n\njobs:\n build-test:\n runs-on: ubuntu-latest\n name: Build test\n if: github.event_name != \'push\'\n steps:\n - uses: actions/checkout@v3\n - run: npx @dappnode/dappnodesdk build --skip_save\n\n release:\n name: Release\n runs-on: ubuntu-latest\n if: github.event_name == \'push\'\n steps:\n - uses: actions/checkout@v3\n - name: Publish\n run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1"\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Features:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Branch Filters"}),": The action only triggers on the ",(0,t.jsx)(n.code,{children:"main"}),", ",(0,t.jsx)(n.code,{children:"master"}),", and version tags (e.g., ",(0,t.jsx)(n.code,{children:"v1.0.0"}),")."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Paths Ignore"}),": Ignores changes solely related to ",(0,t.jsx)(n.code,{children:"README.md"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Conditional Runs"}),": Different steps are executed based on the event that triggered the workflow (e.g., push event or pull request)."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>i});var t=s(7294);const a={},o=t.createContext(a);function i(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.075cbf83.js b/assets/js/935f2afb.075cbf83.js
new file mode 100644
index 000000000..b21a55782
--- /dev/null
+++ b/assets/js/935f2afb.075cbf83.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"userSidebar":[{"type":"category","label":"Getting started","items":[{"type":"link","label":"Choose your path","href":"/docs/user/getting-started/choose-your-path","docId":"user/getting-started/choose-your-path","unlisted":false},{"type":"link","label":"Connect your Dappnode to the router","href":"/docs/user/getting-started/connect-dappnode-to-the-router","docId":"user/getting-started/connect-dappnode-to-the-router","unlisted":false},{"type":"link","label":"Access your Dappnode via WiFi","href":"/docs/user/getting-started/access-dappnode-via-wifi","docId":"user/getting-started/access-dappnode-via-wifi","unlisted":false},{"type":"link","label":"Register","href":"/docs/user/getting-started/register","docId":"user/getting-started/register","unlisted":false},{"type":"link","label":"Setup","href":"/docs/user/getting-started/setup","docId":"user/getting-started/setup","unlisted":false},{"type":"link","label":"Next steps","href":"/docs/user/getting-started/next-steps","docId":"user/getting-started/next-steps","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Access your dappnode","items":[{"type":"link","label":"Overview","href":"/docs/user/access-your-dappnode/overview","docId":"user/access-your-dappnode/overview","unlisted":false},{"type":"link","label":"Wi-Fi","href":"/docs/user/access-your-dappnode/wifi","docId":"user/access-your-dappnode/wifi","unlisted":false},{"type":"category","label":"VPN","items":[{"type":"link","label":"Overview","href":"/docs/user/access-your-dappnode/vpn/overview","docId":"user/access-your-dappnode/vpn/overview","unlisted":false},{"type":"link","label":"Wireguard","href":"/docs/user/access-your-dappnode/vpn/wireguard","docId":"user/access-your-dappnode/vpn/wireguard","unlisted":false},{"type":"link","label":"OpenVPN","href":"/docs/user/access-your-dappnode/vpn/openvpn","docId":"user/access-your-dappnode/vpn/openvpn","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Terminal (Advanced)","href":"/docs/user/access-your-dappnode/terminal","docId":"user/access-your-dappnode/terminal","unlisted":false},{"type":"link","label":"Local Proxy (Recovery)","href":"/docs/user/access-your-dappnode/local","docId":"user/access-your-dappnode/local","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Hardware","items":[{"type":"link","label":"Overview","href":"/docs/user/hardware/overview","docId":"user/hardware/overview","unlisted":false},{"type":"link","label":"Maintenance","href":"/docs/user/hardware/maintenance","docId":"user/hardware/maintenance","unlisted":false},{"type":"link","label":"Temperature","href":"/docs/user/hardware/temperature","docId":"user/hardware/temperature","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Staking","items":[{"type":"link","label":"Earn with Staking","href":"/docs/user/staking/overview","docId":"user/staking/overview","unlisted":false},{"type":"category","label":"Ethereum","items":[{"type":"category","label":"Solo Staking","items":[{"type":"link","label":"Mainnet","href":"/docs/user/staking/ethereum/solo/mainnet","docId":"user/staking/ethereum/solo/mainnet","unlisted":false},{"type":"link","label":"Testnet","href":"/docs/user/staking/ethereum/solo/holesky","docId":"user/staking/ethereum/solo/holesky","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"LSD Pools","items":[{"type":"category","label":"Lido CSM","items":[{"type":"link","label":"Overview","href":"/docs/user/staking/ethereum/lsd-pools/lido/overview","docId":"user/staking/ethereum/lsd-pools/lido/overview","unlisted":false},{"type":"link","label":"Register as a Node Operator","href":"/docs/user/staking/ethereum/lsd-pools/lido/register","docId":"user/staking/ethereum/lsd-pools/lido/register","unlisted":false},{"type":"link","label":"I am already a Node Operator","href":"/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator","docId":"user/staking/ethereum/lsd-pools/lido/already-node-operator","unlisted":false},{"type":"link","label":"Notifications & Warnings","href":"/docs/user/staking/ethereum/lsd-pools/lido/notifications","docId":"user/staking/ethereum/lsd-pools/lido/notifications","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Rocketpool","href":"/docs/user/staking/ethereum/lsd-pools/rocketpool","docId":"user/staking/ethereum/lsd-pools/rocketpool","unlisted":false},{"type":"link","label":"Stakewise","href":"/docs/user/staking/ethereum/lsd-pools/stakewise","docId":"user/staking/ethereum/lsd-pools/stakewise","unlisted":false},{"type":"link","label":"Stakehouse","href":"/docs/user/staking/ethereum/lsd-pools/stakehouse","docId":"user/staking/ethereum/lsd-pools/stakehouse","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"DVT Technologies","items":[{"type":"link","label":"Obol","href":"/docs/user/staking/ethereum/dvt-technologies/obol-network","docId":"user/staking/ethereum/dvt-technologies/obol-network","unlisted":false},{"type":"link","label":"SSV","href":"/docs/user/staking/ethereum/dvt-technologies/ssv-network","docId":"user/staking/ethereum/dvt-technologies/ssv-network","unlisted":false},{"type":"link","label":"Diva","href":"/docs/user/staking/ethereum/dvt-technologies/diva","docId":"user/staking/ethereum/dvt-technologies/diva","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Gnosis Chain","items":[{"type":"link","label":"Gnosis Solo Staking","href":"/docs/user/staking/gnosis-chain/solo","docId":"user/staking/gnosis-chain/solo","unlisted":false},{"type":"link","label":"Gnosis Incentive Program","href":"/docs/user/staking/gnosis-chain/incentive-program","docId":"user/staking/gnosis-chain/incentive-program","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"LUKSO","items":[{"type":"link","label":"LUKSO Solo Staking","href":"/docs/user/staking/lukso/solo","docId":"user/staking/lukso/solo","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Rollups","items":[{"type":"link","label":"Overview","href":"/docs/user/rollups/overview","docId":"user/rollups/overview","unlisted":false},{"type":"link","label":"Optimism","href":"/docs/user/rollups/optimism","docId":"user/rollups/optimism","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Packages","items":[{"type":"category","label":"Understanding Dappnode Packages","items":[{"type":"link","label":"Overview","href":"/docs/user/packages/understanding-dappnode-packages/overview","docId":"user/packages/understanding-dappnode-packages/overview","unlisted":false},{"type":"link","label":"Info","href":"/docs/user/packages/understanding-dappnode-packages/info","docId":"user/packages/understanding-dappnode-packages/info","unlisted":false},{"type":"link","label":"Config","href":"/docs/user/packages/understanding-dappnode-packages/config","docId":"user/packages/understanding-dappnode-packages/config","unlisted":false},{"type":"link","label":"Network","href":"/docs/user/packages/understanding-dappnode-packages/network","docId":"user/packages/understanding-dappnode-packages/network","unlisted":false},{"type":"link","label":"Logs","href":"/docs/user/packages/understanding-dappnode-packages/logs","docId":"user/packages/understanding-dappnode-packages/logs","unlisted":false},{"type":"link","label":"Backup","href":"/docs/user/packages/understanding-dappnode-packages/backup","docId":"user/packages/understanding-dappnode-packages/backup","unlisted":false},{"type":"link","label":"File manager","href":"/docs/user/packages/understanding-dappnode-packages/file-manager","docId":"user/packages/understanding-dappnode-packages/file-manager","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Packages\' signature","href":"/docs/user/packages/signature","docId":"user/packages/signature","unlisted":false},{"type":"link","label":"DMS","href":"/docs/user/packages/dms","docId":"user/packages/dms","unlisted":false},{"type":"link","label":"Bitcoin","href":"/docs/user/packages/bitcoin","docId":"user/packages/bitcoin","unlisted":false},{"type":"link","label":"Eth Classic","href":"/docs/user/packages/ethclassic","docId":"user/packages/ethclassic","unlisted":false},{"type":"link","label":"Avalanche","href":"/docs/user/packages/avalanche","docId":"user/packages/avalanche","unlisted":false},{"type":"link","label":"Monero","href":"/docs/user/packages/monero","docId":"user/packages/monero","unlisted":false},{"type":"link","label":"Swarm","href":"/docs/user/packages/swarm","docId":"user/packages/swarm","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Repository","items":[{"type":"link","label":"Ethereum","href":"/docs/user/repository/ethereum","docId":"user/repository/ethereum","unlisted":false},{"type":"link","label":"IPFS","href":"/docs/user/repository/ipfs","docId":"user/repository/ipfs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Install","items":[{"type":"link","label":"Overview","href":"/docs/user/install/overview","docId":"user/install/overview","unlisted":false},{"type":"link","label":"ISO","href":"/docs/user/install/iso","docId":"user/install/iso","unlisted":false},{"type":"link","label":"Script","href":"/docs/user/install/script","docId":"user/install/script","unlisted":false},{"type":"link","label":"ARM","href":"/docs/user/install/arm","docId":"user/install/arm","unlisted":false},{"type":"link","label":"Dappnode commands","href":"/docs/user/install/dappnode-commands","docId":"user/install/dappnode-commands","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Ethical metrics","items":[{"type":"link","label":"Overview","href":"/docs/user/ethical-metrics/overview","docId":"user/ethical-metrics/overview","unlisted":false},{"type":"link","label":"Setting up Notifications","href":"/docs/user/ethical-metrics/setup","docId":"user/ethical-metrics/setup","unlisted":false},{"type":"link","label":"Metrics collected","href":"/docs/user/ethical-metrics/metrics","docId":"user/ethical-metrics/metrics","unlisted":false},{"type":"link","label":"Troubleshooting","href":"/docs/user/ethical-metrics/troubleshooting","docId":"user/ethical-metrics/troubleshooting","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Dappnode Cloud","items":[{"type":"link","label":"Overview","href":"/docs/user/dappnode-cloud/overview","docId":"user/dappnode-cloud/overview","unlisted":false},{"type":"category","label":"Cloud Providers","items":[{"type":"category","label":"AWS","items":[{"type":"link","label":"AWS Overview","href":"/docs/user/dappnode-cloud/providers/aws/overview","docId":"user/dappnode-cloud/providers/aws/overview","unlisted":false},{"type":"link","label":"How to set up an Instance","href":"/docs/user/dappnode-cloud/providers/aws/set-up-instance","docId":"user/dappnode-cloud/providers/aws/set-up-instance","unlisted":false},{"type":"link","label":"FAQs & Troubleshooting","href":"/docs/user/dappnode-cloud/providers/aws/faqs","docId":"user/dappnode-cloud/providers/aws/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"More coming soon","href":"/docs/user/dappnode-cloud/providers/coming-soon","docId":"user/dappnode-cloud/providers/coming-soon","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Videos and tutorials","items":[{"type":"category","label":"Driving School","items":[{"type":"link","label":"Initial setup","href":"/docs/user/videos-and-tutorials/driving-school/initial-setup","docId":"user/videos-and-tutorials/driving-school/initial-setup","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/user/videos-and-tutorials/driving-school/configuration","docId":"user/videos-and-tutorials/driving-school/configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Crash Course","href":"/docs/user/videos-and-tutorials/crash-course","docId":"user/videos-and-tutorials/crash-course","unlisted":false},{"type":"category","label":"Guides","items":[{"type":"link","label":"How to connect a wallet to my node","href":"/docs/user/videos-and-tutorials/guides/connect-node","docId":"user/videos-and-tutorials/guides/connect-node","unlisted":false},{"type":"link","label":"Migrating from Avado","href":"/docs/user/videos-and-tutorials/guides/migrating-from-avado","docId":"user/videos-and-tutorials/guides/migrating-from-avado","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQs","href":"/docs/user/faqs","docId":"user/faqs","unlisted":false}],"devSidebar":[{"type":"link","label":"Introduction","href":"/docs/dev","docId":"dev","unlisted":false},{"type":"category","label":"DappnodeSDK","items":[{"type":"link","label":"Overview","href":"/docs/dev/sdk/overview","docId":"dev/sdk/overview","unlisted":false},{"type":"link","label":"Commands","href":"/docs/dev/sdk/commands","docId":"dev/sdk/commands","unlisted":false},{"type":"link","label":"SDK-Publish","href":"/docs/dev/sdk/sdk-publish","docId":"dev/sdk/sdk-publish","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"File references","items":[{"type":"link","label":"Docker Compose","href":"/docs/dev/references/docker-compose","docId":"dev/references/docker-compose","unlisted":false},{"type":"link","label":"Dappnode Manifest","href":"/docs/dev/references/manifest","docId":"dev/references/manifest","unlisted":false},{"type":"link","label":"Setup Wizard","href":"/docs/dev/references/setup-wizard","docId":"dev/references/setup-wizard","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Package Development","items":[{"type":"link","label":"Overview","href":"/docs/dev/package-development/overview","docId":"dev/package-development/overview","unlisted":false},{"type":"link","label":"Single Configuration","href":"/docs/dev/package-development/single-configuration","docId":"dev/package-development/single-configuration","unlisted":false},{"type":"link","label":"Multi-Configuration","href":"/docs/dev/package-development/multi-configuration","docId":"dev/package-development/multi-configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Package Publishing","href":"/docs/dev/package-publishing/publish-packages-clients","docId":"dev/package-publishing/publish-packages-clients","unlisted":false},{"type":"link","label":"Github Actions","href":"/docs/dev/github-actions","docId":"dev/github-actions","unlisted":false}],"smoothSidebar":[{"type":"link","label":"Smooth","href":"/docs/smooth","docId":"smooth","unlisted":false},{"type":"category","label":"Deep dive into Smooth","items":[{"type":"link","label":"Overview","href":"/docs/smooth/deep-dive-into-smooth/overview","docId":"smooth/deep-dive-into-smooth/overview","unlisted":false},{"type":"link","label":"Rewards","href":"/docs/smooth/deep-dive-into-smooth/rewards","docId":"smooth/deep-dive-into-smooth/rewards","unlisted":false},{"type":"link","label":"Validator States","href":"/docs/smooth/deep-dive-into-smooth/states","docId":"smooth/deep-dive-into-smooth/states","unlisted":false},{"type":"link","label":"Oracle & Smart Contract","href":"/docs/smooth/deep-dive-into-smooth/oracle-sm","docId":"smooth/deep-dive-into-smooth/oracle-sm","unlisted":false},{"type":"link","label":"Avoid proposing Vanilla Blocks","href":"/docs/smooth/deep-dive-into-smooth/vanilla-blocks","docId":"smooth/deep-dive-into-smooth/vanilla-blocks","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Subscribe to Smooth!","items":[{"type":"link","label":"Overview","href":"/docs/smooth/subscribe-to-smooth/overview","docId":"smooth/subscribe-to-smooth/overview","unlisted":false},{"type":"link","label":"Automatic subscription","href":"/docs/smooth/subscribe-to-smooth/automatic","docId":"smooth/subscribe-to-smooth/automatic","unlisted":false},{"type":"link","label":"Manual subscription","href":"/docs/smooth/subscribe-to-smooth/manual","docId":"smooth/subscribe-to-smooth/manual","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Unsubscribe from Smooth","href":"/docs/smooth/unsubscribe-from-smooth","docId":"smooth/unsubscribe-from-smooth","unlisted":false},{"type":"link","label":"FAQ / Glossary","href":"/docs/smooth/faq-glossary","docId":"smooth/faq-glossary","unlisted":false}],"daoSidebar":[{"type":"link","label":"DAO","href":"/docs/dao","docId":"dao","unlisted":false},{"type":"link","label":"The NODE Economy","href":"/docs/dao/node-basics","docId":"dao/node-basics","unlisted":false},{"type":"link","label":"Liquidity Mining","href":"/docs/dao/liquidity-mining","docId":"dao/liquidity-mining","unlisted":false},{"type":"link","label":"Dappnode DAO FAQ","href":"/docs/dao/faq","docId":"dao/faq","unlisted":false}]},"docs":{"dao":{"id":"dao","title":"DAO","description":"DAO information","sidebar":"daoSidebar"},"dao/faq":{"id":"dao/faq","title":"Dappnode DAO FAQ","description":"What is a DAO?","sidebar":"daoSidebar"},"dao/liquidity-mining":{"id":"dao/liquidity-mining","title":"Liquidity Mining","description":"Liquidity Mining (LM) launched on Jul 17 2021, 2000 GMT. 5.5% of the total token supply, 5.5 Million NODE, has been allocated to the first LM round of 6 months. NODE reward distribution for the 4 pools available is as follows:","sidebar":"daoSidebar"},"dao/node-basics":{"id":"dao/node-basics","title":"The NODE Economy","description":"NODE Basics","sidebar":"daoSidebar"},"dao/node-drop":{"id":"dao/node-drop","title":"NODEdrop","description":"\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\""},"dao/node-stream":{"id":"dao/node-stream","title":"NODEstream","description":"\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\""},"dev":{"id":"dev","title":"Welcome to the Developer Documentation!","description":"Welcome to the Dappnode\'s developer docs! This documentation is your comprehensive guide to using the tools and resources that enable you to create, deploy, and manage your own custom dappnode packages (DNP). Whether you\'re new to the project or an experienced developer, this documentation will help you navigate the intricacies of developing in the dappnode environment.","sidebar":"devSidebar"},"dev/github-actions":{"id":"dev/github-actions","title":"GitHub Actions for Dappnode Packages","description":"GitHub Actions help automate workflows around your projects on GitHub. For Dappnode packages, we utilize specific GitHub Actions to manage updates and releases.","sidebar":"devSidebar"},"dev/package-development/multi-configuration":{"id":"dev/package-development/multi-configuration","title":"Multi-Config Package Development","description":"This guide will walk you through the steps to develop a multi-config Dappnode package, allowing you to create multiple package configurations from a single source. We\'ll use the Lodestar Generic package as a reference, which builds multiple variants for different networks like Mainnet, Holesky, and Gnosis.","sidebar":"devSidebar"},"dev/package-development/overview":{"id":"dev/package-development/overview","title":"Package Development","description":"Welcome to the Package Development section! This guide will help you create your own Dappnode packages. In Dappnode, packages are applications that you can download and install on your Dappnode machine, allowing you to enhance its functionality.","sidebar":"devSidebar"},"dev/package-development/single-configuration":{"id":"dev/package-development/single-configuration","title":"Single-Variant Package Development","description":"This guide will walk you through the steps to develop a single-variant Dappnode package using a simple example. We\'ll start with initializing a basic package and progress to a more complex setup, using the Holesky Geth package as a reference.","sidebar":"devSidebar"},"dev/package-publishing/publish-packages-clients":{"id":"dev/package-publishing/publish-packages-clients","title":"Publish your packages seamlessly","description":"The aim of this guide is to help you publish the new packages of your product in Dappnode seamlessly. We created a new UI to ease the publication of your packages in a few minutes.","sidebar":"devSidebar"},"dev/references/docker-compose":{"id":"dev/references/docker-compose","title":"Docker compose file","description":"Dappnode packages are built upon Docker containers. The heart of defining how these containers run and interact lies in the docker-compose.yml file. In this guide, we will explain the typical structure of the docker-compose.yml file for a Dappnode package.","sidebar":"devSidebar"},"dev/references/manifest":{"id":"dev/references/manifest","title":"Dappnode Package (DNP) manifest","description":"The Dappnode Package manifest defines all the necessary information for a Dappnode to understand this package:","sidebar":"devSidebar"},"dev/references/setup-wizard":{"id":"dev/references/setup-wizard","title":"Wizard Reference","description":"The setup wizard for Dappnode packages helps automate the package customization and improve its user experience. You can allow users to conveniently edit environment variables, port mappings, and upload files while interacting with a simple web form, right before installing the package.","sidebar":"devSidebar"},"dev/sdk/commands":{"id":"dev/sdk/commands","title":"Main commands","description":"This page covers the top three functionalities of DappnodeSDK: init, build, and publish. Each command plays a crucial role in the development and deployment process of dappnode packages (DNPs).","sidebar":"devSidebar"},"dev/sdk/overview":{"id":"dev/sdk/overview","title":"DappnodeSDK","description":"The DappnodeSDK dappnodesdk is a tool that makes creating and publishing new Dappnode packages as simple as possible. It helps to initialize, build, test, and publish the new package/repo to an APM tracked on the Ethereum Mainnet.","sidebar":"devSidebar"},"dev/sdk/sdk-publish":{"id":"dev/sdk/sdk-publish","title":"SDK-Publish","description":"The SDK-Publish tool is a component of the Dappnode Software Development Kit (dappnodesdk). This tool simplifies the process of signing and publishing Dappnode package releases, utilizing your wallet for secure and efficient transaction management.","sidebar":"devSidebar"},"smooth":{"id":"smooth","title":"Smooth","description":"Smooth introduction","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/oracle-sm":{"id":"smooth/deep-dive-into-smooth/oracle-sm","title":"Smooth\'s architecture","description":"Smooth is composed of two main components: the Oracle and the Smart Contract. These two components work together to track validators and distribute rewards fairly. Both are open source and indispensable to the functioning of Smooth. While the Smart Contract serves to track all the events related to the pool onchain (subscriptions, unsubscriptions, block proposals, etc.), the Oracle is responsible for computing the rewards of each validator.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/overview":{"id":"smooth/deep-dive-into-smooth/overview","title":"Deep Dive into Smooth!","description":"In this section, you will find an in-depth explanation on how Smooth works. This includes its different components, all states possible of a subscribed validator, and much more!","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/rewards":{"id":"smooth/deep-dive-into-smooth/rewards","title":"Rewards","description":"Receiving and distributing rewards is one of the core functionalities of Smooth. In this section we will explain how rewards are handled by Smooth and how they are distributed to validators, as well as how users can claim their rewards.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/states":{"id":"smooth/deep-dive-into-smooth/states","title":"Smooth Validator States","description":"A Smooth validator can be in multiple states depending on its behavior. In this section we will explain all possible states a validator can have, the consequences of being each state, and how a validator can transition from one state to another.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/vanilla-blocks":{"id":"smooth/deep-dive-into-smooth/vanilla-blocks","title":"What is a vanilla block?","description":"What is a vanilla block?","sidebar":"smoothSidebar"},"smooth/faq-glossary":{"id":"smooth/faq-glossary","title":"FAQ & Glossary","description":"FAQ","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/automatic":{"id":"smooth/subscribe-to-smooth/automatic","title":"Automatic Subscription","description":"This is the simplest way to subscribe to Smooth. It consists of changing the fee recipient of your validator to Smooth\'s address and subscribing automatically when proposing your next block.","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/manual":{"id":"smooth/subscribe-to-smooth/manual","title":"Manual Subscription","description":"Would you rather not wait until your next proposed block to subscribe and begin earning rewards? You can take a proactive step and opt for manual subscription right away. During this process, you\'ll change your validator\'s fee recipient to Smooth\'s address, just like in the automatic subscription. However, instead of waiting for your next proposed block, you\'ll immediately start accumulating rewards from Smooth.","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/overview":{"id":"smooth/subscribe-to-smooth/overview","title":"Subscribing to Smooth","description":"Hello! In this section you will find all the information on how to subscribe your Validators to Smooth. Even though the process is simple, it is important to follow the steps carefully.","sidebar":"smoothSidebar"},"smooth/unsubscribe-from-smooth":{"id":"smooth/unsubscribe-from-smooth","title":"Unsubscribing from Smooth.","description":"Unsubscribing from Smooth is as simple as subscribing to it. You can unsubscribe from Smooth at any time, it is done through Smooth\'s website and it only takes one simple transaction.","sidebar":"smoothSidebar"},"user/access-your-dappnode/local":{"id":"user/access-your-dappnode/local","title":"Local Proxy Access to Dappnode","description":"The local proxy method provides a way to access your Dappnode from within the same local network without any previous configuration required. However, it\'s essential to understand that due to certain network incompatibilities, this method might not work for all users.","sidebar":"userSidebar"},"user/access-your-dappnode/overview":{"id":"user/access-your-dappnode/overview","title":"\ud83c\udf10 Access your Dappnode","description":"Dappnode is made to work on a dedicated computer, and its main control panel, the Dappmanager, is accessed from another device via my.dappnode , as it is meant to be installed over an operating system that does not include a graphical interface.","sidebar":"userSidebar"},"user/access-your-dappnode/terminal":{"id":"user/access-your-dappnode/terminal","title":"Terminal Access to Dappnode","description":"Accessing the terminal of your Dappnode, often referred to as the command-line interface (CLI), provides deep control and management capabilities. However, this method is considered advanced and requires familiarity with command line interactions. Incorrect or misguided commands can lead to unintended changes or potential system damage.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/openvpn":{"id":"user/access-your-dappnode/vpn/openvpn","title":"OpenVPN Access to Dappnode","description":"OpenVPN is a widely-accepted VPN protocol known for its reliability and high-security standards. Here\'s how you can set it up with Dappnode.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/overview":{"id":"user/access-your-dappnode/vpn/overview","title":"VPN Access to Dappnode","description":"Virtual Private Network (VPN) is a robust method for accessing your Dappnode. It ensures a secure and encrypted connection between your device and the Dappnode, allowing you to manage your Dappnode from virtually anywhere. Depending on your needs and preferences, Dappnode offers support for two primary VPN technologies: WireGuard and OpenVPN.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/wireguard":{"id":"user/access-your-dappnode/vpn/wireguard","title":"WireGuard Access to Dappnode","description":"WireGuard is a modern, high-performance VPN protocol that offers a simple and streamlined approach for securely accessing your Dappnode. This guide will walk you through setting up WireGuard with your Dappnode.","sidebar":"userSidebar"},"user/access-your-dappnode/wifi":{"id":"user/access-your-dappnode/wifi","title":"Wi-Fi Access to Dappnode","description":"If you bought a Dappnode from our store, or installed Dappnode on a computer with a built-in Wi-Fi chip, you can easily connect to the Dappmanager (Dappnode web UI) using the Dappnode\'s Wi-Fi hotspot.","sidebar":"userSidebar"},"user/dappnode-cloud/overview":{"id":"user/dappnode-cloud/overview","title":"What is Dappnode Cloud?","description":"Dappnode Cloud is a service that allows users to deploy a Dappnode in a cloud provider so it can be tested without the need for physical hardware. We provide easy pre-configured instances for the main cloud providers (AWS for now, more to come later) to continue to make the deployment of web3 infrastructure accessible and hassle-free for everyone. It consists of a Dappnode image deployed on a machine instance from a cloud provider, eliminating the need to invest in hardware in order to test Dappnode.","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/faqs":{"id":"user/dappnode-cloud/providers/aws/faqs","title":"FAQs & Troubleshooting","description":"Which machine should I choose?","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/overview":{"id":"user/dappnode-cloud/providers/aws/overview","title":"AWS","description":"Amazon Web Services (AWS) is a cloud computing platform provided by Amazon. It offers a wide range of services, including computing power, storage options, and networking capabilities, enabling users to build and deploy applications and services efficiently.","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/set-up-instance":{"id":"user/dappnode-cloud/providers/aws/set-up-instance","title":"How to Set Up an Instance","description":"To launch a Dappnode AMI instance, follow these steps:","sidebar":"userSidebar"},"user/dappnode-cloud/providers/coming-soon":{"id":"user/dappnode-cloud/providers/coming-soon","title":"More coming soon","description":"We are aiming to deploy Dappnode Images in more cloud providers in a nearly future.","sidebar":"userSidebar"},"user/ethical-metrics/metrics":{"id":"user/ethical-metrics/metrics","title":"Metrics Collected by Ethical Metrics","description":"Dappnode has absolutely no hidden telemetry and is completely private by design. We were reluctant of setting up a monitoring service because we did NOT want to collect any data from our users. Because of our community\'s continuous requests to offer alerts, we came up with a solution that doesn\'t compromise your privacy.","sidebar":"userSidebar"},"user/ethical-metrics/overview":{"id":"user/ethical-metrics/overview","title":"Ethical Metrics","description":"Ethical Metrics requires the Dappnode Monitoring Service (DMS) and Dappnode Exporter as dependencies.","sidebar":"userSidebar"},"user/ethical-metrics/setup":{"id":"user/ethical-metrics/setup","title":"Setting up Ethical Metrics","description":"We highly recommend utilizing the Telegram channel option in addition to or instead of relying solely on email notifications.","sidebar":"userSidebar"},"user/ethical-metrics/troubleshooting":{"id":"user/ethical-metrics/troubleshooting","title":"Troubleshooting","description":"Experiencing trouble when setting your notifications up? Check this FAQ. If your issue isn\'t listed, please pay us a visit in the Dappnode Discord and we\'ll be happy to assist you!","sidebar":"userSidebar"},"user/faqs":{"id":"user/faqs","title":"FAQs","description":"How can I start validating?","sidebar":"userSidebar"},"user/getting-started/access-dappnode-via-wifi":{"id":"user/getting-started/access-dappnode-via-wifi","title":"Access Dappnode via Wi-Fi","description":"After connecting your Dappnode to the router and power, and turning it on, it\'s time to connect to it.","sidebar":"userSidebar"},"user/getting-started/choose-your-path":{"id":"user/getting-started/choose-your-path","title":"Choose your path","description":"Regardless of how you wish to utilize Dappnode, taking the initiative to contribute to decentralization and earning rewards is commendable. Embark on your desired path and experience the full potential of Dappnode.","sidebar":"userSidebar"},"user/getting-started/connect-dappnode-to-the-router":{"id":"user/getting-started/connect-dappnode-to-the-router","title":"Connect your dappnode to the router and power","description":"Dappnode offers a seamless plug-and-play experience. For optimal performance and to ensure smooth operation, please connect your Dappnode to your router and enable UPnP settings within the router.","sidebar":"userSidebar"},"user/getting-started/next-steps":{"id":"user/getting-started/next-steps","title":"Next Steps","description":"Now that your DAppNode is set up and ready to go, it\'s time to explore further configurations and features to get the most out of your experience. Here are some of the most common next steps:","sidebar":"userSidebar"},"user/getting-started/register":{"id":"user/getting-started/register","title":"Register","description":"1. Register as New User","sidebar":"userSidebar"},"user/getting-started/setup":{"id":"user/getting-started/setup","title":"Setup","description":"Setting up Dappnode is a straightforward process. This guide will walk you through configuring your Dappnode for the first time.","sidebar":"userSidebar"},"user/hardware/maintenance":{"id":"user/hardware/maintenance","title":"Maintenance","description":"This section will cover four different approaches to servicing your hardware. The order is by level of difficulty from easiest to hardest. Remember that if you have any questions they\'re always welcome in our Discord server.","sidebar":"userSidebar"},"user/hardware/overview":{"id":"user/hardware/overview","title":"Hardware","description":"In this section you will find information related to the hardware of the Dappnode\'s host machine. If you had noticed any issue with it and have tried some steps provided by the Dappnode community and/or staff without success, this section of the Dappnode documentation will help you solving those that are on the hardware side of things.","sidebar":"userSidebar"},"user/hardware/temperature":{"id":"user/hardware/temperature","title":"Temperature","description":"Keeping a close eye to your Dappnode\'s temperature is part of the Node Runner\'s basic good practices. Dappnode provides you with metrics \ud83d\udcca in the main dashboard to do so.","sidebar":"userSidebar"},"user/install/arm":{"id":"user/install/arm","title":"Install - ARM","description":"Hardware Recommendations","sidebar":"userSidebar"},"user/install/dappnode-commands":{"id":"user/install/dappnode-commands","title":"Dappnode commands","description":"Dappnode comes with a set of commands that can be used to manage the system. These commands can be used directly from the command line.","sidebar":"userSidebar"},"user/install/iso":{"id":"user/install/iso","title":"ISO Installation","description":"When you want to perform a clean installation by installing the base operating system and Dappnode. Installing from an ISO will wipe the machine data and install Dappnode over Debian.","sidebar":"userSidebar"},"user/install/overview":{"id":"user/install/overview","title":"Installation Overview","description":"Specifications & Minimum Requirements","sidebar":"userSidebar"},"user/install/script":{"id":"user/install/script","title":"Script installation","description":"You can install Dappnode using the installation script. In this case, we recommend you use Ubuntu or Debian as your operating system.","sidebar":"userSidebar"},"user/packages/avalanche":{"id":"user/packages/avalanche","title":"Avalanche","description":"Avalanche: A Revolutionary Consensus Protocol","sidebar":"userSidebar"},"user/packages/bitcoin":{"id":"user/packages/bitcoin","title":"Bitcoin","description":"Exploring Bitcoin: The Pioneer of Cryptocurrency","sidebar":"userSidebar"},"user/packages/dms":{"id":"user/packages/dms","title":"Dappnode Monitoring Service (DMS)","description":"As a Dappnode user, there are times when having insights into the performance of your packages or your whole system can be incredibly beneficial. This means understanding the condition or \\"health\\" of your packages, the utilization of your computer resources such as CPU, RAM, and disk space, as well as monitoring network traffic flow. Yet, managing all of these aspects can become complex and tedious, even for those with experience. This is precisely where the Dappnode Monitoring Service (DMS) steps in to simplify matters.","sidebar":"userSidebar"},"user/packages/ethclassic":{"id":"user/packages/ethclassic","title":"Ethereum Classic","description":"Introducing Ethereum Classic: Preserving Blockchain Principles","sidebar":"userSidebar"},"user/packages/monero":{"id":"user/packages/monero","title":"Monero","description":"Introducing Monero: A Privacy-Centric Cryptocurrency","sidebar":"userSidebar"},"user/packages/signature":{"id":"user/packages/signature","title":"Packages\' Signature","description":"Dappnode\'s Packages Signatures","sidebar":"userSidebar"},"user/packages/swarm":{"id":"user/packages/swarm","title":"Guide to Installing Bee Node on Dappnode","description":"Introduction to Swarm","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/backup":{"id":"user/packages/understanding-dappnode-packages/backup","title":"Backup","description":"This option will be available in packages that generate any kind of local database that includes sensitive information such as validator keystores. You\'ll have two very self-explanatory options: \\"Backup Now\\" and \\"Restore Backup\\".","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/config":{"id":"user/packages/understanding-dappnode-packages/config","title":"Config","description":"The Config section provides access to the package\'s settings, available in both simple and advanced modes. You can switch to the advanced mode by clicking the option in the lower-right corner of the screen when it is available. This flexibility allows users to customize package parameters according to their needs, from basic adjustments to more detailed configurations.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/file-manager":{"id":"user/packages/understanding-dappnode-packages/file-manager","title":"File Manager","description":"Also handy whenever your package has a database you\'ll need to access or modify, but without going through a terminal. Download and upload files in an easy way with the File Manager.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/info":{"id":"user/packages/understanding-dappnode-packages/info","title":"Info","description":"The Info section provides a comprehensive overview of the package\'s status and essential details. This section is crucial for understanding the current state of the package and managing its basic operations. Below are the key features you\'ll find in the Info section:","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/logs":{"id":"user/packages/understanding-dappnode-packages/logs","title":"Logs","description":"This is a great section for finding out something that is not working in your package or to look for both expected and unexpected behavior. Packages with multiple services will give you the option to switch logs in the top \\"Service\\" bar, something common for consensus clients for example, which usually run one service for the beacon-chain and another one for validator. Whenever you request for support in the Dappnode community, keep these handy!","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/network":{"id":"user/packages/understanding-dappnode-packages/network","title":"Network","description":"The Network section allows you to manage and configure the network settings for your packages. This includes adjusting network settings for individual services, changing port mappings, and setting up domain mappings to expose your package to the internet.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/overview":{"id":"user/packages/understanding-dappnode-packages/overview","title":"Dappnode Packages","description":"What are Dappnode packages? What features do they offer? How are they managed?","sidebar":"userSidebar"},"user/repository/ethereum":{"id":"user/repository/ethereum","title":"Ethereum repository","description":"Dappnode uses smart contracts to distribute the dappnode packages available in the Dappstore. The smart contracts are deployed in the Ethereum blockchain and the Dappnode client interacts with them to get the list of available packages and to download them. Your dappnode will need a connection to an Ethereum node in order to read the smart contracts and download the packages. There are two ways to establish this connection:","sidebar":"userSidebar"},"user/repository/ipfs":{"id":"user/repository/ipfs","title":"IPFS repository","description":"Dappnode leverages IPFS for distributing packages available in the Dappstore. To download these packages, your Dappnode requires a connection to an IPFS node. When it comes to connecting to the IPFS network, you have two primary choices:","sidebar":"userSidebar"},"user/rollups/optimism":{"id":"user/rollups/optimism","title":"Optimism Rollup","description":"Optimism is Ethereum\'s Layer 2 solution, leveraging Optimistic Rollups to enhance transaction speeds and lower costs. It conducts transactions off-chain, reconciling final states on the main Ethereum chain, all while preserving compatibility with Ethereum smart contracts.","sidebar":"userSidebar"},"user/rollups/overview":{"id":"user/rollups/overview","title":"Ethereum Rollups: An Overview","description":"Rollups are advanced layer-2 scaling solutions designed to increase the throughput of the Ethereum network. By executing and storing transaction data off the main Ethereum chain while keeping a cryptographic commitment on-chain, Rollups enhance scalability and reduce fees. Rollups can be broadly categorized into two types: Optimistic Rollups and zk-Rollups, each with its unique approach and trade-offs.","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/diva":{"id":"user/staking/ethereum/dvt-technologies/diva","title":"Diva package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/obol-network":{"id":"user/staking/ethereum/dvt-technologies/obol-network","title":"Obol Distributed Validator package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/ssv-network":{"id":"user/staking/ethereum/dvt-technologies/ssv-network","title":"SSV Distributed Validator package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/already-node-operator":{"id":"user/staking/ethereum/lsd-pools/lido/already-node-operator","title":"Already a node operator","description":"This document provides detailed instructions for existing Node Operators on integrating their setup with the Lido Community Staking Module (CSM) via Dappnode. By following these steps, you can efficiently manage your validators and ensure proper functionality within the Lido protocol.","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/notifications":{"id":"user/staking/ethereum/lsd-pools/lido/notifications","title":"Notifications & Warnings","description":"The DAppNodePackage-lido-csm provides notifications and warnings to help you monitor your infraestructure and validator performance. You will be able to setup your notifications either during the onboarding process if you are registering as a new Node Operator and from the UI navigating to /notifications.","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/overview":{"id":"user/staking/ethereum/lsd-pools/lido/overview","title":"Lido Community Staking Module (CSM)","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/register":{"id":"user/staking/ethereum/lsd-pools/lido/register","title":"**Become a Lido Node Operator with Dappnode**","description":"Dappnode provides an easy-to-use and intuitive interface for most of the infrastructure needed to become a Lido Node Operator. The process is straightforward and requires only a few steps to set up a node operator and start earning rewards. An overview of the process is how the Lido CSM UI will greet you when first connecting your wallet to the dApp:","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/rocketpool":{"id":"user/staking/ethereum/lsd-pools/rocketpool","title":"Rocketpool","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/stakehouse":{"id":"user/staking/ethereum/lsd-pools/stakehouse","title":"Stakehouse","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/stakewise":{"id":"user/staking/ethereum/lsd-pools/stakewise","title":"StakeWise","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/solo/holesky":{"id":"user/staking/ethereum/solo/holesky","title":"Holesky Testnet","description":"The Holesky testnet is a testnet for the Ethereum ecosystem, serving as a sandbox for users and developers alike.","sidebar":"userSidebar"},"user/staking/ethereum/solo/mainnet":{"id":"user/staking/ethereum/solo/mainnet","title":"Ethereum mainnet","description":"Ethereum stands as a titan in the realm of smart contract platforms. Its monumental shift from Proof of Work (PoW) to Proof of Stake (PoS) has opened up opportunities for individuals to participate in Ethereum\'s block production by staking ETH.","sidebar":"userSidebar"},"user/staking/gnosis-chain/incentive-program":{"id":"user/staking/gnosis-chain/incentive-program","title":"Gnosis Chain Incentive Program","description":"Gnosis Chain is a Proof of Stake blockchain that uses the GNO token for staking. The Gnosis incentive program rewards validators for their work in the network. It is designed to incentivize validators to participate and secure the network.","sidebar":"userSidebar"},"user/staking/gnosis-chain/solo":{"id":"user/staking/gnosis-chain/solo","title":"Gnosis Chain","description":"Gnosis Chain stands as a sentinel, functioning as a canary chain for Ethereum. It\'s operated and nurtured by the GnosisDAO community. With over 10% of its validators being home stakers via Dappnode, it\'s a testament to its popularity and accessibility.","sidebar":"userSidebar"},"user/staking/lukso/solo":{"id":"user/staking/lukso/solo","title":"LUKSO","description":"LUKSO is the next-gen blockchain designed with creative industries in mind. Imagine a digital realm where the spirit of Ethereum meets the world of fashion, art, and design. That\'s LUKSO for you!","sidebar":"userSidebar"},"user/staking/overview":{"id":"user/staking/overview","title":"Earn with Staking in Dappnode","description":"Decentralize Proof-of-Stake chains and earn","sidebar":"userSidebar"},"user/videos-and-tutorials/crash-course":{"id":"user/videos-and-tutorials/crash-course","title":"Crash Course","description":"Want to learn more about Dappnode through video tutorials? Check out our Dappnode Driving School!","sidebar":"userSidebar"},"user/videos-and-tutorials/driving-school/configuration":{"id":"user/videos-and-tutorials/driving-school/configuration","title":"2. Configuring your Dappnode","description":"We recommend going through Initial Setup of Dappnode Driving School before watching these videos, as these videos expect you to have a basic understanding of how your Dappnode works and how to access it.","sidebar":"userSidebar"},"user/videos-and-tutorials/driving-school/initial-setup":{"id":"user/videos-and-tutorials/driving-school/initial-setup","title":"1. Initial Dappnode Setup","description":"Welcome to Dappnode Driving School! Here you\'ll find a series of videos that will guide you through the initial setup process. From booting Dappnode from ISO and accessing it through VPN, to setting up your Ethereum node, we\'ve got you covered.","sidebar":"userSidebar"},"user/videos-and-tutorials/guides/connect-node":{"id":"user/videos-and-tutorials/guides/connect-node","title":"How to Connect to My Blockchain Node","description":"When you\'ve set up your Dappnode, you might want to connect various applications to your blockchain node. This process can vary depending on which blockchain you\'ve selected. Below is a guide on how to do this:","sidebar":"userSidebar"},"user/videos-and-tutorials/guides/migrating-from-avado":{"id":"user/videos-and-tutorials/guides/migrating-from-avado","title":"Transitioning To Dappnode","description":"Important: Before following this guide to install DappnodeOS on your Avado device, make sure to first backup any data if you are running a validator or any other dApp.","sidebar":"userSidebar"},"user/videos-and-tutorials/overview":{"id":"user/videos-and-tutorials/overview","title":"Videos and Tutorials","description":"Welcome to the Videos and Tutorials section! Here, you\'ll find a curated list of videos and written tutorials designed to help you get the most out of Dappnode. Whether you\'re a beginner or an advanced user, there\'s something here for everyone."}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.1e2aba44.js b/assets/js/935f2afb.1e2aba44.js
deleted file mode 100644
index c0292d0b5..000000000
--- a/assets/js/935f2afb.1e2aba44.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"userSidebar":[{"type":"category","label":"Getting started","items":[{"type":"link","label":"Choose your path","href":"/docs/user/getting-started/choose-your-path","docId":"user/getting-started/choose-your-path","unlisted":false},{"type":"link","label":"Connect your Dappnode to the router","href":"/docs/user/getting-started/connect-dappnode-to-the-router","docId":"user/getting-started/connect-dappnode-to-the-router","unlisted":false},{"type":"link","label":"Access your Dappnode via WiFi","href":"/docs/user/getting-started/access-dappnode-via-wifi","docId":"user/getting-started/access-dappnode-via-wifi","unlisted":false},{"type":"link","label":"Register","href":"/docs/user/getting-started/register","docId":"user/getting-started/register","unlisted":false},{"type":"link","label":"Setup","href":"/docs/user/getting-started/setup","docId":"user/getting-started/setup","unlisted":false},{"type":"link","label":"Next steps","href":"/docs/user/getting-started/next-steps","docId":"user/getting-started/next-steps","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Access your dappnode","items":[{"type":"link","label":"Overview","href":"/docs/user/access-your-dappnode/overview","docId":"user/access-your-dappnode/overview","unlisted":false},{"type":"link","label":"Wi-Fi","href":"/docs/user/access-your-dappnode/wifi","docId":"user/access-your-dappnode/wifi","unlisted":false},{"type":"category","label":"VPN","items":[{"type":"link","label":"Overview","href":"/docs/user/access-your-dappnode/vpn/overview","docId":"user/access-your-dappnode/vpn/overview","unlisted":false},{"type":"link","label":"Wireguard","href":"/docs/user/access-your-dappnode/vpn/wireguard","docId":"user/access-your-dappnode/vpn/wireguard","unlisted":false},{"type":"link","label":"OpenVPN","href":"/docs/user/access-your-dappnode/vpn/openvpn","docId":"user/access-your-dappnode/vpn/openvpn","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Terminal (Advanced)","href":"/docs/user/access-your-dappnode/terminal","docId":"user/access-your-dappnode/terminal","unlisted":false},{"type":"link","label":"Local Proxy (Recovery)","href":"/docs/user/access-your-dappnode/local","docId":"user/access-your-dappnode/local","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Hardware","items":[{"type":"link","label":"Overview","href":"/docs/user/hardware/overview","docId":"user/hardware/overview","unlisted":false},{"type":"link","label":"Maintenance","href":"/docs/user/hardware/maintenance","docId":"user/hardware/maintenance","unlisted":false},{"type":"link","label":"Temperature","href":"/docs/user/hardware/temperature","docId":"user/hardware/temperature","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Staking","items":[{"type":"link","label":"Earn with Staking","href":"/docs/user/staking/overview","docId":"user/staking/overview","unlisted":false},{"type":"category","label":"Ethereum","items":[{"type":"category","label":"Solo Staking","items":[{"type":"link","label":"Mainnet","href":"/docs/user/staking/ethereum/solo/mainnet","docId":"user/staking/ethereum/solo/mainnet","unlisted":false},{"type":"link","label":"Testnet","href":"/docs/user/staking/ethereum/solo/holesky","docId":"user/staking/ethereum/solo/holesky","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"LSD Pools","items":[{"type":"category","label":"Lido CSM","items":[{"type":"link","label":"Overview","href":"/docs/user/staking/ethereum/lsd-pools/lido/overview","docId":"user/staking/ethereum/lsd-pools/lido/overview","unlisted":false},{"type":"link","label":"Register as a Node Operator","href":"/docs/user/staking/ethereum/lsd-pools/lido/register","docId":"user/staking/ethereum/lsd-pools/lido/register","unlisted":false},{"type":"link","label":"I am already a Node Operator","href":"/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator","docId":"user/staking/ethereum/lsd-pools/lido/already-node-operator","unlisted":false},{"type":"link","label":"Notifications & Warnings","href":"/docs/user/staking/ethereum/lsd-pools/lido/notifications","docId":"user/staking/ethereum/lsd-pools/lido/notifications","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Rocketpool","href":"/docs/user/staking/ethereum/lsd-pools/rocketpool","docId":"user/staking/ethereum/lsd-pools/rocketpool","unlisted":false},{"type":"link","label":"Stakewise","href":"/docs/user/staking/ethereum/lsd-pools/stakewise","docId":"user/staking/ethereum/lsd-pools/stakewise","unlisted":false},{"type":"link","label":"Stakehouse","href":"/docs/user/staking/ethereum/lsd-pools/stakehouse","docId":"user/staking/ethereum/lsd-pools/stakehouse","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"DVT Technologies","items":[{"type":"link","label":"Obol","href":"/docs/user/staking/ethereum/dvt-technologies/obol-network","docId":"user/staking/ethereum/dvt-technologies/obol-network","unlisted":false},{"type":"link","label":"SSV","href":"/docs/user/staking/ethereum/dvt-technologies/ssv-network","docId":"user/staking/ethereum/dvt-technologies/ssv-network","unlisted":false},{"type":"link","label":"Diva","href":"/docs/user/staking/ethereum/dvt-technologies/diva","docId":"user/staking/ethereum/dvt-technologies/diva","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Gnosis Chain","items":[{"type":"link","label":"Gnosis Solo Staking","href":"/docs/user/staking/gnosis-chain/solo","docId":"user/staking/gnosis-chain/solo","unlisted":false},{"type":"link","label":"Gnosis Incentive Program","href":"/docs/user/staking/gnosis-chain/incentive-program","docId":"user/staking/gnosis-chain/incentive-program","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"LUKSO","items":[{"type":"link","label":"LUKSO Solo Staking","href":"/docs/user/staking/lukso/solo","docId":"user/staking/lukso/solo","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Rollups","items":[{"type":"link","label":"Overview","href":"/docs/user/rollups/overview","docId":"user/rollups/overview","unlisted":false},{"type":"link","label":"Optimism","href":"/docs/user/rollups/optimism","docId":"user/rollups/optimism","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Packages","items":[{"type":"category","label":"Understanding Dappnode Packages","items":[{"type":"link","label":"Overview","href":"/docs/user/packages/understanding-dappnode-packages/overview","docId":"user/packages/understanding-dappnode-packages/overview","unlisted":false},{"type":"link","label":"Info","href":"/docs/user/packages/understanding-dappnode-packages/info","docId":"user/packages/understanding-dappnode-packages/info","unlisted":false},{"type":"link","label":"Config","href":"/docs/user/packages/understanding-dappnode-packages/config","docId":"user/packages/understanding-dappnode-packages/config","unlisted":false},{"type":"link","label":"Network","href":"/docs/user/packages/understanding-dappnode-packages/network","docId":"user/packages/understanding-dappnode-packages/network","unlisted":false},{"type":"link","label":"Logs","href":"/docs/user/packages/understanding-dappnode-packages/logs","docId":"user/packages/understanding-dappnode-packages/logs","unlisted":false},{"type":"link","label":"Backup","href":"/docs/user/packages/understanding-dappnode-packages/backup","docId":"user/packages/understanding-dappnode-packages/backup","unlisted":false},{"type":"link","label":"File manager","href":"/docs/user/packages/understanding-dappnode-packages/file-manager","docId":"user/packages/understanding-dappnode-packages/file-manager","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Packages\' signature","href":"/docs/user/packages/signature","docId":"user/packages/signature","unlisted":false},{"type":"link","label":"DMS","href":"/docs/user/packages/dms","docId":"user/packages/dms","unlisted":false},{"type":"link","label":"Bitcoin","href":"/docs/user/packages/bitcoin","docId":"user/packages/bitcoin","unlisted":false},{"type":"link","label":"Eth Classic","href":"/docs/user/packages/ethclassic","docId":"user/packages/ethclassic","unlisted":false},{"type":"link","label":"Avalanche","href":"/docs/user/packages/avalanche","docId":"user/packages/avalanche","unlisted":false},{"type":"link","label":"Monero","href":"/docs/user/packages/monero","docId":"user/packages/monero","unlisted":false},{"type":"link","label":"Swarm","href":"/docs/user/packages/swarm","docId":"user/packages/swarm","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Repository","items":[{"type":"link","label":"Ethereum","href":"/docs/user/repository/ethereum","docId":"user/repository/ethereum","unlisted":false},{"type":"link","label":"IPFS","href":"/docs/user/repository/ipfs","docId":"user/repository/ipfs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Install","items":[{"type":"link","label":"Overview","href":"/docs/user/install/overview","docId":"user/install/overview","unlisted":false},{"type":"link","label":"ISO","href":"/docs/user/install/iso","docId":"user/install/iso","unlisted":false},{"type":"link","label":"Script","href":"/docs/user/install/script","docId":"user/install/script","unlisted":false},{"type":"link","label":"ARM","href":"/docs/user/install/arm","docId":"user/install/arm","unlisted":false},{"type":"link","label":"Dappnode commands","href":"/docs/user/install/dappnode-commands","docId":"user/install/dappnode-commands","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Ethical metrics","items":[{"type":"link","label":"Overview","href":"/docs/user/ethical-metrics/overview","docId":"user/ethical-metrics/overview","unlisted":false},{"type":"link","label":"Setting up Notifications","href":"/docs/user/ethical-metrics/setup","docId":"user/ethical-metrics/setup","unlisted":false},{"type":"link","label":"Metrics collected","href":"/docs/user/ethical-metrics/metrics","docId":"user/ethical-metrics/metrics","unlisted":false},{"type":"link","label":"Troubleshooting","href":"/docs/user/ethical-metrics/troubleshooting","docId":"user/ethical-metrics/troubleshooting","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Dappnode Cloud","items":[{"type":"link","label":"Overview","href":"/docs/user/dappnode-cloud/overview","docId":"user/dappnode-cloud/overview","unlisted":false},{"type":"category","label":"Cloud Providers","items":[{"type":"category","label":"AWS","items":[{"type":"link","label":"AWS Overview","href":"/docs/user/dappnode-cloud/providers/aws/overview","docId":"user/dappnode-cloud/providers/aws/overview","unlisted":false},{"type":"link","label":"How to set up an Instance","href":"/docs/user/dappnode-cloud/providers/aws/set-up-instance","docId":"user/dappnode-cloud/providers/aws/set-up-instance","unlisted":false},{"type":"link","label":"FAQs & Troubleshooting","href":"/docs/user/dappnode-cloud/providers/aws/faqs","docId":"user/dappnode-cloud/providers/aws/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"More coming soon","href":"/docs/user/dappnode-cloud/providers/coming-soon","docId":"user/dappnode-cloud/providers/coming-soon","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Videos and tutorials","items":[{"type":"category","label":"Driving School","items":[{"type":"link","label":"Initial setup","href":"/docs/user/videos-and-tutorials/driving-school/initial-setup","docId":"user/videos-and-tutorials/driving-school/initial-setup","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/user/videos-and-tutorials/driving-school/configuration","docId":"user/videos-and-tutorials/driving-school/configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Crash Course","href":"/docs/user/videos-and-tutorials/crash-course","docId":"user/videos-and-tutorials/crash-course","unlisted":false},{"type":"category","label":"Guides","items":[{"type":"link","label":"How to connect a wallet to my node","href":"/docs/user/videos-and-tutorials/guides/connect-node","docId":"user/videos-and-tutorials/guides/connect-node","unlisted":false},{"type":"link","label":"Migrating from Avado","href":"/docs/user/videos-and-tutorials/guides/migrating-from-avado","docId":"user/videos-and-tutorials/guides/migrating-from-avado","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQs","href":"/docs/user/faqs","docId":"user/faqs","unlisted":false}],"devSidebar":[{"type":"link","label":"Introduction","href":"/docs/dev","docId":"dev","unlisted":false},{"type":"category","label":"DappnodeSDK","items":[{"type":"link","label":"Overview","href":"/docs/dev/sdk/overview","docId":"dev/sdk/overview","unlisted":false},{"type":"link","label":"Commands","href":"/docs/dev/sdk/commands","docId":"dev/sdk/commands","unlisted":false},{"type":"link","label":"SDK-Publish","href":"/docs/dev/sdk/sdk-publish","docId":"dev/sdk/sdk-publish","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"File references","items":[{"type":"link","label":"Docker Compose","href":"/docs/dev/references/docker-compose","docId":"dev/references/docker-compose","unlisted":false},{"type":"link","label":"Dappnode Manifest","href":"/docs/dev/references/manifest","docId":"dev/references/manifest","unlisted":false},{"type":"link","label":"Setup Wizard","href":"/docs/dev/references/setup-wizard","docId":"dev/references/setup-wizard","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Package Development","items":[{"type":"link","label":"Overview","href":"/docs/dev/package-development/overview","docId":"dev/package-development/overview","unlisted":false},{"type":"link","label":"Single Configuration","href":"/docs/dev/package-development/single-configuration","docId":"dev/package-development/single-configuration","unlisted":false},{"type":"link","label":"Multi-Configuration","href":"/docs/dev/package-development/multi-configuration","docId":"dev/package-development/multi-configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Github Actions","href":"/docs/dev/github-actions","docId":"dev/github-actions","unlisted":false}],"smoothSidebar":[{"type":"link","label":"Smooth","href":"/docs/smooth","docId":"smooth","unlisted":false},{"type":"category","label":"Deep dive into Smooth","items":[{"type":"link","label":"Overview","href":"/docs/smooth/deep-dive-into-smooth/overview","docId":"smooth/deep-dive-into-smooth/overview","unlisted":false},{"type":"link","label":"Rewards","href":"/docs/smooth/deep-dive-into-smooth/rewards","docId":"smooth/deep-dive-into-smooth/rewards","unlisted":false},{"type":"link","label":"Validator States","href":"/docs/smooth/deep-dive-into-smooth/states","docId":"smooth/deep-dive-into-smooth/states","unlisted":false},{"type":"link","label":"Oracle & Smart Contract","href":"/docs/smooth/deep-dive-into-smooth/oracle-sm","docId":"smooth/deep-dive-into-smooth/oracle-sm","unlisted":false},{"type":"link","label":"Avoid proposing Vanilla Blocks","href":"/docs/smooth/deep-dive-into-smooth/vanilla-blocks","docId":"smooth/deep-dive-into-smooth/vanilla-blocks","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Subscribe to Smooth!","items":[{"type":"link","label":"Overview","href":"/docs/smooth/subscribe-to-smooth/overview","docId":"smooth/subscribe-to-smooth/overview","unlisted":false},{"type":"link","label":"Automatic subscription","href":"/docs/smooth/subscribe-to-smooth/automatic","docId":"smooth/subscribe-to-smooth/automatic","unlisted":false},{"type":"link","label":"Manual subscription","href":"/docs/smooth/subscribe-to-smooth/manual","docId":"smooth/subscribe-to-smooth/manual","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Unsubscribe from Smooth","href":"/docs/smooth/unsubscribe-from-smooth","docId":"smooth/unsubscribe-from-smooth","unlisted":false},{"type":"link","label":"FAQ / Glossary","href":"/docs/smooth/faq-glossary","docId":"smooth/faq-glossary","unlisted":false}],"daoSidebar":[{"type":"link","label":"DAO","href":"/docs/dao","docId":"dao","unlisted":false},{"type":"link","label":"The NODE Economy","href":"/docs/dao/node-basics","docId":"dao/node-basics","unlisted":false},{"type":"link","label":"Liquidity Mining","href":"/docs/dao/liquidity-mining","docId":"dao/liquidity-mining","unlisted":false},{"type":"link","label":"Dappnode DAO FAQ","href":"/docs/dao/faq","docId":"dao/faq","unlisted":false}]},"docs":{"dao":{"id":"dao","title":"DAO","description":"DAO information","sidebar":"daoSidebar"},"dao/faq":{"id":"dao/faq","title":"Dappnode DAO FAQ","description":"What is a DAO?","sidebar":"daoSidebar"},"dao/liquidity-mining":{"id":"dao/liquidity-mining","title":"Liquidity Mining","description":"Liquidity Mining (LM) launched on Jul 17 2021, 2000 GMT. 5.5% of the total token supply, 5.5 Million NODE, has been allocated to the first LM round of 6 months. NODE reward distribution for the 4 pools available is as follows:","sidebar":"daoSidebar"},"dao/node-basics":{"id":"dao/node-basics","title":"The NODE Economy","description":"NODE Basics","sidebar":"daoSidebar"},"dao/node-drop":{"id":"dao/node-drop","title":"NODEdrop","description":"\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\""},"dao/node-stream":{"id":"dao/node-stream","title":"NODEstream","description":"\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\""},"dev":{"id":"dev","title":"Welcome to the Developer Documentation!","description":"Welcome to the Dappnode\'s developer docs! This documentation is your comprehensive guide to using the tools and resources that enable you to create, deploy, and manage your own custom dappnode packages (DNP). Whether you\'re new to the project or an experienced developer, this documentation will help you navigate the intricacies of developing in the dappnode environment.","sidebar":"devSidebar"},"dev/github-actions":{"id":"dev/github-actions","title":"GitHub Actions for Dappnode Packages","description":"GitHub Actions help automate workflows around your projects on GitHub. For Dappnode packages, we utilize specific GitHub Actions to manage updates and releases.","sidebar":"devSidebar"},"dev/package-development/multi-configuration":{"id":"dev/package-development/multi-configuration","title":"Multi-Config Package Development","description":"This guide will walk you through the steps to develop a multi-config Dappnode package, allowing you to create multiple package configurations from a single source. We\'ll use the Lodestar Generic package as a reference, which builds multiple variants for different networks like Mainnet, Holesky, and Gnosis.","sidebar":"devSidebar"},"dev/package-development/overview":{"id":"dev/package-development/overview","title":"Package Development","description":"Welcome to the Package Development section! This guide will help you create your own Dappnode packages. In Dappnode, packages are applications that you can download and install on your Dappnode machine, allowing you to enhance its functionality.","sidebar":"devSidebar"},"dev/package-development/single-configuration":{"id":"dev/package-development/single-configuration","title":"Single-Variant Package Development","description":"This guide will walk you through the steps to develop a single-variant Dappnode package using a simple example. We\'ll start with initializing a basic package and progress to a more complex setup, using the Holesky Geth package as a reference.","sidebar":"devSidebar"},"dev/references/docker-compose":{"id":"dev/references/docker-compose","title":"Docker compose file","description":"Dappnode packages are built upon Docker containers. The heart of defining how these containers run and interact lies in the docker-compose.yml file. In this guide, we will explain the typical structure of the docker-compose.yml file for a Dappnode package.","sidebar":"devSidebar"},"dev/references/manifest":{"id":"dev/references/manifest","title":"Dappnode Package (DNP) manifest","description":"The Dappnode Package manifest defines all the necessary information for a Dappnode to understand this package:","sidebar":"devSidebar"},"dev/references/setup-wizard":{"id":"dev/references/setup-wizard","title":"Wizard Reference","description":"The setup wizard for Dappnode packages helps automate the package customization and improve its user experience. You can allow users to conveniently edit environment variables, port mappings, and upload files while interacting with a simple web form, right before installing the package.","sidebar":"devSidebar"},"dev/sdk/commands":{"id":"dev/sdk/commands","title":"Main commands","description":"This page covers the top three functionalities of DappnodeSDK: init, build, and publish. Each command plays a crucial role in the development and deployment process of dappnode packages (DNPs).","sidebar":"devSidebar"},"dev/sdk/overview":{"id":"dev/sdk/overview","title":"DappnodeSDK","description":"The DappnodeSDK dappnodesdk is a tool that makes creating and publishing new Dappnode packages as simple as possible. It helps to initialize, build, test, and publish the new package/repo to an APM tracked on the Ethereum Mainnet.","sidebar":"devSidebar"},"dev/sdk/sdk-publish":{"id":"dev/sdk/sdk-publish","title":"SDK-Publish","description":"The SDK-Publish tool is a component of the Dappnode Software Development Kit (dappnodesdk). This tool simplifies the process of signing and publishing Dappnode package releases, utilizing your wallet for secure and efficient transaction management.","sidebar":"devSidebar"},"smooth":{"id":"smooth","title":"Smooth","description":"Smooth introduction","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/oracle-sm":{"id":"smooth/deep-dive-into-smooth/oracle-sm","title":"Smooth\'s architecture","description":"Smooth is composed of two main components: the Oracle and the Smart Contract. These two components work together to track validators and distribute rewards fairly. Both are open source and indispensable to the functioning of Smooth. While the Smart Contract serves to track all the events related to the pool onchain (subscriptions, unsubscriptions, block proposals, etc.), the Oracle is responsible for computing the rewards of each validator.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/overview":{"id":"smooth/deep-dive-into-smooth/overview","title":"Deep Dive into Smooth!","description":"In this section, you will find an in-depth explanation on how Smooth works. This includes its different components, all states possible of a subscribed validator, and much more!","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/rewards":{"id":"smooth/deep-dive-into-smooth/rewards","title":"Rewards","description":"Receiving and distributing rewards is one of the core functionalities of Smooth. In this section we will explain how rewards are handled by Smooth and how they are distributed to validators, as well as how users can claim their rewards.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/states":{"id":"smooth/deep-dive-into-smooth/states","title":"Smooth Validator States","description":"A Smooth validator can be in multiple states depending on its behavior. In this section we will explain all possible states a validator can have, the consequences of being each state, and how a validator can transition from one state to another.","sidebar":"smoothSidebar"},"smooth/deep-dive-into-smooth/vanilla-blocks":{"id":"smooth/deep-dive-into-smooth/vanilla-blocks","title":"What is a vanilla block?","description":"What is a vanilla block?","sidebar":"smoothSidebar"},"smooth/faq-glossary":{"id":"smooth/faq-glossary","title":"FAQ & Glossary","description":"FAQ","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/automatic":{"id":"smooth/subscribe-to-smooth/automatic","title":"Automatic Subscription","description":"This is the simplest way to subscribe to Smooth. It consists of changing the fee recipient of your validator to Smooth\'s address and subscribing automatically when proposing your next block.","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/manual":{"id":"smooth/subscribe-to-smooth/manual","title":"Manual Subscription","description":"Would you rather not wait until your next proposed block to subscribe and begin earning rewards? You can take a proactive step and opt for manual subscription right away. During this process, you\'ll change your validator\'s fee recipient to Smooth\'s address, just like in the automatic subscription. However, instead of waiting for your next proposed block, you\'ll immediately start accumulating rewards from Smooth.","sidebar":"smoothSidebar"},"smooth/subscribe-to-smooth/overview":{"id":"smooth/subscribe-to-smooth/overview","title":"Subscribing to Smooth","description":"Hello! In this section you will find all the information on how to subscribe your Validators to Smooth. Even though the process is simple, it is important to follow the steps carefully.","sidebar":"smoothSidebar"},"smooth/unsubscribe-from-smooth":{"id":"smooth/unsubscribe-from-smooth","title":"Unsubscribing from Smooth.","description":"Unsubscribing from Smooth is as simple as subscribing to it. You can unsubscribe from Smooth at any time, it is done through Smooth\'s website and it only takes one simple transaction.","sidebar":"smoothSidebar"},"user/access-your-dappnode/local":{"id":"user/access-your-dappnode/local","title":"Local Proxy Access to Dappnode","description":"The local proxy method provides a way to access your Dappnode from within the same local network without any previous configuration required. However, it\'s essential to understand that due to certain network incompatibilities, this method might not work for all users.","sidebar":"userSidebar"},"user/access-your-dappnode/overview":{"id":"user/access-your-dappnode/overview","title":"\ud83c\udf10 Access your Dappnode","description":"Dappnode is made to work on a dedicated computer, and its main control panel, the Dappmanager, is accessed from another device via my.dappnode , as it is meant to be installed over an operating system that does not include a graphical interface.","sidebar":"userSidebar"},"user/access-your-dappnode/terminal":{"id":"user/access-your-dappnode/terminal","title":"Terminal Access to Dappnode","description":"Accessing the terminal of your Dappnode, often referred to as the command-line interface (CLI), provides deep control and management capabilities. However, this method is considered advanced and requires familiarity with command line interactions. Incorrect or misguided commands can lead to unintended changes or potential system damage.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/openvpn":{"id":"user/access-your-dappnode/vpn/openvpn","title":"OpenVPN Access to Dappnode","description":"OpenVPN is a widely-accepted VPN protocol known for its reliability and high-security standards. Here\'s how you can set it up with Dappnode.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/overview":{"id":"user/access-your-dappnode/vpn/overview","title":"VPN Access to Dappnode","description":"Virtual Private Network (VPN) is a robust method for accessing your Dappnode. It ensures a secure and encrypted connection between your device and the Dappnode, allowing you to manage your Dappnode from virtually anywhere. Depending on your needs and preferences, Dappnode offers support for two primary VPN technologies: WireGuard and OpenVPN.","sidebar":"userSidebar"},"user/access-your-dappnode/vpn/wireguard":{"id":"user/access-your-dappnode/vpn/wireguard","title":"WireGuard Access to Dappnode","description":"WireGuard is a modern, high-performance VPN protocol that offers a simple and streamlined approach for securely accessing your Dappnode. This guide will walk you through setting up WireGuard with your Dappnode.","sidebar":"userSidebar"},"user/access-your-dappnode/wifi":{"id":"user/access-your-dappnode/wifi","title":"Wi-Fi Access to Dappnode","description":"If you bought a Dappnode from our store, or installed Dappnode on a computer with a built-in Wi-Fi chip, you can easily connect to the Dappmanager (Dappnode web UI) using the Dappnode\'s Wi-Fi hotspot.","sidebar":"userSidebar"},"user/dappnode-cloud/overview":{"id":"user/dappnode-cloud/overview","title":"What is Dappnode Cloud?","description":"Dappnode Cloud is a service that allows users to deploy a Dappnode in a cloud provider so it can be tested without the need for physical hardware. We provide easy pre-configured instances for the main cloud providers (AWS for now, more to come later) to continue to make the deployment of web3 infrastructure accessible and hassle-free for everyone. It consists of a Dappnode image deployed on a machine instance from a cloud provider, eliminating the need to invest in hardware in order to test Dappnode.","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/faqs":{"id":"user/dappnode-cloud/providers/aws/faqs","title":"FAQs & Troubleshooting","description":"Which machine should I choose?","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/overview":{"id":"user/dappnode-cloud/providers/aws/overview","title":"AWS","description":"Amazon Web Services (AWS) is a cloud computing platform provided by Amazon. It offers a wide range of services, including computing power, storage options, and networking capabilities, enabling users to build and deploy applications and services efficiently.","sidebar":"userSidebar"},"user/dappnode-cloud/providers/aws/set-up-instance":{"id":"user/dappnode-cloud/providers/aws/set-up-instance","title":"How to Set Up an Instance","description":"To launch a Dappnode AMI instance, follow these steps:","sidebar":"userSidebar"},"user/dappnode-cloud/providers/coming-soon":{"id":"user/dappnode-cloud/providers/coming-soon","title":"More coming soon","description":"We are aiming to deploy Dappnode Images in more cloud providers in a nearly future.","sidebar":"userSidebar"},"user/ethical-metrics/metrics":{"id":"user/ethical-metrics/metrics","title":"Metrics Collected by Ethical Metrics","description":"Dappnode has absolutely no hidden telemetry and is completely private by design. We were reluctant of setting up a monitoring service because we did NOT want to collect any data from our users. Because of our community\'s continuous requests to offer alerts, we came up with a solution that doesn\'t compromise your privacy.","sidebar":"userSidebar"},"user/ethical-metrics/overview":{"id":"user/ethical-metrics/overview","title":"Ethical Metrics","description":"Ethical Metrics requires the Dappnode Monitoring Service (DMS) and Dappnode Exporter as dependencies.","sidebar":"userSidebar"},"user/ethical-metrics/setup":{"id":"user/ethical-metrics/setup","title":"Setting up Ethical Metrics","description":"We highly recommend utilizing the Telegram channel option in addition to or instead of relying solely on email notifications.","sidebar":"userSidebar"},"user/ethical-metrics/troubleshooting":{"id":"user/ethical-metrics/troubleshooting","title":"Troubleshooting","description":"Experiencing trouble when setting your notifications up? Check this FAQ. If your issue isn\'t listed, please pay us a visit in the Dappnode Discord and we\'ll be happy to assist you!","sidebar":"userSidebar"},"user/faqs":{"id":"user/faqs","title":"FAQs","description":"How can I start validating?","sidebar":"userSidebar"},"user/getting-started/access-dappnode-via-wifi":{"id":"user/getting-started/access-dappnode-via-wifi","title":"Access Dappnode via Wi-Fi","description":"After connecting your Dappnode to the router and power, and turning it on, it\'s time to connect to it.","sidebar":"userSidebar"},"user/getting-started/choose-your-path":{"id":"user/getting-started/choose-your-path","title":"Choose your path","description":"Regardless of how you wish to utilize Dappnode, taking the initiative to contribute to decentralization and earning rewards is commendable. Embark on your desired path and experience the full potential of Dappnode.","sidebar":"userSidebar"},"user/getting-started/connect-dappnode-to-the-router":{"id":"user/getting-started/connect-dappnode-to-the-router","title":"Connect your dappnode to the router and power","description":"Dappnode offers a seamless plug-and-play experience. For optimal performance and to ensure smooth operation, please connect your Dappnode to your router and enable UPnP settings within the router.","sidebar":"userSidebar"},"user/getting-started/next-steps":{"id":"user/getting-started/next-steps","title":"Next Steps","description":"Now that your DAppNode is set up and ready to go, it\'s time to explore further configurations and features to get the most out of your experience. Here are some of the most common next steps:","sidebar":"userSidebar"},"user/getting-started/register":{"id":"user/getting-started/register","title":"Register","description":"1. Register as New User","sidebar":"userSidebar"},"user/getting-started/setup":{"id":"user/getting-started/setup","title":"Setup","description":"Setting up Dappnode is a straightforward process. This guide will walk you through configuring your Dappnode for the first time.","sidebar":"userSidebar"},"user/hardware/maintenance":{"id":"user/hardware/maintenance","title":"Maintenance","description":"This section will cover four different approaches to servicing your hardware. The order is by level of difficulty from easiest to hardest. Remember that if you have any questions they\'re always welcome in our Discord server.","sidebar":"userSidebar"},"user/hardware/overview":{"id":"user/hardware/overview","title":"Hardware","description":"In this section you will find information related to the hardware of the Dappnode\'s host machine. If you had noticed any issue with it and have tried some steps provided by the Dappnode community and/or staff without success, this section of the Dappnode documentation will help you solving those that are on the hardware side of things.","sidebar":"userSidebar"},"user/hardware/temperature":{"id":"user/hardware/temperature","title":"Temperature","description":"Keeping a close eye to your Dappnode\'s temperature is part of the Node Runner\'s basic good practices. Dappnode provides you with metrics \ud83d\udcca in the main dashboard to do so.","sidebar":"userSidebar"},"user/install/arm":{"id":"user/install/arm","title":"Install - ARM","description":"Hardware Recommendations","sidebar":"userSidebar"},"user/install/dappnode-commands":{"id":"user/install/dappnode-commands","title":"Dappnode commands","description":"Dappnode comes with a set of commands that can be used to manage the system. These commands can be used directly from the command line.","sidebar":"userSidebar"},"user/install/iso":{"id":"user/install/iso","title":"ISO Installation","description":"When you want to perform a clean installation by installing the base operating system and Dappnode. Installing from an ISO will wipe the machine data and install Dappnode over Debian.","sidebar":"userSidebar"},"user/install/overview":{"id":"user/install/overview","title":"Installation Overview","description":"Specifications & Minimum Requirements","sidebar":"userSidebar"},"user/install/script":{"id":"user/install/script","title":"Script installation","description":"You can install Dappnode using the installation script. In this case, we recommend you use Ubuntu or Debian as your operating system.","sidebar":"userSidebar"},"user/packages/avalanche":{"id":"user/packages/avalanche","title":"Avalanche","description":"Avalanche: A Revolutionary Consensus Protocol","sidebar":"userSidebar"},"user/packages/bitcoin":{"id":"user/packages/bitcoin","title":"Bitcoin","description":"Exploring Bitcoin: The Pioneer of Cryptocurrency","sidebar":"userSidebar"},"user/packages/dms":{"id":"user/packages/dms","title":"Dappnode Monitoring Service (DMS)","description":"As a Dappnode user, there are times when having insights into the performance of your packages or your whole system can be incredibly beneficial. This means understanding the condition or \\"health\\" of your packages, the utilization of your computer resources such as CPU, RAM, and disk space, as well as monitoring network traffic flow. Yet, managing all of these aspects can become complex and tedious, even for those with experience. This is precisely where the Dappnode Monitoring Service (DMS) steps in to simplify matters.","sidebar":"userSidebar"},"user/packages/ethclassic":{"id":"user/packages/ethclassic","title":"Ethereum Classic","description":"Introducing Ethereum Classic: Preserving Blockchain Principles","sidebar":"userSidebar"},"user/packages/monero":{"id":"user/packages/monero","title":"Monero","description":"Introducing Monero: A Privacy-Centric Cryptocurrency","sidebar":"userSidebar"},"user/packages/signature":{"id":"user/packages/signature","title":"Packages\' Signature","description":"Dappnode\'s Packages Signatures","sidebar":"userSidebar"},"user/packages/swarm":{"id":"user/packages/swarm","title":"Guide to Installing Bee Node on Dappnode","description":"Introduction to Swarm","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/backup":{"id":"user/packages/understanding-dappnode-packages/backup","title":"Backup","description":"This option will be available in packages that generate any kind of local database that includes sensitive information such as validator keystores. You\'ll have two very self-explanatory options: \\"Backup Now\\" and \\"Restore Backup\\".","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/config":{"id":"user/packages/understanding-dappnode-packages/config","title":"Config","description":"The Config section provides access to the package\'s settings, available in both simple and advanced modes. You can switch to the advanced mode by clicking the option in the lower-right corner of the screen when it is available. This flexibility allows users to customize package parameters according to their needs, from basic adjustments to more detailed configurations.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/file-manager":{"id":"user/packages/understanding-dappnode-packages/file-manager","title":"File Manager","description":"Also handy whenever your package has a database you\'ll need to access or modify, but without going through a terminal. Download and upload files in an easy way with the File Manager.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/info":{"id":"user/packages/understanding-dappnode-packages/info","title":"Info","description":"The Info section provides a comprehensive overview of the package\'s status and essential details. This section is crucial for understanding the current state of the package and managing its basic operations. Below are the key features you\'ll find in the Info section:","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/logs":{"id":"user/packages/understanding-dappnode-packages/logs","title":"Logs","description":"This is a great section for finding out something that is not working in your package or to look for both expected and unexpected behavior. Packages with multiple services will give you the option to switch logs in the top \\"Service\\" bar, something common for consensus clients for example, which usually run one service for the beacon-chain and another one for validator. Whenever you request for support in the Dappnode community, keep these handy!","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/network":{"id":"user/packages/understanding-dappnode-packages/network","title":"Network","description":"The Network section allows you to manage and configure the network settings for your packages. This includes adjusting network settings for individual services, changing port mappings, and setting up domain mappings to expose your package to the internet.","sidebar":"userSidebar"},"user/packages/understanding-dappnode-packages/overview":{"id":"user/packages/understanding-dappnode-packages/overview","title":"Dappnode Packages","description":"What are Dappnode packages? What features do they offer? How are they managed?","sidebar":"userSidebar"},"user/repository/ethereum":{"id":"user/repository/ethereum","title":"Ethereum repository","description":"Dappnode uses smart contracts to distribute the dappnode packages available in the Dappstore. The smart contracts are deployed in the Ethereum blockchain and the Dappnode client interacts with them to get the list of available packages and to download them. Your dappnode will need a connection to an Ethereum node in order to read the smart contracts and download the packages. There are two ways to establish this connection:","sidebar":"userSidebar"},"user/repository/ipfs":{"id":"user/repository/ipfs","title":"IPFS repository","description":"Dappnode leverages IPFS for distributing packages available in the Dappstore. To download these packages, your Dappnode requires a connection to an IPFS node. When it comes to connecting to the IPFS network, you have two primary choices:","sidebar":"userSidebar"},"user/rollups/optimism":{"id":"user/rollups/optimism","title":"Optimism Rollup","description":"Optimism is Ethereum\'s Layer 2 solution, leveraging Optimistic Rollups to enhance transaction speeds and lower costs. It conducts transactions off-chain, reconciling final states on the main Ethereum chain, all while preserving compatibility with Ethereum smart contracts.","sidebar":"userSidebar"},"user/rollups/overview":{"id":"user/rollups/overview","title":"Ethereum Rollups: An Overview","description":"Rollups are advanced layer-2 scaling solutions designed to increase the throughput of the Ethereum network. By executing and storing transaction data off the main Ethereum chain while keeping a cryptographic commitment on-chain, Rollups enhance scalability and reduce fees. Rollups can be broadly categorized into two types: Optimistic Rollups and zk-Rollups, each with its unique approach and trade-offs.","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/diva":{"id":"user/staking/ethereum/dvt-technologies/diva","title":"Diva package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/obol-network":{"id":"user/staking/ethereum/dvt-technologies/obol-network","title":"Obol Distributed Validator package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/dvt-technologies/ssv-network":{"id":"user/staking/ethereum/dvt-technologies/ssv-network","title":"SSV Distributed Validator package for Dappnode","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/already-node-operator":{"id":"user/staking/ethereum/lsd-pools/lido/already-node-operator","title":"Already a node operator","description":"This document provides detailed instructions for existing Node Operators on integrating their setup with the Lido Community Staking Module (CSM) via Dappnode. By following these steps, you can efficiently manage your validators and ensure proper functionality within the Lido protocol.","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/notifications":{"id":"user/staking/ethereum/lsd-pools/lido/notifications","title":"Notifications & Warnings","description":"The DAppNodePackage-lido-csm provides notifications and warnings to help you monitor your infraestructure and validator performance. You will be able to setup your notifications either during the onboarding process if you are registering as a new Node Operator and from the UI navigating to /notifications.","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/overview":{"id":"user/staking/ethereum/lsd-pools/lido/overview","title":"Lido Community Staking Module (CSM)","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/lido/register":{"id":"user/staking/ethereum/lsd-pools/lido/register","title":"**Become a Lido Node Operator with Dappnode**","description":"Dappnode provides an easy-to-use and intuitive interface for most of the infrastructure needed to become a Lido Node Operator. The process is straightforward and requires only a few steps to set up a node operator and start earning rewards. An overview of the process is how the Lido CSM UI will greet you when first connecting your wallet to the dApp:","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/rocketpool":{"id":"user/staking/ethereum/lsd-pools/rocketpool","title":"Rocketpool","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/stakehouse":{"id":"user/staking/ethereum/lsd-pools/stakehouse","title":"Stakehouse","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/lsd-pools/stakewise":{"id":"user/staking/ethereum/lsd-pools/stakewise","title":"StakeWise","description":"---","sidebar":"userSidebar"},"user/staking/ethereum/solo/holesky":{"id":"user/staking/ethereum/solo/holesky","title":"Holesky Testnet","description":"The Holesky testnet is a testnet for the Ethereum ecosystem, serving as a sandbox for users and developers alike.","sidebar":"userSidebar"},"user/staking/ethereum/solo/mainnet":{"id":"user/staking/ethereum/solo/mainnet","title":"Ethereum mainnet","description":"Ethereum stands as a titan in the realm of smart contract platforms. Its monumental shift from Proof of Work (PoW) to Proof of Stake (PoS) has opened up opportunities for individuals to participate in Ethereum\'s block production by staking ETH.","sidebar":"userSidebar"},"user/staking/gnosis-chain/incentive-program":{"id":"user/staking/gnosis-chain/incentive-program","title":"Gnosis Chain Incentive Program","description":"Gnosis Chain is a Proof of Stake blockchain that uses the GNO token for staking. The Gnosis incentive program rewards validators for their work in the network. It is designed to incentivize validators to participate and secure the network.","sidebar":"userSidebar"},"user/staking/gnosis-chain/solo":{"id":"user/staking/gnosis-chain/solo","title":"Gnosis Chain","description":"Gnosis Chain stands as a sentinel, functioning as a canary chain for Ethereum. It\'s operated and nurtured by the GnosisDAO community. With over 10% of its validators being home stakers via Dappnode, it\'s a testament to its popularity and accessibility.","sidebar":"userSidebar"},"user/staking/lukso/solo":{"id":"user/staking/lukso/solo","title":"LUKSO","description":"LUKSO is the next-gen blockchain designed with creative industries in mind. Imagine a digital realm where the spirit of Ethereum meets the world of fashion, art, and design. That\'s LUKSO for you!","sidebar":"userSidebar"},"user/staking/overview":{"id":"user/staking/overview","title":"Earn with Staking in Dappnode","description":"Decentralize Proof-of-Stake chains and earn","sidebar":"userSidebar"},"user/videos-and-tutorials/crash-course":{"id":"user/videos-and-tutorials/crash-course","title":"Crash Course","description":"Want to learn more about Dappnode through video tutorials? Check out our Dappnode Driving School!","sidebar":"userSidebar"},"user/videos-and-tutorials/driving-school/configuration":{"id":"user/videos-and-tutorials/driving-school/configuration","title":"2. Configuring your Dappnode","description":"We recommend going through Initial Setup of Dappnode Driving School before watching these videos, as these videos expect you to have a basic understanding of how your Dappnode works and how to access it.","sidebar":"userSidebar"},"user/videos-and-tutorials/driving-school/initial-setup":{"id":"user/videos-and-tutorials/driving-school/initial-setup","title":"1. Initial Dappnode Setup","description":"Welcome to Dappnode Driving School! Here you\'ll find a series of videos that will guide you through the initial setup process. From booting Dappnode from ISO and accessing it through VPN, to setting up your Ethereum node, we\'ve got you covered.","sidebar":"userSidebar"},"user/videos-and-tutorials/guides/connect-node":{"id":"user/videos-and-tutorials/guides/connect-node","title":"How to Connect to My Blockchain Node","description":"When you\'ve set up your Dappnode, you might want to connect various applications to your blockchain node. This process can vary depending on which blockchain you\'ve selected. Below is a guide on how to do this:","sidebar":"userSidebar"},"user/videos-and-tutorials/guides/migrating-from-avado":{"id":"user/videos-and-tutorials/guides/migrating-from-avado","title":"Transitioning To Dappnode","description":"Important: Before following this guide to install DappnodeOS on your Avado device, make sure to first backup any data if you are running a validator or any other dApp.","sidebar":"userSidebar"},"user/videos-and-tutorials/overview":{"id":"user/videos-and-tutorials/overview","title":"Videos and Tutorials","description":"Welcome to the Videos and Tutorials section! Here, you\'ll find a curated list of videos and written tutorials designed to help you get the most out of Dappnode. Whether you\'re a beginner or an advanced user, there\'s something here for everyone."}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/b3edc04f.99c2168f.js b/assets/js/b3edc04f.99c2168f.js
new file mode 100644
index 000000000..4775858b1
--- /dev/null
+++ b/assets/js/b3edc04f.99c2168f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[4034],{6778:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=s(5893),i=s(1151);const a={title:"Publish your packages seamlessly"},o="Publish your packages seamlessly",c={id:"dev/package-publishing/publish-packages-clients",title:"Publish your packages seamlessly",description:"The aim of this guide is to help you publish the new packages of your product in Dappnode seamlessly. We created a new UI to ease the publication of your packages in a few minutes.",source:"@site/docs/dev/package-publishing/publish-packages-clients.md",sourceDirName:"dev/package-publishing",slug:"/dev/package-publishing/publish-packages-clients",permalink:"/docs/dev/package-publishing/publish-packages-clients",draft:!1,unlisted:!1,editUrl:"https://github.com/dappnode/DappnodeDocs/edit/master/docs/dev/package-publishing/publish-packages-clients.md",tags:[],version:"current",frontMatter:{title:"Publish your packages seamlessly"},sidebar:"devSidebar",previous:{title:"Multi-Config Package Development",permalink:"/docs/dev/package-development/multi-configuration"},next:{title:"GitHub Actions for Dappnode Packages",permalink:"/docs/dev/github-actions"}},l={},p=[{value:"Publishing process",id:"publishing-process",level:3}];function r(e){const t={a:"a",h1:"h1",h3:"h3",img:"img",p:"p",strong:"strong",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"publish-your-packages-seamlessly",children:"Publish your packages seamlessly"}),"\n",(0,n.jsx)(t.p,{children:"The aim of this guide is to help you publish the new packages of your product in Dappnode seamlessly. We created a new UI to ease the publication of your packages in a few minutes."}),"\n",(0,n.jsxs)("aside",{children:[(0,n.jsx)(t.p,{children:"\ud83d\udc40"}),(0,n.jsx)(t.p,{children:"In this guide we are using images of a test repository to exemplify the process of publishing the packages. The actual screens may vary slightly."})]}),"\n",(0,n.jsx)(t.h3,{id:"publishing-process",children:"Publishing process"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 1."})," Go to ",(0,n.jsx)(t.a,{href:"https://github.com/dappnode",children:"Dappnode Github"})," and search for the generic repository of your product. You will find it with the name of ",(0,n.jsx)(t.strong,{children:"DAppNodePackage-yourproduct-generic."})]}),"\n",(0,n.jsx)(t.p,{children:"If your product is not listed and you want it to be included in Dappnode, contact us in Discord or Telegram."}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 2."})," Click on the ",(0,n.jsx)(t.strong,{children:"Releases"})," title section on the right side column (highlighted in red)"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step2",src:s(485).Z+"",width:"2878",height:"1374"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 3."})," In the releases section you can see all the packages of your product in the different blockchains. Select the package and click on \ud83d\udce3\xa0Publish."]}),"\n",(0,n.jsx)(t.p,{children:"Ideally you should have tested the package before publishing. You can use the IPFS hash from the release to install the package without having to publish it."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step3",src:s(4194).Z+"",width:"2880",height:"1334"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 4."})," Once in this screen, click Connect wallet. Remember that the publishing wallet needs to be ",(0,n.jsx)(t.strong,{children:"whitelisted"})," by Dappnode. If your wallet is not whitelisted yet, contact us in Discord / Telegram."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step4_connect",src:s(1889).Z+"",width:"2874",height:"1018"})}),"\n",(0,n.jsx)(t.p,{children:'Your wallet is mainly used for two tasks: to authenticate that you are eligible to publish in the APM SmartContracts and to sign the package to be published. This signature is used in the dappnode to verify that the package was actually signed by a "trusted key"'}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 5."})," Configure your custom IPFS settings. If you do not change it, default settings shown will be applied. Click Next button."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step5",src:s(4156).Z+"",width:"2880",height:"1446"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 6."})," Specify the details of your release.\nDappnode package name: You can find it in dappnode_package.json file in the package.\nDeveloper address: In case you want to add a developer address to publish future versions a part from the owner.\nNext version: You can find it in dappnode_package.json file in the package.\nRelease hash: You find it in the release table in Step3.\nClick Next button"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step6",src:s(1716).Z+"",width:"2880",height:"1554"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 7."})," Check the details of the package and sign the transaction with your wallet. The wallet must be connected in Ethereum mainnet to sign the transaction (even if the package is from other blockchain)."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step7",src:s(3120).Z+"",width:"2876",height:"1352"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 8."})," After signing the first transaction, you need to click the Publish button and sign again with your wallet. This time you need ETH (gas) to sign the transaction."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Step8",src:s(6366).Z+"",width:"2878",height:"1318"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 9."})," Your package was successfully published! Congrats! \ud83c\udf89\xa0\nIf your product has a community of dappnode users, we invite you to announce it in our Discord community. Every user with this package installed and auto-updates enabled will auto update it within less than 3 days."]}),"\n",(0,n.jsx)(t.p,{children:"Thanks for reading the guide! If you found some problem in the process, do not hesitate to contact us in Discord / Telegram."})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},485:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step2-03f05ed784550e23e5fb8676be75147d.png"},4194:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step3-a070005931f77f2357f9de8eaf9cc716.png"},1889:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step4_connect-68c51fec5a0dc82814d430cce6312a23.png"},4156:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step5-cd8431bff08d3d816fc1dd6312569187.png"},1716:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step6-b17dacf439a9c28c78bdf9adb184c369.png"},3120:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step7-9f2a6741f351d8f164d4bf37b6e94d8d.png"},6366:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/Step8-54a0af96b92605467d1f50f3e8132f60.png"},1151:(e,t,s)=>{s.d(t,{Z:()=>c,a:()=>o});var n=s(7294);const i={},a=n.createContext(i);function o(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/main.44a56600.js b/assets/js/main.44a56600.js
new file mode 100644
index 000000000..6fc8663f5
--- /dev/null
+++ b/assets/js/main.44a56600.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.44a56600.js.LICENSE.txt */
+(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"0085f636":[()=>n.e(8925).then(n.bind(n,9353)),"@site/docs/user/rollups/optimism.md",9353],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1223)),"@theme/BlogTagsListPage",1223],"027d004c":[()=>n.e(8352).then(n.bind(n,8470)),"@site/docs/dao/node-basics.md",8470],"031793e1":[()=>n.e(1633).then(n.t.bind(n,2511,19)),"~blog/default/blog-tags-facebook-038.json",2511],"0429b4a1":[()=>n.e(6197).then(n.bind(n,497)),"@site/docs/user/dappnode-cloud/providers/aws/overview.md",497],"058440e4":[()=>n.e(3964).then(n.bind(n,6529)),"@site/docs/user/staking/overview.md",6529],"065c701c":[()=>n.e(7197).then(n.t.bind(n,4469,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"090ba480":[()=>n.e(5788).then(n.bind(n,2963)),"@site/docs/smooth/deep-dive-into-smooth/overview.md",2963],"096bfee4":[()=>n.e(7178).then(n.t.bind(n,5010,19)),"~blog/default/blog-tags-facebook-038-list.json",5010],"0aa77f7e":[()=>n.e(4585).then(n.t.bind(n,5745,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"0af727f1":[()=>n.e(8999).then(n.bind(n,8071)),"@site/docs/smooth/faq-glossary.md",8071],"0f7f07eb":[()=>n.e(7675).then(n.bind(n,4027)),"@site/docs/user/access-your-dappnode/terminal.md",4027],"14c20d3a":[()=>n.e(903).then(n.bind(n,8377)),"@site/docs/user/staking/ethereum/solo/holesky.md",8377],17896441:[()=>Promise.all([n.e(532),n.e(7874),n.e(7918)]).then(n.bind(n,8945)),"@theme/DocItem",8945],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1473)),"@theme/SearchPage",1473],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,8391)),"@site/src/pages/index.tsx",8391],"1e4f1bb9":[()=>n.e(1323).then(n.bind(n,5381)),"@site/docs/user/packages/dms.md",5381],"1ee5c5d2":[()=>n.e(3389).then(n.bind(n,6030)),"@site/docs/smooth/deep-dive-into-smooth/oracle-sm.md",6030],20034248:[()=>n.e(3743).then(n.bind(n,2627)),"@site/docs/user/ethical-metrics/overview.md",2627],"2057bc77":[()=>n.e(5091).then(n.bind(n,4386)),"@site/docs/user/hardware/maintenance.md",4386],"22a3df87":[()=>n.e(2559).then(n.bind(n,3585)),"@site/docs/user/install/script.md",3585],25229465:[()=>n.e(4952).then(n.bind(n,6639)),"@site/docs/user/ethical-metrics/metrics.md",6639],"29689ead":[()=>n.e(9344).then(n.bind(n,1373)),"@site/docs/smooth/deep-dive-into-smooth/vanilla-blocks.md",1373],"2a82f816":[()=>n.e(437).then(n.bind(n,1469)),"@site/docs/dev/references/manifest.md",1469],"2c509ddc":[()=>n.e(4840).then(n.bind(n,4550)),"@site/docs/smooth/subscribe-to-smooth/manual.md",4550],"3093fe32":[()=>n.e(641).then(n.bind(n,9024)),"@site/docs/user/dappnode-cloud/overview.md",9024],"30a24c52":[()=>n.e(453).then(n.t.bind(n,8605,19)),"~blog/default/blog-tags-hello-039.json",8605],"31f84294":[()=>n.e(3995).then(n.bind(n,9742)),"@site/docs/user/staking/gnosis-chain/incentive-program.md",9742],"342f5eb1":[()=>n.e(4350).then(n.bind(n,2808)),"@site/docs/user/staking/ethereum/lsd-pools/lido/overview.md",2808],"34d45c9f":[()=>n.e(7089).then(n.bind(n,1598)),"@site/docs/smooth.md",1598],"3f7aee3c":[()=>n.e(9779).then(n.bind(n,8801)),"@site/docs/user/access-your-dappnode/overview.md",8801],"3fac1d53":[()=>n.e(7533).then(n.bind(n,7771)),"@site/docs/smooth/deep-dive-into-smooth/states.md",7771],"4bb29089":[()=>n.e(4258).then(n.bind(n,2344)),"@site/docs/user/packages/understanding-dappnode-packages/overview.md",2344],"4c4b1a63":[()=>n.e(3504).then(n.bind(n,3043)),"@site/docs/user/videos-and-tutorials/driving-school/configuration.md",3043],"4c9e35b1":[()=>n.e(9035).then(n.t.bind(n,499,19)),"~blog/default/blog-tags-hola-ea2-list.json",499],"4d8f6977":[()=>n.e(5815).then(n.bind(n,718)),"@site/docs/user/staking/ethereum/dvt-technologies/obol-network.md",718],"51a190f1":[()=>n.e(8636).then(n.bind(n,2243)),"@site/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator.md",2243],"536a4320":[()=>n.e(9374).then(n.bind(n,392)),"@site/docs/user/faqs.md",392],"5373dce7":[()=>n.e(1606).then(n.t.bind(n,2776,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"53ed655b":[()=>n.e(5708).then(n.bind(n,3252)),"@site/docs/user/packages/monero.md",3252],"5456a9ed":[()=>n.e(1600).then(n.bind(n,242)),"@site/docs/user/access-your-dappnode/local.md",242],59362658:[()=>n.e(2267).then(n.bind(n,7797)),"@site/blog/2021-08-01-mdx-blog-post.mdx",7797],"59a51c52":[()=>n.e(4980).then(n.bind(n,9837)),"@site/docs/user/ethical-metrics/setup.md",9837],"5b35db5e":[()=>n.e(7775).then(n.bind(n,2292)),"@site/docs/user/access-your-dappnode/vpn/openvpn.md",2292],"5d0a1dad":[()=>n.e(306).then(n.bind(n,919)),"@site/docs/user/getting-started/choose-your-path.md",919],"5d665ce0":[()=>n.e(8646).then(n.bind(n,9513)),"@site/docs/user/hardware/overview.md",9513],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5f141bf4":[()=>n.e(6796).then(n.bind(n,656)),"@site/docs/user/packages/understanding-dappnode-packages/logs.md",656],"5f877448":[()=>n.e(839).then(n.bind(n,6506)),"@site/docs/user/access-your-dappnode/vpn/overview.md",6506],"608ae6a4":[()=>n.e(6938).then(n.t.bind(n,4545,19)),"~blog/default/blog-tags-docusaurus-0e0-list.json",4545],66406991:[()=>n.e(110).then(n.t.bind(n,711,19)),"~blog/default/blog-tags-hello-039-list.json",711],"6696a323":[()=>n.e(4405).then(n.bind(n,6373)),"@site/docs/dev/package-development/multi-configuration.md",6373],"67625ece":[()=>n.e(120).then(n.bind(n,8386)),"@site/docs/dev/sdk/overview.md",8386],"6875c492":[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"6c88006d":[()=>n.e(1285).then(n.t.bind(n,3769,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"6e504cb9":[()=>n.e(9402).then(n.bind(n,865)),"@site/docs/user/dappnode-cloud/providers/coming-soon.md",865],"6e93d9f5":[()=>n.e(935).then(n.bind(n,1830)),"@site/docs/smooth/unsubscribe-from-smooth.md",1830],"73664a40":[()=>n.e(3514).then(n.bind(n,1985)),"@site/blog/2019-05-29-long-blog-post.md",1985],"747b92bf":[()=>n.e(4743).then(n.bind(n,2164)),"@site/docs/user/getting-started/connect-dappnode-to-the-router.md",2164],"7661071f":[()=>n.e(9642).then(n.bind(n,3174)),"@site/blog/2021-08-26-welcome/index.md?truncated=true",3174],"769f9326":[()=>n.e(8233).then(n.bind(n,2125)),"@site/docs/user/hardware/temperature.md",2125],"773dc9fa":[()=>n.e(6471).then(n.bind(n,740)),"@site/docs/smooth/subscribe-to-smooth/overview.md",740],"78d28be6":[()=>n.e(3686).then(n.bind(n,4225)),"@site/docs/user/packages/understanding-dappnode-packages/config.md",4225],"793beb66":[()=>n.e(3662).then(n.bind(n,4232)),"@site/docs/dev/package-development/single-configuration.md",4232],"7b2e8791":[()=>n.e(8804).then(n.bind(n,2935)),"@site/docs/dev/sdk/commands.md",2935],"7ef68c32":[()=>n.e(3036).then(n.bind(n,611)),"@site/docs/dao/node-stream.md",611],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],82063238:[()=>n.e(9984).then(n.bind(n,6789)),"@site/docs/dev/references/docker-compose.md",6789],"8717b14a":[()=>n.e(948).then(n.bind(n,7106)),"@site/blog/2019-05-29-long-blog-post.md?truncated=true",7106],"89600f1f":[()=>n.e(5599).then(n.bind(n,1471)),"@site/docs/dao/liquidity-mining.md",1471],"89b6dee8":[()=>n.e(3423).then(n.bind(n,8069)),"@site/docs/user/videos-and-tutorials/driving-school/initial-setup.md",8069],"89e2558e":[()=>n.e(5510).then(n.bind(n,2499)),"@site/docs/user/dappnode-cloud/providers/aws/set-up-instance.md",2499],"8c6013e9":[()=>n.e(6110).then(n.bind(n,1542)),"@site/docs/dev/github-actions.md",1542],"8ec292b8":[()=>n.e(9058).then(n.bind(n,277)),"@site/docs/user/getting-started/setup.md",277],"8f8bba55":[()=>n.e(3038).then(n.bind(n,4756)),"@site/docs/user/packages/understanding-dappnode-packages/backup.md",4756],"8f981d3f":[()=>n.e(6967).then(n.bind(n,742)),"@site/docs/user/staking/ethereum/dvt-technologies/diva.md",742],90558919:[()=>n.e(5458).then(n.bind(n,7597)),"@site/docs/user/getting-started/access-dappnode-via-wifi.md",7597],"91e54d81":[()=>n.e(2642).then(n.bind(n,7589)),"@site/docs/user/packages/signature.md",7589],"925b3f96":[()=>n.e(9003).then(n.bind(n,3902)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",3902],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94131f31":[()=>n.e(4307).then(n.bind(n,6088)),"@site/docs/dev/references/setup-wizard.md",6088],"950718c7":[()=>n.e(1796).then(n.bind(n,78)),"@site/docs/dev.md",78],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],"9e93dc42":[()=>n.e(938).then(n.bind(n,6559)),"@site/docs/user/install/iso.md",6559],a22f54b8:[()=>n.e(2702).then(n.bind(n,5450)),"@site/docs/user/packages/understanding-dappnode-packages/file-manager.md",5450],a33eb6a8:[()=>n.e(3680).then(n.bind(n,7749)),"@site/docs/user/staking/ethereum/lsd-pools/stakewise.md",7749],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a80da1cf:[()=>n.e(3205).then(n.t.bind(n,4863,19)),"~blog/default/blog-tags-docusaurus-0e0.json",4863],a830b4cf:[()=>n.e(2920).then(n.bind(n,1312)),"@site/docs/user/staking/ethereum/lsd-pools/lido/register.md",1312],a83bdfda:[()=>n.e(8769).then(n.bind(n,9618)),"@site/docs/dao/faq.md",9618],a9241739:[()=>n.e(3295).then(n.bind(n,5137)),"@site/docs/user/ethical-metrics/troubleshooting.md",5137],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a960b763:[()=>n.e(7484).then(n.bind(n,377)),"@site/docs/user/packages/swarm.md",377],af26485d:[()=>n.e(2217).then(n.bind(n,9316)),"@site/docs/user/repository/ipfs.md",9316],b1a9ae1f:[()=>n.e(8948).then(n.bind(n,4805)),"@site/docs/dev/package-development/overview.md",4805],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,4556,19)),"~blog/default/blog-archive-80c.json",4556],b3edc04f:[()=>n.e(4034).then(n.bind(n,6778)),"@site/docs/dev/package-publishing/publish-packages-clients.md",6778],b4800274:[()=>n.e(5561).then(n.bind(n,9620)),"@site/docs/user/rollups/overview.md",9620],b9b44023:[()=>n.e(5342).then(n.bind(n,2934)),"@site/docs/user/videos-and-tutorials/guides/migrating-from-avado.md",2934],b9c10046:[()=>n.e(4765).then(n.bind(n,7821)),"@site/docs/smooth/subscribe-to-smooth/automatic.md",7821],bebe2ff8:[()=>n.e(2370).then(n.bind(n,3370)),"@site/docs/user/packages/understanding-dappnode-packages/info.md",3370],c38c9aa9:[()=>n.e(8330).then(n.bind(n,6993)),"@site/docs/user/install/overview.md",6993],c75934c3:[()=>n.e(4374).then(n.bind(n,152)),"@site/docs/dev/sdk/sdk-publish.md",152],c7a466cb:[()=>n.e(78).then(n.bind(n,5367)),"@site/docs/user/getting-started/register.md",5367],c9627cbc:[()=>n.e(468).then(n.bind(n,1726)),"@site/docs/user/videos-and-tutorials/crash-course.md",1726],cbc5934e:[()=>n.e(651).then(n.bind(n,4759)),"@site/docs/dao.md",4759],ccc49370:[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],cdc6bc37:[()=>n.e(4407).then(n.bind(n,4855)),"@site/docs/smooth/deep-dive-into-smooth/rewards.md",4855],d267b4aa:[()=>n.e(7563).then(n.bind(n,9409)),"@site/docs/user/getting-started/next-steps.md",9409],d36fd63a:[()=>n.e(6593).then(n.bind(n,2825)),"@site/docs/user/staking/lukso/solo.md",2825],d47e1b16:[()=>n.e(9739).then(n.bind(n,3453)),"@site/docs/user/packages/bitcoin.md",3453],d508510a:[()=>n.e(2245).then(n.bind(n,9065)),"@site/docs/user/videos-and-tutorials/overview.md",9065],d61c7726:[()=>n.e(5940).then(n.bind(n,2546)),"@site/docs/user/install/arm.md",2546],d6c02fb6:[()=>n.e(3633).then(n.bind(n,9745)),"@site/docs/user/staking/ethereum/solo/mainnet.md",9745],d912498a:[()=>n.e(6209).then(n.bind(n,4775)),"@site/docs/user/repository/ethereum.md",4775],d9f32620:[()=>n.e(1914).then(n.bind(n,8123)),"@site/blog/2021-08-26-welcome/index.md",8123],db6178e4:[()=>n.e(6388).then(n.bind(n,1793)),"@site/docs/user/staking/ethereum/lsd-pools/lido/notifications.md",1793],df56bb67:[()=>n.e(5030).then(n.bind(n,1836)),"@site/docs/user/packages/understanding-dappnode-packages/network.md",1836],dfbda110:[()=>n.e(8162).then(n.bind(n,9097)),"@site/docs/user/packages/avalanche.md",9097],dfcea9c7:[()=>n.e(2441).then(n.bind(n,6238)),"@site/docs/user/access-your-dappnode/wifi.md",6238],e16015ca:[()=>n.e(9700).then(n.t.bind(n,5688,19)),"~blog/default/blog-tags-hola-ea2.json",5688],e26c9afe:[()=>n.e(1206).then(n.bind(n,1291)),"@site/docs/user/staking/ethereum/lsd-pools/stakehouse.md",1291],e273c56f:[()=>n.e(2362).then(n.bind(n,9954)),"@site/blog/2019-05-28-first-blog-post.md",9954],e28e223d:[()=>n.e(9091).then(n.bind(n,2755)),"@site/docs/user/access-your-dappnode/vpn/wireguard.md",2755],e7ae4afa:[()=>n.e(190).then(n.bind(n,4352)),"@site/docs/user/packages/ethclassic.md",4352],e7fcc526:[()=>n.e(5447).then(n.bind(n,5861)),"@site/docs/user/staking/ethereum/dvt-technologies/ssv-network.md",5861],ed77d0ad:[()=>n.e(3218).then(n.bind(n,2250)),"@site/docs/user/staking/ethereum/lsd-pools/rocketpool.md",2250],eef43c71:[()=>n.e(7365).then(n.bind(n,2477)),"@site/docs/user/staking/gnosis-chain/solo.md",2477],ef41a71b:[()=>n.e(4588).then(n.bind(n,1545)),"@site/docs/user/install/dappnode-commands.md",1545],f4f34a3a:[()=>n.e(6203).then(n.bind(n,743)),"@site/blog/2021-08-01-mdx-blog-post.mdx?truncated=true",743],f557db91:[()=>n.e(4543).then(n.bind(n,2089)),"@site/docs/dao/node-drop.md",2089],f744a4d0:[()=>n.e(1605).then(n.bind(n,2747)),"@site/docs/user/videos-and-tutorials/guides/connect-node.md",2747],fcb270fb:[()=>n.e(7410).then(n.bind(n,9831)),"@site/docs/user/dappnode-cloud/providers/aws/faqs.md",9831]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],h=(0,c.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/blog",component:d("/blog","62a"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","818"),exact:!0},{path:"/blog/first-blog-post",component:d("/blog/first-blog-post","0b3"),exact:!0},{path:"/blog/long-blog-post",component:d("/blog/long-blog-post","a48"),exact:!0},{path:"/blog/mdx-blog-post",component:d("/blog/mdx-blog-post","f6d"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","3c3"),exact:!0},{path:"/blog/tags/docusaurus",component:d("/blog/tags/docusaurus","e09"),exact:!0},{path:"/blog/tags/facebook",component:d("/blog/tags/facebook","66f"),exact:!0},{path:"/blog/tags/hello",component:d("/blog/tags/hello","f71"),exact:!0},{path:"/blog/tags/hola",component:d("/blog/tags/hola","fee"),exact:!0},{path:"/blog/welcome",component:d("/blog/welcome","4bd"),exact:!0},{path:"/search",component:d("/search","af0"),exact:!0},{path:"/docs",component:d("/docs","2b2"),routes:[{path:"/docs",component:d("/docs","d3c"),routes:[{path:"/docs",component:d("/docs","e4c"),routes:[{path:"/docs/dao",component:d("/docs/dao","f08"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/faq",component:d("/docs/dao/faq","93b"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/liquidity-mining",component:d("/docs/dao/liquidity-mining","f84"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/node-basics",component:d("/docs/dao/node-basics","5aa"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/node-drop",component:d("/docs/dao/node-drop","188"),exact:!0},{path:"/docs/dao/node-stream",component:d("/docs/dao/node-stream","e47"),exact:!0},{path:"/docs/dev",component:d("/docs/dev","921"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/github-actions",component:d("/docs/dev/github-actions","769"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/multi-configuration",component:d("/docs/dev/package-development/multi-configuration","4c7"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/overview",component:d("/docs/dev/package-development/overview","5ee"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/single-configuration",component:d("/docs/dev/package-development/single-configuration","966"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-publishing/publish-packages-clients",component:d("/docs/dev/package-publishing/publish-packages-clients","229"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/docker-compose",component:d("/docs/dev/references/docker-compose","7b3"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/manifest",component:d("/docs/dev/references/manifest","6e9"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/setup-wizard",component:d("/docs/dev/references/setup-wizard","900"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/commands",component:d("/docs/dev/sdk/commands","665"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/overview",component:d("/docs/dev/sdk/overview","4c1"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/sdk-publish",component:d("/docs/dev/sdk/sdk-publish","2cb"),exact:!0,sidebar:"devSidebar"},{path:"/docs/smooth",component:d("/docs/smooth","9c0"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/oracle-sm",component:d("/docs/smooth/deep-dive-into-smooth/oracle-sm","986"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/overview",component:d("/docs/smooth/deep-dive-into-smooth/overview","79c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/rewards",component:d("/docs/smooth/deep-dive-into-smooth/rewards","20c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/states",component:d("/docs/smooth/deep-dive-into-smooth/states","3a4"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/vanilla-blocks",component:d("/docs/smooth/deep-dive-into-smooth/vanilla-blocks","dd4"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/faq-glossary",component:d("/docs/smooth/faq-glossary","d7a"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/automatic",component:d("/docs/smooth/subscribe-to-smooth/automatic","53c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/manual",component:d("/docs/smooth/subscribe-to-smooth/manual","dd2"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/overview",component:d("/docs/smooth/subscribe-to-smooth/overview","713"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/unsubscribe-from-smooth",component:d("/docs/smooth/unsubscribe-from-smooth","032"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/user/access-your-dappnode/local",component:d("/docs/user/access-your-dappnode/local","24f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/overview",component:d("/docs/user/access-your-dappnode/overview","e1d"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/terminal",component:d("/docs/user/access-your-dappnode/terminal","4de"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/openvpn",component:d("/docs/user/access-your-dappnode/vpn/openvpn","39c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/overview",component:d("/docs/user/access-your-dappnode/vpn/overview","ff5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/wireguard",component:d("/docs/user/access-your-dappnode/vpn/wireguard","40b"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/wifi",component:d("/docs/user/access-your-dappnode/wifi","60d"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/overview",component:d("/docs/user/dappnode-cloud/overview","8a1"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/faqs",component:d("/docs/user/dappnode-cloud/providers/aws/faqs","ff8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/overview",component:d("/docs/user/dappnode-cloud/providers/aws/overview","a22"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/set-up-instance",component:d("/docs/user/dappnode-cloud/providers/aws/set-up-instance","a3c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/coming-soon",component:d("/docs/user/dappnode-cloud/providers/coming-soon","971"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/metrics",component:d("/docs/user/ethical-metrics/metrics","b30"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/overview",component:d("/docs/user/ethical-metrics/overview","059"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/setup",component:d("/docs/user/ethical-metrics/setup","0d8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/troubleshooting",component:d("/docs/user/ethical-metrics/troubleshooting","373"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/faqs",component:d("/docs/user/faqs","884"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/access-dappnode-via-wifi",component:d("/docs/user/getting-started/access-dappnode-via-wifi","920"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/choose-your-path",component:d("/docs/user/getting-started/choose-your-path","daf"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/connect-dappnode-to-the-router",component:d("/docs/user/getting-started/connect-dappnode-to-the-router","90c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/next-steps",component:d("/docs/user/getting-started/next-steps","4fe"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/register",component:d("/docs/user/getting-started/register","fff"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/setup",component:d("/docs/user/getting-started/setup","901"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/maintenance",component:d("/docs/user/hardware/maintenance","546"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/overview",component:d("/docs/user/hardware/overview","c38"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/temperature",component:d("/docs/user/hardware/temperature","676"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/arm",component:d("/docs/user/install/arm","89f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/dappnode-commands",component:d("/docs/user/install/dappnode-commands","109"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/iso",component:d("/docs/user/install/iso","3bd"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/overview",component:d("/docs/user/install/overview","0da"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/script",component:d("/docs/user/install/script","2a7"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/avalanche",component:d("/docs/user/packages/avalanche","201"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/bitcoin",component:d("/docs/user/packages/bitcoin","216"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/dms",component:d("/docs/user/packages/dms","412"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/ethclassic",component:d("/docs/user/packages/ethclassic","6d5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/monero",component:d("/docs/user/packages/monero","b8c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/signature",component:d("/docs/user/packages/signature","7f0"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/swarm",component:d("/docs/user/packages/swarm","444"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/backup",component:d("/docs/user/packages/understanding-dappnode-packages/backup","509"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/config",component:d("/docs/user/packages/understanding-dappnode-packages/config","7b5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/file-manager",component:d("/docs/user/packages/understanding-dappnode-packages/file-manager","317"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/info",component:d("/docs/user/packages/understanding-dappnode-packages/info","cea"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/logs",component:d("/docs/user/packages/understanding-dappnode-packages/logs","a6b"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/network",component:d("/docs/user/packages/understanding-dappnode-packages/network","6e8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/overview",component:d("/docs/user/packages/understanding-dappnode-packages/overview","83a"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/repository/ethereum",component:d("/docs/user/repository/ethereum","657"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/repository/ipfs",component:d("/docs/user/repository/ipfs","8c2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/rollups/optimism",component:d("/docs/user/rollups/optimism","cfe"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/rollups/overview",component:d("/docs/user/rollups/overview","a8a"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/diva",component:d("/docs/user/staking/ethereum/dvt-technologies/diva","cf2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/obol-network",component:d("/docs/user/staking/ethereum/dvt-technologies/obol-network","770"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/ssv-network",component:d("/docs/user/staking/ethereum/dvt-technologies/ssv-network","085"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator",component:d("/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator","c93"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/notifications",component:d("/docs/user/staking/ethereum/lsd-pools/lido/notifications","d91"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/overview",component:d("/docs/user/staking/ethereum/lsd-pools/lido/overview","107"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/register",component:d("/docs/user/staking/ethereum/lsd-pools/lido/register","0ff"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/rocketpool",component:d("/docs/user/staking/ethereum/lsd-pools/rocketpool","fa6"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/stakehouse",component:d("/docs/user/staking/ethereum/lsd-pools/stakehouse","42f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/stakewise",component:d("/docs/user/staking/ethereum/lsd-pools/stakewise","ee5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/solo/holesky",component:d("/docs/user/staking/ethereum/solo/holesky","301"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/solo/mainnet",component:d("/docs/user/staking/ethereum/solo/mainnet","951"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/gnosis-chain/incentive-program",component:d("/docs/user/staking/gnosis-chain/incentive-program","aa2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/gnosis-chain/solo",component:d("/docs/user/staking/gnosis-chain/solo","1f9"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/lukso/solo",component:d("/docs/user/staking/lukso/solo","a2e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/overview",component:d("/docs/user/staking/overview","93e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/crash-course",component:d("/docs/user/videos-and-tutorials/crash-course","a95"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/driving-school/configuration",component:d("/docs/user/videos-and-tutorials/driving-school/configuration","8d6"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/driving-school/initial-setup",component:d("/docs/user/videos-and-tutorials/driving-school/initial-setup","59c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/guides/connect-node",component:d("/docs/user/videos-and-tutorials/guides/connect-node","1da"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/guides/migrating-from-avado",component:d("/docs/user/videos-and-tutorials/guides/migrating-from-avado","38e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/overview",component:d("/docs/user/videos-and-tutorials/overview","a86"),exact:!0}]}]}]},{path:"/",component:d("/","4a5"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),b=n(6668),v=n(1944),y=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,y.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(v.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(h.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var j=n(8934),P=n(8940),R=n(469);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rYour Docusaurus site did not load properly.
\nA very common reason is a wrong site baseUrl configuration.
\nCurrent configured baseUrl = ${e} ${"/"===e?" (default value)":""}
\nWe suggest trying baseUrl =
\n.comment
can become .namespace--comment
) or replace them with your defined ones (like .editor__comment
). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll
and highlightAllUnder
methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l{const s=t.toLowerCase(),l=((e,t)=>{const[n,o]=(0,r.useState)(V(t,e)),a=(0,r.useRef)(),i=(0,r.useRef)();return(0,r.useEffect)((()=>{t===a.current&&e===i.current||(a.current=t,i.current=e,o(V(t,e)))}),[e,t]),n})(s,o),c=(e=>(0,r.useCallback)((t=>{var n=t,{className:r,style:o,line:i}=n,s=_(n,["className","style","line"]);const l=S(x({},s),{className:a("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof o&&(l.style=x(x({},l.style||{}),o)),l}),[e]))(l),u=(e=>{const t=(0,r.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,r.useCallback)((e=>{var n=e,{token:r,className:o,style:i}=n,s=_(n,["token","className","style"]);const l=S(x({},s),{className:a("token",...r.types,o),children:r.content,style:t(r)});return null!=i&&(l.style=x(x({},l.style||{}),i)),l}),[t])})(l),d=(({prism:e,code:t,grammar:n,language:o})=>{const a=(0,r.useRef)(e);return(0,r.useMemo)((()=>{if(null==n)return Y([t]);const e={code:t,grammar:n,language:o,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),Y(e.tokens)}),[t,n,o])})({prism:i,language:s,code:n,grammar:i.languages[s]});return e({tokens:d,className:`prism-code language-${s}`,style:null!=l?l.root:{},getLineProps:c,getTokenProps:u})},J=e=>(0,r.createElement)(X,S(x({},e),{prism:e.prism||C,theme:e.theme||$,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/blog-62a":{"__comp":"a6aa9e1f","__context":{"plugin":"065c701c"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"f4f34a3a"},{"content":"8717b14a"},{"content":"925b3f96"}],"metadata":"b2b675dd"},"/blog/archive-818":{"__comp":"9e4087bc","__context":{"plugin":"065c701c"},"archive":"b2f554cd"},"/blog/first-blog-post-0b3":{"__comp":"ccc49370","__context":{"plugin":"065c701c"},"sidebar":"814f3328","content":"e273c56f"},"/blog/long-blog-post-a48":{"__comp":"ccc49370","__context":{"plugin":"065c701c"},"sidebar":"814f3328","content":"73664a40"},"/blog/mdx-blog-post-f6d":{"__comp":"ccc49370","__context":{"plugin":"065c701c"},"sidebar":"814f3328","content":"59362658"},"/blog/tags-3c3":{"__comp":"01a85c17","__context":{"plugin":"065c701c"},"sidebar":"814f3328","tags":"a7023ddc"},"/blog/tags/docusaurus-e09":{"__comp":"6875c492","__context":{"plugin":"065c701c"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"f4f34a3a"},{"content":"8717b14a"},{"content":"925b3f96"}],"tag":"a80da1cf","listMetadata":"608ae6a4"},"/blog/tags/facebook-66f":{"__comp":"6875c492","__context":{"plugin":"065c701c"},"sidebar":"814f3328","items":[{"content":"7661071f"}],"tag":"031793e1","listMetadata":"096bfee4"},"/blog/tags/hello-f71":{"__comp":"6875c492","__context":{"plugin":"065c701c"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"8717b14a"}],"tag":"30a24c52","listMetadata":"66406991"},"/blog/tags/hola-fee":{"__comp":"6875c492","__context":{"plugin":"065c701c"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"tag":"e16015ca","listMetadata":"4c9e35b1"},"/blog/welcome-4bd":{"__comp":"ccc49370","__context":{"plugin":"065c701c"},"sidebar":"814f3328","content":"d9f32620"},"/search-af0":{"__comp":"1a4e3797","__context":{"plugin":"5373dce7"}},"/docs-2b2":{"__comp":"5e95c892","__context":{"plugin":"6c88006d"}},"/docs-d3c":{"__comp":"a7bd4aaa","version":"935f2afb"},"/docs-e4c":{"__comp":"a94703ab"},"/docs/dao-f08":{"__comp":"17896441","content":"cbc5934e"},"/docs/dao/faq-93b":{"__comp":"17896441","content":"a83bdfda"},"/docs/dao/liquidity-mining-f84":{"__comp":"17896441","content":"89600f1f"},"/docs/dao/node-basics-5aa":{"__comp":"17896441","content":"027d004c"},"/docs/dao/node-drop-188":{"__comp":"17896441","content":"f557db91"},"/docs/dao/node-stream-e47":{"__comp":"17896441","content":"7ef68c32"},"/docs/dev-921":{"__comp":"17896441","content":"950718c7"},"/docs/dev/github-actions-769":{"__comp":"17896441","content":"8c6013e9"},"/docs/dev/package-development/multi-configuration-4c7":{"__comp":"17896441","content":"6696a323"},"/docs/dev/package-development/overview-5ee":{"__comp":"17896441","content":"b1a9ae1f"},"/docs/dev/package-development/single-configuration-966":{"__comp":"17896441","content":"793beb66"},"/docs/dev/package-publishing/publish-packages-clients-229":{"__comp":"17896441","content":"b3edc04f"},"/docs/dev/references/docker-compose-7b3":{"__comp":"17896441","content":"82063238"},"/docs/dev/references/manifest-6e9":{"__comp":"17896441","content":"2a82f816"},"/docs/dev/references/setup-wizard-900":{"__comp":"17896441","content":"94131f31"},"/docs/dev/sdk/commands-665":{"__comp":"17896441","content":"7b2e8791"},"/docs/dev/sdk/overview-4c1":{"__comp":"17896441","content":"67625ece"},"/docs/dev/sdk/sdk-publish-2cb":{"__comp":"17896441","content":"c75934c3"},"/docs/smooth-9c0":{"__comp":"17896441","content":"34d45c9f"},"/docs/smooth/deep-dive-into-smooth/oracle-sm-986":{"__comp":"17896441","content":"1ee5c5d2"},"/docs/smooth/deep-dive-into-smooth/overview-79c":{"__comp":"17896441","content":"090ba480"},"/docs/smooth/deep-dive-into-smooth/rewards-20c":{"__comp":"17896441","content":"cdc6bc37"},"/docs/smooth/deep-dive-into-smooth/states-3a4":{"__comp":"17896441","content":"3fac1d53"},"/docs/smooth/deep-dive-into-smooth/vanilla-blocks-dd4":{"__comp":"17896441","content":"29689ead"},"/docs/smooth/faq-glossary-d7a":{"__comp":"17896441","content":"0af727f1"},"/docs/smooth/subscribe-to-smooth/automatic-53c":{"__comp":"17896441","content":"b9c10046"},"/docs/smooth/subscribe-to-smooth/manual-dd2":{"__comp":"17896441","content":"2c509ddc"},"/docs/smooth/subscribe-to-smooth/overview-713":{"__comp":"17896441","content":"773dc9fa"},"/docs/smooth/unsubscribe-from-smooth-032":{"__comp":"17896441","content":"6e93d9f5"},"/docs/user/access-your-dappnode/local-24f":{"__comp":"17896441","content":"5456a9ed"},"/docs/user/access-your-dappnode/overview-e1d":{"__comp":"17896441","content":"3f7aee3c"},"/docs/user/access-your-dappnode/terminal-4de":{"__comp":"17896441","content":"0f7f07eb"},"/docs/user/access-your-dappnode/vpn/openvpn-39c":{"__comp":"17896441","content":"5b35db5e"},"/docs/user/access-your-dappnode/vpn/overview-ff5":{"__comp":"17896441","content":"5f877448"},"/docs/user/access-your-dappnode/vpn/wireguard-40b":{"__comp":"17896441","content":"e28e223d"},"/docs/user/access-your-dappnode/wifi-60d":{"__comp":"17896441","content":"dfcea9c7"},"/docs/user/dappnode-cloud/overview-8a1":{"__comp":"17896441","content":"3093fe32"},"/docs/user/dappnode-cloud/providers/aws/faqs-ff8":{"__comp":"17896441","content":"fcb270fb"},"/docs/user/dappnode-cloud/providers/aws/overview-a22":{"__comp":"17896441","content":"0429b4a1"},"/docs/user/dappnode-cloud/providers/aws/set-up-instance-a3c":{"__comp":"17896441","content":"89e2558e"},"/docs/user/dappnode-cloud/providers/coming-soon-971":{"__comp":"17896441","content":"6e504cb9"},"/docs/user/ethical-metrics/metrics-b30":{"__comp":"17896441","content":"25229465"},"/docs/user/ethical-metrics/overview-059":{"__comp":"17896441","content":"20034248"},"/docs/user/ethical-metrics/setup-0d8":{"__comp":"17896441","content":"59a51c52"},"/docs/user/ethical-metrics/troubleshooting-373":{"__comp":"17896441","content":"a9241739"},"/docs/user/faqs-884":{"__comp":"17896441","content":"536a4320"},"/docs/user/getting-started/access-dappnode-via-wifi-920":{"__comp":"17896441","content":"90558919"},"/docs/user/getting-started/choose-your-path-daf":{"__comp":"17896441","content":"5d0a1dad"},"/docs/user/getting-started/connect-dappnode-to-the-router-90c":{"__comp":"17896441","content":"747b92bf"},"/docs/user/getting-started/next-steps-4fe":{"__comp":"17896441","content":"d267b4aa"},"/docs/user/getting-started/register-fff":{"__comp":"17896441","content":"c7a466cb"},"/docs/user/getting-started/setup-901":{"__comp":"17896441","content":"8ec292b8"},"/docs/user/hardware/maintenance-546":{"__comp":"17896441","content":"2057bc77"},"/docs/user/hardware/overview-c38":{"__comp":"17896441","content":"5d665ce0"},"/docs/user/hardware/temperature-676":{"__comp":"17896441","content":"769f9326"},"/docs/user/install/arm-89f":{"__comp":"17896441","content":"d61c7726"},"/docs/user/install/dappnode-commands-109":{"__comp":"17896441","content":"ef41a71b"},"/docs/user/install/iso-3bd":{"__comp":"17896441","content":"9e93dc42"},"/docs/user/install/overview-0da":{"__comp":"17896441","content":"c38c9aa9"},"/docs/user/install/script-2a7":{"__comp":"17896441","content":"22a3df87"},"/docs/user/packages/avalanche-201":{"__comp":"17896441","content":"dfbda110"},"/docs/user/packages/bitcoin-216":{"__comp":"17896441","content":"d47e1b16"},"/docs/user/packages/dms-412":{"__comp":"17896441","content":"1e4f1bb9"},"/docs/user/packages/ethclassic-6d5":{"__comp":"17896441","content":"e7ae4afa"},"/docs/user/packages/monero-b8c":{"__comp":"17896441","content":"53ed655b"},"/docs/user/packages/signature-7f0":{"__comp":"17896441","content":"91e54d81"},"/docs/user/packages/swarm-444":{"__comp":"17896441","content":"a960b763"},"/docs/user/packages/understanding-dappnode-packages/backup-509":{"__comp":"17896441","content":"8f8bba55"},"/docs/user/packages/understanding-dappnode-packages/config-7b5":{"__comp":"17896441","content":"78d28be6"},"/docs/user/packages/understanding-dappnode-packages/file-manager-317":{"__comp":"17896441","content":"a22f54b8"},"/docs/user/packages/understanding-dappnode-packages/info-cea":{"__comp":"17896441","content":"bebe2ff8"},"/docs/user/packages/understanding-dappnode-packages/logs-a6b":{"__comp":"17896441","content":"5f141bf4"},"/docs/user/packages/understanding-dappnode-packages/network-6e8":{"__comp":"17896441","content":"df56bb67"},"/docs/user/packages/understanding-dappnode-packages/overview-83a":{"__comp":"17896441","content":"4bb29089"},"/docs/user/repository/ethereum-657":{"__comp":"17896441","content":"d912498a"},"/docs/user/repository/ipfs-8c2":{"__comp":"17896441","content":"af26485d"},"/docs/user/rollups/optimism-cfe":{"__comp":"17896441","content":"0085f636"},"/docs/user/rollups/overview-a8a":{"__comp":"17896441","content":"b4800274"},"/docs/user/staking/ethereum/dvt-technologies/diva-cf2":{"__comp":"17896441","content":"8f981d3f"},"/docs/user/staking/ethereum/dvt-technologies/obol-network-770":{"__comp":"17896441","content":"4d8f6977"},"/docs/user/staking/ethereum/dvt-technologies/ssv-network-085":{"__comp":"17896441","content":"e7fcc526"},"/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator-c93":{"__comp":"17896441","content":"51a190f1"},"/docs/user/staking/ethereum/lsd-pools/lido/notifications-d91":{"__comp":"17896441","content":"db6178e4"},"/docs/user/staking/ethereum/lsd-pools/lido/overview-107":{"__comp":"17896441","content":"342f5eb1"},"/docs/user/staking/ethereum/lsd-pools/lido/register-0ff":{"__comp":"17896441","content":"a830b4cf"},"/docs/user/staking/ethereum/lsd-pools/rocketpool-fa6":{"__comp":"17896441","content":"ed77d0ad"},"/docs/user/staking/ethereum/lsd-pools/stakehouse-42f":{"__comp":"17896441","content":"e26c9afe"},"/docs/user/staking/ethereum/lsd-pools/stakewise-ee5":{"__comp":"17896441","content":"a33eb6a8"},"/docs/user/staking/ethereum/solo/holesky-301":{"__comp":"17896441","content":"14c20d3a"},"/docs/user/staking/ethereum/solo/mainnet-951":{"__comp":"17896441","content":"d6c02fb6"},"/docs/user/staking/gnosis-chain/incentive-program-aa2":{"__comp":"17896441","content":"31f84294"},"/docs/user/staking/gnosis-chain/solo-1f9":{"__comp":"17896441","content":"eef43c71"},"/docs/user/staking/lukso/solo-a2e":{"__comp":"17896441","content":"d36fd63a"},"/docs/user/staking/overview-93e":{"__comp":"17896441","content":"058440e4"},"/docs/user/videos-and-tutorials/crash-course-a95":{"__comp":"17896441","content":"c9627cbc"},"/docs/user/videos-and-tutorials/driving-school/configuration-8d6":{"__comp":"17896441","content":"4c4b1a63"},"/docs/user/videos-and-tutorials/driving-school/initial-setup-59c":{"__comp":"17896441","content":"89b6dee8"},"/docs/user/videos-and-tutorials/guides/connect-node-1da":{"__comp":"17896441","content":"f744a4d0"},"/docs/user/videos-and-tutorials/guides/migrating-from-avado-38e":{"__comp":"17896441","content":"b9b44023"},"/docs/user/videos-and-tutorials/overview-a86":{"__comp":"17896441","content":"d508510a"},"/-4a5":{"__comp":"1df93b7f","__context":{"plugin":"0aa77f7e"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]);
\ No newline at end of file
diff --git a/assets/js/main.5d3b7253.js.LICENSE.txt b/assets/js/main.44a56600.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.5d3b7253.js.LICENSE.txt
rename to assets/js/main.44a56600.js.LICENSE.txt
diff --git a/assets/js/main.5d3b7253.js b/assets/js/main.5d3b7253.js
deleted file mode 100644
index 675afc3e1..000000000
--- a/assets/js/main.5d3b7253.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.5d3b7253.js.LICENSE.txt */
-(self.webpackChunkd_app_node_docs=self.webpackChunkd_app_node_docs||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"0085f636":[()=>n.e(8925).then(n.bind(n,9353)),"@site/docs/user/rollups/optimism.md",9353],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1223)),"@theme/BlogTagsListPage",1223],"027d004c":[()=>n.e(8352).then(n.bind(n,8470)),"@site/docs/dao/node-basics.md",8470],"031793e1":[()=>n.e(1633).then(n.t.bind(n,2511,19)),"~blog/default/blog-tags-facebook-038.json",2511],"0429b4a1":[()=>n.e(6197).then(n.bind(n,497)),"@site/docs/user/dappnode-cloud/providers/aws/overview.md",497],"058440e4":[()=>n.e(3964).then(n.bind(n,6529)),"@site/docs/user/staking/overview.md",6529],"065c701c":[()=>n.e(7197).then(n.t.bind(n,4469,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"090ba480":[()=>n.e(5788).then(n.bind(n,2963)),"@site/docs/smooth/deep-dive-into-smooth/overview.md",2963],"096bfee4":[()=>n.e(7178).then(n.t.bind(n,5010,19)),"~blog/default/blog-tags-facebook-038-list.json",5010],"0aa77f7e":[()=>n.e(4585).then(n.t.bind(n,5745,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"0af727f1":[()=>n.e(8999).then(n.bind(n,8071)),"@site/docs/smooth/faq-glossary.md",8071],"0f7f07eb":[()=>n.e(7675).then(n.bind(n,4027)),"@site/docs/user/access-your-dappnode/terminal.md",4027],"14c20d3a":[()=>n.e(903).then(n.bind(n,8377)),"@site/docs/user/staking/ethereum/solo/holesky.md",8377],17896441:[()=>Promise.all([n.e(532),n.e(7874),n.e(7918)]).then(n.bind(n,8945)),"@theme/DocItem",8945],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1473)),"@theme/SearchPage",1473],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,8391)),"@site/src/pages/index.tsx",8391],"1e4f1bb9":[()=>n.e(1323).then(n.bind(n,5381)),"@site/docs/user/packages/dms.md",5381],"1ee5c5d2":[()=>n.e(3389).then(n.bind(n,6030)),"@site/docs/smooth/deep-dive-into-smooth/oracle-sm.md",6030],20034248:[()=>n.e(3743).then(n.bind(n,2627)),"@site/docs/user/ethical-metrics/overview.md",2627],"2057bc77":[()=>n.e(5091).then(n.bind(n,4386)),"@site/docs/user/hardware/maintenance.md",4386],"22a3df87":[()=>n.e(2559).then(n.bind(n,3585)),"@site/docs/user/install/script.md",3585],25229465:[()=>n.e(4952).then(n.bind(n,6639)),"@site/docs/user/ethical-metrics/metrics.md",6639],"29689ead":[()=>n.e(9344).then(n.bind(n,1373)),"@site/docs/smooth/deep-dive-into-smooth/vanilla-blocks.md",1373],"2a82f816":[()=>n.e(437).then(n.bind(n,1469)),"@site/docs/dev/references/manifest.md",1469],"2c509ddc":[()=>n.e(4840).then(n.bind(n,4550)),"@site/docs/smooth/subscribe-to-smooth/manual.md",4550],"3093fe32":[()=>n.e(641).then(n.bind(n,9024)),"@site/docs/user/dappnode-cloud/overview.md",9024],"30a24c52":[()=>n.e(453).then(n.t.bind(n,8605,19)),"~blog/default/blog-tags-hello-039.json",8605],"31f84294":[()=>n.e(3995).then(n.bind(n,9742)),"@site/docs/user/staking/gnosis-chain/incentive-program.md",9742],"342f5eb1":[()=>n.e(4350).then(n.bind(n,2808)),"@site/docs/user/staking/ethereum/lsd-pools/lido/overview.md",2808],"34d45c9f":[()=>n.e(7089).then(n.bind(n,1598)),"@site/docs/smooth.md",1598],"3f7aee3c":[()=>n.e(9779).then(n.bind(n,8801)),"@site/docs/user/access-your-dappnode/overview.md",8801],"3fac1d53":[()=>n.e(7533).then(n.bind(n,7771)),"@site/docs/smooth/deep-dive-into-smooth/states.md",7771],"4bb29089":[()=>n.e(4258).then(n.bind(n,2344)),"@site/docs/user/packages/understanding-dappnode-packages/overview.md",2344],"4c4b1a63":[()=>n.e(3504).then(n.bind(n,3043)),"@site/docs/user/videos-and-tutorials/driving-school/configuration.md",3043],"4c9e35b1":[()=>n.e(9035).then(n.t.bind(n,499,19)),"~blog/default/blog-tags-hola-ea2-list.json",499],"4d8f6977":[()=>n.e(5815).then(n.bind(n,718)),"@site/docs/user/staking/ethereum/dvt-technologies/obol-network.md",718],"51a190f1":[()=>n.e(8636).then(n.bind(n,2243)),"@site/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator.md",2243],"536a4320":[()=>n.e(9374).then(n.bind(n,392)),"@site/docs/user/faqs.md",392],"5373dce7":[()=>n.e(1606).then(n.t.bind(n,2776,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"53ed655b":[()=>n.e(5708).then(n.bind(n,3252)),"@site/docs/user/packages/monero.md",3252],"5456a9ed":[()=>n.e(1600).then(n.bind(n,242)),"@site/docs/user/access-your-dappnode/local.md",242],59362658:[()=>n.e(2267).then(n.bind(n,7797)),"@site/blog/2021-08-01-mdx-blog-post.mdx",7797],"59a51c52":[()=>n.e(4980).then(n.bind(n,9837)),"@site/docs/user/ethical-metrics/setup.md",9837],"5b35db5e":[()=>n.e(7775).then(n.bind(n,2292)),"@site/docs/user/access-your-dappnode/vpn/openvpn.md",2292],"5d0a1dad":[()=>n.e(306).then(n.bind(n,919)),"@site/docs/user/getting-started/choose-your-path.md",919],"5d665ce0":[()=>n.e(8646).then(n.bind(n,9513)),"@site/docs/user/hardware/overview.md",9513],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5f141bf4":[()=>n.e(6796).then(n.bind(n,656)),"@site/docs/user/packages/understanding-dappnode-packages/logs.md",656],"5f877448":[()=>n.e(839).then(n.bind(n,6506)),"@site/docs/user/access-your-dappnode/vpn/overview.md",6506],"608ae6a4":[()=>n.e(6938).then(n.t.bind(n,4545,19)),"~blog/default/blog-tags-docusaurus-0e0-list.json",4545],66406991:[()=>n.e(110).then(n.t.bind(n,711,19)),"~blog/default/blog-tags-hello-039-list.json",711],"6696a323":[()=>n.e(4405).then(n.bind(n,6373)),"@site/docs/dev/package-development/multi-configuration.md",6373],"67625ece":[()=>n.e(120).then(n.bind(n,8386)),"@site/docs/dev/sdk/overview.md",8386],"6875c492":[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"6c88006d":[()=>n.e(1285).then(n.t.bind(n,3769,19)),"/home/runner/work/DAppNodeDocs/DAppNodeDocs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"6e504cb9":[()=>n.e(9402).then(n.bind(n,865)),"@site/docs/user/dappnode-cloud/providers/coming-soon.md",865],"6e93d9f5":[()=>n.e(935).then(n.bind(n,1830)),"@site/docs/smooth/unsubscribe-from-smooth.md",1830],"73664a40":[()=>n.e(3514).then(n.bind(n,1985)),"@site/blog/2019-05-29-long-blog-post.md",1985],"747b92bf":[()=>n.e(4743).then(n.bind(n,2164)),"@site/docs/user/getting-started/connect-dappnode-to-the-router.md",2164],"7661071f":[()=>n.e(9642).then(n.bind(n,3174)),"@site/blog/2021-08-26-welcome/index.md?truncated=true",3174],"769f9326":[()=>n.e(8233).then(n.bind(n,2125)),"@site/docs/user/hardware/temperature.md",2125],"773dc9fa":[()=>n.e(6471).then(n.bind(n,740)),"@site/docs/smooth/subscribe-to-smooth/overview.md",740],"78d28be6":[()=>n.e(3686).then(n.bind(n,4225)),"@site/docs/user/packages/understanding-dappnode-packages/config.md",4225],"793beb66":[()=>n.e(3662).then(n.bind(n,4232)),"@site/docs/dev/package-development/single-configuration.md",4232],"7b2e8791":[()=>n.e(8804).then(n.bind(n,2935)),"@site/docs/dev/sdk/commands.md",2935],"7ef68c32":[()=>n.e(3036).then(n.bind(n,611)),"@site/docs/dao/node-stream.md",611],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],82063238:[()=>n.e(9984).then(n.bind(n,6789)),"@site/docs/dev/references/docker-compose.md",6789],"8717b14a":[()=>n.e(948).then(n.bind(n,7106)),"@site/blog/2019-05-29-long-blog-post.md?truncated=true",7106],"89600f1f":[()=>n.e(5599).then(n.bind(n,1471)),"@site/docs/dao/liquidity-mining.md",1471],"89b6dee8":[()=>n.e(3423).then(n.bind(n,8069)),"@site/docs/user/videos-and-tutorials/driving-school/initial-setup.md",8069],"89e2558e":[()=>n.e(5510).then(n.bind(n,2499)),"@site/docs/user/dappnode-cloud/providers/aws/set-up-instance.md",2499],"8c6013e9":[()=>n.e(6110).then(n.bind(n,1542)),"@site/docs/dev/github-actions.md",1542],"8ec292b8":[()=>n.e(9058).then(n.bind(n,277)),"@site/docs/user/getting-started/setup.md",277],"8f8bba55":[()=>n.e(3038).then(n.bind(n,4756)),"@site/docs/user/packages/understanding-dappnode-packages/backup.md",4756],"8f981d3f":[()=>n.e(6967).then(n.bind(n,742)),"@site/docs/user/staking/ethereum/dvt-technologies/diva.md",742],90558919:[()=>n.e(5458).then(n.bind(n,7597)),"@site/docs/user/getting-started/access-dappnode-via-wifi.md",7597],"91e54d81":[()=>n.e(2642).then(n.bind(n,7589)),"@site/docs/user/packages/signature.md",7589],"925b3f96":[()=>n.e(9003).then(n.bind(n,3902)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",3902],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94131f31":[()=>n.e(4307).then(n.bind(n,6088)),"@site/docs/dev/references/setup-wizard.md",6088],"950718c7":[()=>n.e(1796).then(n.bind(n,78)),"@site/docs/dev.md",78],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],"9e93dc42":[()=>n.e(938).then(n.bind(n,6559)),"@site/docs/user/install/iso.md",6559],a22f54b8:[()=>n.e(2702).then(n.bind(n,5450)),"@site/docs/user/packages/understanding-dappnode-packages/file-manager.md",5450],a33eb6a8:[()=>n.e(3680).then(n.bind(n,7749)),"@site/docs/user/staking/ethereum/lsd-pools/stakewise.md",7749],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a80da1cf:[()=>n.e(3205).then(n.t.bind(n,4863,19)),"~blog/default/blog-tags-docusaurus-0e0.json",4863],a830b4cf:[()=>n.e(2920).then(n.bind(n,1312)),"@site/docs/user/staking/ethereum/lsd-pools/lido/register.md",1312],a83bdfda:[()=>n.e(8769).then(n.bind(n,9618)),"@site/docs/dao/faq.md",9618],a9241739:[()=>n.e(3295).then(n.bind(n,5137)),"@site/docs/user/ethical-metrics/troubleshooting.md",5137],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a960b763:[()=>n.e(7484).then(n.bind(n,377)),"@site/docs/user/packages/swarm.md",377],af26485d:[()=>n.e(2217).then(n.bind(n,9316)),"@site/docs/user/repository/ipfs.md",9316],b1a9ae1f:[()=>n.e(8948).then(n.bind(n,4805)),"@site/docs/dev/package-development/overview.md",4805],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,4556,19)),"~blog/default/blog-archive-80c.json",4556],b4800274:[()=>n.e(5561).then(n.bind(n,9620)),"@site/docs/user/rollups/overview.md",9620],b9b44023:[()=>n.e(5342).then(n.bind(n,2934)),"@site/docs/user/videos-and-tutorials/guides/migrating-from-avado.md",2934],b9c10046:[()=>n.e(4765).then(n.bind(n,7821)),"@site/docs/smooth/subscribe-to-smooth/automatic.md",7821],bebe2ff8:[()=>n.e(2370).then(n.bind(n,3370)),"@site/docs/user/packages/understanding-dappnode-packages/info.md",3370],c38c9aa9:[()=>n.e(8330).then(n.bind(n,6993)),"@site/docs/user/install/overview.md",6993],c75934c3:[()=>n.e(4374).then(n.bind(n,152)),"@site/docs/dev/sdk/sdk-publish.md",152],c7a466cb:[()=>n.e(78).then(n.bind(n,5367)),"@site/docs/user/getting-started/register.md",5367],c9627cbc:[()=>n.e(468).then(n.bind(n,1726)),"@site/docs/user/videos-and-tutorials/crash-course.md",1726],cbc5934e:[()=>n.e(651).then(n.bind(n,4759)),"@site/docs/dao.md",4759],ccc49370:[()=>Promise.all([n.e(532),n.e(7874),n.e(130),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],cdc6bc37:[()=>n.e(4407).then(n.bind(n,4855)),"@site/docs/smooth/deep-dive-into-smooth/rewards.md",4855],d267b4aa:[()=>n.e(7563).then(n.bind(n,9409)),"@site/docs/user/getting-started/next-steps.md",9409],d36fd63a:[()=>n.e(6593).then(n.bind(n,2825)),"@site/docs/user/staking/lukso/solo.md",2825],d47e1b16:[()=>n.e(9739).then(n.bind(n,3453)),"@site/docs/user/packages/bitcoin.md",3453],d508510a:[()=>n.e(2245).then(n.bind(n,9065)),"@site/docs/user/videos-and-tutorials/overview.md",9065],d61c7726:[()=>n.e(5940).then(n.bind(n,2546)),"@site/docs/user/install/arm.md",2546],d6c02fb6:[()=>n.e(3633).then(n.bind(n,9745)),"@site/docs/user/staking/ethereum/solo/mainnet.md",9745],d912498a:[()=>n.e(6209).then(n.bind(n,4775)),"@site/docs/user/repository/ethereum.md",4775],d9f32620:[()=>n.e(1914).then(n.bind(n,8123)),"@site/blog/2021-08-26-welcome/index.md",8123],db6178e4:[()=>n.e(6388).then(n.bind(n,1793)),"@site/docs/user/staking/ethereum/lsd-pools/lido/notifications.md",1793],df56bb67:[()=>n.e(5030).then(n.bind(n,1836)),"@site/docs/user/packages/understanding-dappnode-packages/network.md",1836],dfbda110:[()=>n.e(8162).then(n.bind(n,9097)),"@site/docs/user/packages/avalanche.md",9097],dfcea9c7:[()=>n.e(2441).then(n.bind(n,6238)),"@site/docs/user/access-your-dappnode/wifi.md",6238],e16015ca:[()=>n.e(9700).then(n.t.bind(n,5688,19)),"~blog/default/blog-tags-hola-ea2.json",5688],e26c9afe:[()=>n.e(1206).then(n.bind(n,1291)),"@site/docs/user/staking/ethereum/lsd-pools/stakehouse.md",1291],e273c56f:[()=>n.e(2362).then(n.bind(n,9954)),"@site/blog/2019-05-28-first-blog-post.md",9954],e28e223d:[()=>n.e(9091).then(n.bind(n,2755)),"@site/docs/user/access-your-dappnode/vpn/wireguard.md",2755],e7ae4afa:[()=>n.e(190).then(n.bind(n,4352)),"@site/docs/user/packages/ethclassic.md",4352],e7fcc526:[()=>n.e(5447).then(n.bind(n,5861)),"@site/docs/user/staking/ethereum/dvt-technologies/ssv-network.md",5861],ed77d0ad:[()=>n.e(3218).then(n.bind(n,2250)),"@site/docs/user/staking/ethereum/lsd-pools/rocketpool.md",2250],eef43c71:[()=>n.e(7365).then(n.bind(n,2477)),"@site/docs/user/staking/gnosis-chain/solo.md",2477],ef41a71b:[()=>n.e(4588).then(n.bind(n,1545)),"@site/docs/user/install/dappnode-commands.md",1545],f4f34a3a:[()=>n.e(6203).then(n.bind(n,743)),"@site/blog/2021-08-01-mdx-blog-post.mdx?truncated=true",743],f557db91:[()=>n.e(4543).then(n.bind(n,2089)),"@site/docs/dao/node-drop.md",2089],f744a4d0:[()=>n.e(1605).then(n.bind(n,2747)),"@site/docs/user/videos-and-tutorials/guides/connect-node.md",2747],fcb270fb:[()=>n.e(7410).then(n.bind(n,9831)),"@site/docs/user/dappnode-cloud/providers/aws/faqs.md",9831]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],h=(0,c.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/blog",component:d("/blog","62a"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","818"),exact:!0},{path:"/blog/first-blog-post",component:d("/blog/first-blog-post","0b3"),exact:!0},{path:"/blog/long-blog-post",component:d("/blog/long-blog-post","a48"),exact:!0},{path:"/blog/mdx-blog-post",component:d("/blog/mdx-blog-post","f6d"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","3c3"),exact:!0},{path:"/blog/tags/docusaurus",component:d("/blog/tags/docusaurus","e09"),exact:!0},{path:"/blog/tags/facebook",component:d("/blog/tags/facebook","66f"),exact:!0},{path:"/blog/tags/hello",component:d("/blog/tags/hello","f71"),exact:!0},{path:"/blog/tags/hola",component:d("/blog/tags/hola","fee"),exact:!0},{path:"/blog/welcome",component:d("/blog/welcome","4bd"),exact:!0},{path:"/search",component:d("/search","af0"),exact:!0},{path:"/docs",component:d("/docs","107"),routes:[{path:"/docs",component:d("/docs","bc0"),routes:[{path:"/docs",component:d("/docs","c43"),routes:[{path:"/docs/dao",component:d("/docs/dao","f08"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/faq",component:d("/docs/dao/faq","93b"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/liquidity-mining",component:d("/docs/dao/liquidity-mining","f84"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/node-basics",component:d("/docs/dao/node-basics","5aa"),exact:!0,sidebar:"daoSidebar"},{path:"/docs/dao/node-drop",component:d("/docs/dao/node-drop","188"),exact:!0},{path:"/docs/dao/node-stream",component:d("/docs/dao/node-stream","e47"),exact:!0},{path:"/docs/dev",component:d("/docs/dev","921"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/github-actions",component:d("/docs/dev/github-actions","769"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/multi-configuration",component:d("/docs/dev/package-development/multi-configuration","4c7"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/overview",component:d("/docs/dev/package-development/overview","5ee"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/package-development/single-configuration",component:d("/docs/dev/package-development/single-configuration","966"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/docker-compose",component:d("/docs/dev/references/docker-compose","7b3"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/manifest",component:d("/docs/dev/references/manifest","6e9"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/references/setup-wizard",component:d("/docs/dev/references/setup-wizard","900"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/commands",component:d("/docs/dev/sdk/commands","665"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/overview",component:d("/docs/dev/sdk/overview","4c1"),exact:!0,sidebar:"devSidebar"},{path:"/docs/dev/sdk/sdk-publish",component:d("/docs/dev/sdk/sdk-publish","2cb"),exact:!0,sidebar:"devSidebar"},{path:"/docs/smooth",component:d("/docs/smooth","9c0"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/oracle-sm",component:d("/docs/smooth/deep-dive-into-smooth/oracle-sm","986"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/overview",component:d("/docs/smooth/deep-dive-into-smooth/overview","79c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/rewards",component:d("/docs/smooth/deep-dive-into-smooth/rewards","20c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/states",component:d("/docs/smooth/deep-dive-into-smooth/states","3a4"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/deep-dive-into-smooth/vanilla-blocks",component:d("/docs/smooth/deep-dive-into-smooth/vanilla-blocks","dd4"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/faq-glossary",component:d("/docs/smooth/faq-glossary","d7a"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/automatic",component:d("/docs/smooth/subscribe-to-smooth/automatic","53c"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/manual",component:d("/docs/smooth/subscribe-to-smooth/manual","dd2"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/subscribe-to-smooth/overview",component:d("/docs/smooth/subscribe-to-smooth/overview","713"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/smooth/unsubscribe-from-smooth",component:d("/docs/smooth/unsubscribe-from-smooth","032"),exact:!0,sidebar:"smoothSidebar"},{path:"/docs/user/access-your-dappnode/local",component:d("/docs/user/access-your-dappnode/local","24f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/overview",component:d("/docs/user/access-your-dappnode/overview","e1d"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/terminal",component:d("/docs/user/access-your-dappnode/terminal","4de"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/openvpn",component:d("/docs/user/access-your-dappnode/vpn/openvpn","39c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/overview",component:d("/docs/user/access-your-dappnode/vpn/overview","ff5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/vpn/wireguard",component:d("/docs/user/access-your-dappnode/vpn/wireguard","40b"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/access-your-dappnode/wifi",component:d("/docs/user/access-your-dappnode/wifi","60d"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/overview",component:d("/docs/user/dappnode-cloud/overview","8a1"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/faqs",component:d("/docs/user/dappnode-cloud/providers/aws/faqs","ff8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/overview",component:d("/docs/user/dappnode-cloud/providers/aws/overview","a22"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/aws/set-up-instance",component:d("/docs/user/dappnode-cloud/providers/aws/set-up-instance","a3c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/dappnode-cloud/providers/coming-soon",component:d("/docs/user/dappnode-cloud/providers/coming-soon","971"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/metrics",component:d("/docs/user/ethical-metrics/metrics","b30"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/overview",component:d("/docs/user/ethical-metrics/overview","059"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/setup",component:d("/docs/user/ethical-metrics/setup","0d8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/ethical-metrics/troubleshooting",component:d("/docs/user/ethical-metrics/troubleshooting","373"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/faqs",component:d("/docs/user/faqs","884"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/access-dappnode-via-wifi",component:d("/docs/user/getting-started/access-dappnode-via-wifi","920"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/choose-your-path",component:d("/docs/user/getting-started/choose-your-path","daf"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/connect-dappnode-to-the-router",component:d("/docs/user/getting-started/connect-dappnode-to-the-router","90c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/next-steps",component:d("/docs/user/getting-started/next-steps","4fe"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/register",component:d("/docs/user/getting-started/register","fff"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/getting-started/setup",component:d("/docs/user/getting-started/setup","901"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/maintenance",component:d("/docs/user/hardware/maintenance","546"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/overview",component:d("/docs/user/hardware/overview","c38"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/hardware/temperature",component:d("/docs/user/hardware/temperature","676"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/arm",component:d("/docs/user/install/arm","89f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/dappnode-commands",component:d("/docs/user/install/dappnode-commands","109"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/iso",component:d("/docs/user/install/iso","3bd"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/overview",component:d("/docs/user/install/overview","0da"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/install/script",component:d("/docs/user/install/script","2a7"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/avalanche",component:d("/docs/user/packages/avalanche","201"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/bitcoin",component:d("/docs/user/packages/bitcoin","216"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/dms",component:d("/docs/user/packages/dms","412"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/ethclassic",component:d("/docs/user/packages/ethclassic","6d5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/monero",component:d("/docs/user/packages/monero","b8c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/signature",component:d("/docs/user/packages/signature","7f0"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/swarm",component:d("/docs/user/packages/swarm","444"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/backup",component:d("/docs/user/packages/understanding-dappnode-packages/backup","509"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/config",component:d("/docs/user/packages/understanding-dappnode-packages/config","7b5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/file-manager",component:d("/docs/user/packages/understanding-dappnode-packages/file-manager","317"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/info",component:d("/docs/user/packages/understanding-dappnode-packages/info","cea"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/logs",component:d("/docs/user/packages/understanding-dappnode-packages/logs","a6b"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/network",component:d("/docs/user/packages/understanding-dappnode-packages/network","6e8"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/packages/understanding-dappnode-packages/overview",component:d("/docs/user/packages/understanding-dappnode-packages/overview","83a"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/repository/ethereum",component:d("/docs/user/repository/ethereum","657"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/repository/ipfs",component:d("/docs/user/repository/ipfs","8c2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/rollups/optimism",component:d("/docs/user/rollups/optimism","cfe"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/rollups/overview",component:d("/docs/user/rollups/overview","a8a"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/diva",component:d("/docs/user/staking/ethereum/dvt-technologies/diva","cf2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/obol-network",component:d("/docs/user/staking/ethereum/dvt-technologies/obol-network","770"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/dvt-technologies/ssv-network",component:d("/docs/user/staking/ethereum/dvt-technologies/ssv-network","085"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator",component:d("/docs/user/staking/ethereum/lsd-pools/lido/already-node-operator","c93"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/notifications",component:d("/docs/user/staking/ethereum/lsd-pools/lido/notifications","d91"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/overview",component:d("/docs/user/staking/ethereum/lsd-pools/lido/overview","107"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/lido/register",component:d("/docs/user/staking/ethereum/lsd-pools/lido/register","0ff"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/rocketpool",component:d("/docs/user/staking/ethereum/lsd-pools/rocketpool","fa6"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/stakehouse",component:d("/docs/user/staking/ethereum/lsd-pools/stakehouse","42f"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/lsd-pools/stakewise",component:d("/docs/user/staking/ethereum/lsd-pools/stakewise","ee5"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/solo/holesky",component:d("/docs/user/staking/ethereum/solo/holesky","301"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/ethereum/solo/mainnet",component:d("/docs/user/staking/ethereum/solo/mainnet","951"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/gnosis-chain/incentive-program",component:d("/docs/user/staking/gnosis-chain/incentive-program","aa2"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/gnosis-chain/solo",component:d("/docs/user/staking/gnosis-chain/solo","1f9"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/lukso/solo",component:d("/docs/user/staking/lukso/solo","a2e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/staking/overview",component:d("/docs/user/staking/overview","93e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/crash-course",component:d("/docs/user/videos-and-tutorials/crash-course","a95"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/driving-school/configuration",component:d("/docs/user/videos-and-tutorials/driving-school/configuration","8d6"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/driving-school/initial-setup",component:d("/docs/user/videos-and-tutorials/driving-school/initial-setup","59c"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/guides/connect-node",component:d("/docs/user/videos-and-tutorials/guides/connect-node","1da"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/guides/migrating-from-avado",component:d("/docs/user/videos-and-tutorials/guides/migrating-from-avado","38e"),exact:!0,sidebar:"userSidebar"},{path:"/docs/user/videos-and-tutorials/overview",component:d("/docs/user/videos-and-tutorials/overview","a86"),exact:!0}]}]}]},{path:"/",component:d("/","4a5"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),b=n(6668),y=n(1944),v=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(h.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var j=n(8934),P=n(8940),R=n(469);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r Your Docusaurus site did not load properly. A very common reason is a wrong site baseUrl configuration. Current configured baseUrl = ${e} ${"/"===e?" (default value)":""} We suggest trying baseUrl = .comment
can become .namespace--comment
) or replace them with your defined ones (like .editor__comment
). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll
and highlightAllUnder
methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l