diff --git a/.github/workflows/publish_mkdocs.yml b/.github/workflows/publish_mkdocs.yml new file mode 100644 index 0000000..d72ffad --- /dev/null +++ b/.github/workflows/publish_mkdocs.yml @@ -0,0 +1,28 @@ +name: Publish mkdocs to gh-pages +on: + push: + branches: + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Configure Git Credentials + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index e525806..0201b46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -./.idea/**/* +/.idea +/site /docker/notification.yml diff --git a/.markdownlint.json b/.markdownlint.json index 816c57f..590746e 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,5 +1,8 @@ { "MD013": { - "line_length": 120 + "line_length": 256 + }, + "MD033": { + "allowed_elements": ["img"] } } diff --git a/README.md b/README.md index 8466427..68973b0 100644 --- a/README.md +++ b/README.md @@ -1,257 +1,28 @@ -# Voi Swarm Participation Node Setup +# Voi Swarm -## Prerequisites +## About -- `curl` -- `apt-get` +This repository contains the installation script and configuration files for setting up a Voi participation node on a +Linux system. -If any package is not available on your system, or if you do not have permission to use said package, follow operating -system guidance on installation and setup. +Success criteria for the installation script are: -## Supported Operating Systems and Compute Platforms +> 1. Offer easy ways for users to operate and maintain their nodes as healthy participants in the Voi network. +> 2. Provide a simple and easy way to onboard new participants. +> 3. The package should be as cheap as possible to run for individual participants. -### Operating Systems +To achieve the above the package is an opinionated way to join the network, and may thus not be suitable for +all use cases. -- Debian -- Ubuntu +## Documentation -### Compute Platforms +Documentation can be found on [https://voinetwork.github.io/voi-swarm/](https://voinetwork.github.io/voi-swarm/) -- arm64 -- amd64 (x86_64) +## Contributing -## New to Voi +Contributions are welcome! Please join the [Voi Network Discord server](https://discord.com/invite/vnFbrJrHeW) to discuss +with other community members and contributors. You can also open an issue or a pull request on GitHub. -To set up a new Voi node, run the following command: +## License -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -## Using an Existing Account/Address with Mnemonic - -If you have an existing account/address with a mnemonic that you want to use, set the VOINETWORK_IMPORT_ACCOUNT -environment variable to 1 and run the installation script: - -```bash -export VOINETWORK_IMPORT_ACCOUNT=1 -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -## Installing Without Wallet Setup - -If you want to install without including wallet setup, set the VOINETWORK_SKIP_WALLET_SETUP environment variable to 1 -and run the installation script: - -```bash -export VOINETWORK_SKIP_WALLET_SETUP=1 -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -## Updating Your Participation Key - -If your Voi node's participation key is nearing its expiry date (less than 14 days left), you can renew it by running -the installation script again. This script is programmed to create new participation keys when the current ones are -close to expiring. So, to keep your Voi node active, make sure your participation key is up-to-date. If it's about to -expire, rerun the installation script to generate a new key. - -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -## Setting up Participation Key Expiry Notifications (Recommended) - -Each online account has a participation key that needs to be valid for the account to participate in the Voi network. -A participation key is valid for a certain number of rounds, which is approximately 14 days. When the participation key -expires the node runner will no longer be able to propose or vote on blocks. To avoid this situation you need to renew -the participation key before expiration. - -To receive a notification when the participation key is about to expire, you can do the following: - -### Copy the Example File - -Start by copying the example notification.yml file to the voi/docker directory: - -`cp ~/voi/docker/notification.yml.example ~/voi/docker/notification.yml` - -### Update the notification.yml File - -Update the notification.yml file with your preferred notification mechanism by updating the NOTIFICATION_URLS -environment variable. The notification mechanism can be a webhook, email, push, or any other notification mechanism that -is available via [Apprise notifications](https://github.com/caronc/apprise?tab=readme-ov-file#supported-notifications) - -If you want to use multiple mechanisms, separate them with a comma. For example, to use both Discord and Pushbullet for -notification, you would set the `NOTIFICATION_URLS` value in the `notification.yml` file to: - -```yaml -NOTIFICATION_URLS="discord:///,pushbullet://" -``` - -### Updating Notification Schedule - -To modify the notification schedule, adjust the `- swarm.cronjob.schedule=0 16 * * *` label in the copied example file. -This is by default set to run daily at 4 PM UTC. Adjust this to your preferred time, accounting for your -timezone's UTC offset. Use a resource like [dateful.com](https://dateful.com/time-zone-converter) for timezone conversion. - -The format of the schedule is following the standard [cronjob format](https://en.wikipedia.org/wiki/Cron#Overview). - -### Applying Notification Configuration to the Stack - -To apply your notification configuration to the stack, rerun the installation script: - -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -### Testing Your Notification Configuration - -To test your notification configuration, you can manually trigger the notification service by running the following command: - -```bash -~/voi/bin/notification-test -``` - -## Setting a Custom Telemetry Name - -To set a custom telemetry name, set the VOINETWORK_TELEMETRY_NAME environment variable to your desired name: - -```bash -export VOINETWORK_TELEMETRY_NAME="my_custom_telemetry_name" -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" -``` - -Custom telemetry name can be combined with other environment variables. - -## Uninstalling - -To uninstall, execute the following commands: - -- Leave the Swarm with `docker swarm leave --force` -- Remove the `voi` directory with `rm -rf /voi/` -- Remove the `data` directory with `sudo rm -rf /var/lib/voi` - -## Useful Scripts - -This section provides a collection of useful scripts for managing your Voi participation node. These scripts are -designed to be executed within a running Docker container. They closely follow the commands outlined in the -[D13 guide](https://d13.co/posts/set-up-voi-participation-node/) for setting up a Voi participation node under Ubuntu 22.04. - -### Creating a Node Wallet - -Create a new wallet with the following command: - -```bash -~/voi/bin/create-wallet -``` - -### Creating an Account - -Create a new account with the following command: - -```bash -~/voi/bin/create-account -``` - -### Retrieving Account Mnemonic - -Retrieve the mnemonic of an existing account with the following command: - -```bash -~/voi/bin/get-account-mnemonic -``` - -### Importing an Account - -Import an existing account with the following command: - -```bash -~/voi/bin/import-account -``` - -### Generating Participation Key - -Generate a participation key for an existing account with the following command: - -```bash -~/voi/bin/generate-participation-key -``` - -### Checking Participation Status - -Check the participation status of an existing account with the following command: - -```bash -~/voi/bin/get-participation-status -``` - -### Going Online - -Bring an existing account online with the following command: - -```bash -~/voi/bin/go-online -``` - -### Going Offline - -Take an existing account offline with the following command: - -```bash -~/voi/bin/go-offline -``` - -### Executing Goal Commands - -Execute goal commands with the following command: - -```bash -~/voi/bin/goal -``` - -### Opening a Bash Shell in the AVM Container - -Open a bash shell in the AVM container with the following command: - -```bash -~/voi/bin/start-shell -``` - -### Getting Basic Node Health - -To retrieve basic health information about your node, execute the following command: - -```bash -~/voi/bin/get-node-status -``` - -The `get-node-status` command performs checks using: - -- `goal node status` to connect to the running daemon and retrieve basic node information -- `/health`: This API endpoint checks the reported health of the node. [REST API /health documentation](https://developer.algorand.org/docs/rest-apis/algod/#get-health). -- `/ready`: This API endpoint checks the reported readiness of the node and if fully caught up. [REST API /ready documentation](https://developer.algorand.org/docs/rest-apis/algod/#get-ready). - -### Testing Notifications - -To test notifications execute the following command: - -```bash -~/voi/bin/notification-test -``` - -## Debugging - -### Startup state for services in stack - -`docker stack ps --no-trunc voinetwork` - -### Replication state for services in stack - -`docker service ls` - -### Pull log files - -`docker service logs voinetwork_algod` - -### Inspect service - -`docker inspect voinetwork_algod` +AGPL-3.0. See [LICENSE](LICENSE) for more information. diff --git a/docs/assets/Voi_Logo_Purple_on_White_Background.png b/docs/assets/Voi_Logo_Purple_on_White_Background.png new file mode 100644 index 0000000..376bfbb Binary files /dev/null and b/docs/assets/Voi_Logo_Purple_on_White_Background.png differ diff --git a/docs/assets/Voi_Logo_White_on_Purple_Background.png b/docs/assets/Voi_Logo_White_on_Purple_Background.png new file mode 100644 index 0000000..c40e129 Binary files /dev/null and b/docs/assets/Voi_Logo_White_on_Purple_Background.png differ diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico new file mode 100644 index 0000000..13944c7 Binary files /dev/null and b/docs/assets/favicon.ico differ diff --git a/docs/cli-tools.md b/docs/cli-tools.md new file mode 100644 index 0000000..f3fd272 --- /dev/null +++ b/docs/cli-tools.md @@ -0,0 +1,95 @@ +# CLI Tools + +## Creating a Node Wallet + +Create a new wallet with the following command: + +```bash +~/voi/bin/create-wallet +``` + +## Creating an Account + +Create a new account with the following command: + +```bash +~/voi/bin/create-account +``` + +### Retrieving Account Mnemonic + +Retrieve the mnemonic of an existing account with the following command: + +```bash +~/voi/bin/get-account-mnemonic +``` + +### Importing an Account + +Import an existing account with the following command: + +```bash +~/voi/bin/import-account +``` + +### Generating Participation Key + +Generate a participation key for an existing account with the following command: + +```bash +~/voi/bin/generate-participation-key +``` + +### Checking Participation Status + +Check the participation status of an existing account with the following command: + +```bash +~/voi/bin/get-participation-status +``` + +### Going Online + +Bring an existing account online with the following command: + +```bash +~/voi/bin/go-online +``` + +### Going Offline + +Take an existing account offline with the following command: + +```bash +~/voi/bin/go-offline +``` + +### Executing Goal Commands + +Execute goal commands with the following command: + +```bash +~/voi/bin/goal +``` + +### Opening a Bash Shell in the AVM Container + +Open a bash shell in the AVM container with the following command: + +```bash +~/voi/bin/start-shell +``` + +### Getting Basic Node Health + +To retrieve basic health information about your node, execute the following command: + +```bash +~/voi/bin/get-node-status +``` + +The `get-node-status` command performs checks using: + +- `goal node status` to connect to the running daemon and retrieve basic node information +- `/health`: This API endpoint checks the reported health of the node. [REST API /health documentation](https://developer.algorand.org/docs/rest-apis/algod/#get-health). +- `/ready`: This API endpoint checks the reported readiness of the node and if fully caught up. [REST API /ready documentation](https://developer.algorand.org/docs/rest-apis/algod/#get-ready). diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..ee3eb7b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,32 @@ +# Home + +swarm-cronjob + +--- + +## What is Voi Swarm? + +Voi Swarm is an opinionated set of scripts and configurations that allows a user to easily to join the Voi n etwork as +a participant . + +Tenets for the Voi Swarm package are: + +> 1. Offer easy ways for users to operate and maintain their nodes as healthy participants in the Voi network. +> 2. Provide a simple and easy way to onboard new participants. +> 3. The package should be as cheap as possible to run for individual participants. + +To achieve the above the package is an opinionated way to join the network, and may thus not be suitable for +all use cases. + +## Features + +- **Effortless Installation**: Deploy a Voi node on Linux with a single command. +- **Rapid Deployment**: Built for swift setup and onboarding. +- **Automatic Updates**: Seamless application of Docker image updates. +- **Health Monitoring**: System auto-restarts the node if needed. +- **Optional Notification**: Get notified when actions are required. +- **Economical**: Supports arm64 and amd64 (x86_64). + +## License + +This project is licensed under AGPL-3.0. diff --git a/docs/installation/installation.md b/docs/installation/installation.md new file mode 100644 index 0000000..0ced605 --- /dev/null +++ b/docs/installation/installation.md @@ -0,0 +1,50 @@ +# Setting up a new Voi Node + +## New to Voi + +!!! tip + Start here if you are new to Voi and want to set up a new Voi node. + During the process you will be asked for a few details to set up your node, and where we have automated as much as possible. + +To set up a new Voi node, run the following command: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +## Using an Existing Account/Address with Mnemonic + +If you have an existing account/address with a mnemonic that you want to use, set the **VOINETWORK_IMPORT_ACCOUNT** +environment variable to **1** and run the installation script: + +```bash +export VOINETWORK_IMPORT_ACCOUNT=1 +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +## Installing Without Wallet Setup + +If you want to install without including wallet setup, set the **VOINETWORK_SKIP_WALLET_SETUP** environment variable to +**1** and run the installation script: + +```bash +export VOINETWORK_SKIP_WALLET_SETUP=1 +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +## Setting a Custom Telemetry Name as part of installation (advanced) + +!!! info + This is an advanced feature and is not required to have telemetry configured. + +During installation, you will be prompted to set a custom telemetry name, if however you prefer to set a name through +the environment you can do so by setting the **VOINETWORK_TELEMETRY_NAME** environment variable to your desired name. + +This would typically be done if you are automating the installation process. + +```bash +export VOINETWORK_TELEMETRY_NAME="my_custom_telemetry_name" +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +A custom telemetry name can be combined with other environment variables. diff --git a/docs/installation/prerequisites.md b/docs/installation/prerequisites.md new file mode 100644 index 0000000..7dcea39 --- /dev/null +++ b/docs/installation/prerequisites.md @@ -0,0 +1,16 @@ +# Prerequisites + +## Package Prerequisites + +- `curl` +- `apt-get` + +If any package is not available on your system, or if you do not have permission to use said package, follow operating +system guidance on installation and setup. + +## Supported Operating Systems and Compute Platforms + +| Operating Systems | Compute Platforms | +|-------------------|-------------------| +| Debian | arm64/amd64 | +| Ubuntu | arm64/amd64 | diff --git a/docs/installation/uninstall.md b/docs/installation/uninstall.md new file mode 100644 index 0000000..8c7cad5 --- /dev/null +++ b/docs/installation/uninstall.md @@ -0,0 +1,27 @@ +# Uninstalling Voi + +## Removing Your Installation + +!!! danger + Make sure to [keep your account mnemonics](../../cli-tools/#retrieving-account-mnemonic) in a safe place. If you lose them, you will lose access to your account, + including any Voi and Via tokens you have. + +To uninstall, execute the following commands: + +- Leave the Swarm + + ```bash + docker swarm leave --force + ``` + +- Remove the **~/voi** directory + + ```bash + rm -rf /voi/ + ``` + +- Remove the **/var/lib/voi** directory + + ```bash + rm -rf /var/lib/voi + ``` diff --git a/docs/notification-guides/pushbullet.md b/docs/notification-guides/pushbullet.md new file mode 100644 index 0000000..c33c3a6 --- /dev/null +++ b/docs/notification-guides/pushbullet.md @@ -0,0 +1,64 @@ +# Pushbullet + +!!! info + Follow guidance on [enabling notifications](../../operating/setup-notifications/) first. + +## What It Is? + +[Pushbullet](https://www.pushbullet.com) is a free and easy-to-use notification service that can be used to send notifications to your phone, tablet, or computer. + +## Supported Ways To Receive Notifications + +- Push notifications to your phone, tablet, or computer + +## How To Set Up Pushbullet + +### Get Started + +!!! info inline end + Full configuration options and capabilities are available via [Apprise](https://github.com/caronc/apprise/wiki/Notify_pushbullet) + +1. Create a Pushbullet account if you don't already have one. Sign up links are on their [homepage](https://www.pushbullet.com). +2. Install the Pushbullet app on your phone, tablet, or computer. +3. Follow the instructions to set up the app on your device. +4. Go to [https://www.pushbullet.com/#settings](https://www.pushbullet.com/#settings) and create an access token. +5. Copy the access token and store securely. +6. Copy the example `notification.yml.example` file to the `notification.yml` file: + + ```bash + cp ~/voi/docker/notification.yml.example ~/voi/docker/notification.yml + ``` + +7. Update the **NOTIFICATION_URLS** value in `notification.yml` file with your Pushbullet access token: + + ```yaml + NOTIFICATION_URLS="pbul://" + ``` + +!!! tip + If you want to use multiple notification mechanisms, separate them with a comma. + For example, to use both Discord and Pushbullet for notification, you would set the **NOTIFICATION_URLS** value + in the `notification.yml` file to: + ```yaml + NOTIFICATION_URLS="discord:///,pbul://" + ``` + +## Testing Your Notification Configuration + +With your configuration in place it's now time to test it. + +First we need to make sure that your changes to notification.yml is picked up by the stack. +To do this, rerun the installation script: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +After the script has run and applied changes to the environment we need to send a test notification to make sure +everything is working as expected. + +To do this, run the following command: + +```bash +~/voi/bin/notification-test +``` diff --git a/docs/operating/participation-keys.md b/docs/operating/participation-keys.md new file mode 100644 index 0000000..5e83cea --- /dev/null +++ b/docs/operating/participation-keys.md @@ -0,0 +1,16 @@ +# Keep Your Participation Keys Up-to-Date + +To participate in the Voi network, you need to keep your participation key up-to-date. +The Participation key is used to sign blocks and participate in the consensus process. +If your participation key is not up-to-date, your node will not be able to participate in the consensus process. + +To keep your participation key up-to-date, you can run the installation script again. The script will create a new key +if your current key is expected to expire within the next 14 days. + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +!!! tip + Setup expiration notifications to receive a reminder when your participation key is about to expire. + [Learn more](./setup-notifications.md) diff --git a/docs/operating/running-your-node.md b/docs/operating/running-your-node.md new file mode 100644 index 0000000..7bc539a --- /dev/null +++ b/docs/operating/running-your-node.md @@ -0,0 +1,19 @@ +# Keeping Your Node Healthy + +!!! info inline end "A healthy node is a happy node" + We are working on improving the running experience by automating and simplifying as much as possible. Join the [Discord](https://discord.com/invite/vnFbrJrHeW) and provide your feedback! + +To operate your node and manage your accounts, you can use the Voi CLI tools. The Voi CLI tools are a set of scripts +that allow you to manage common blockchain actions. The Voi CLI tools are installed with the Voi Swarm package. + +As a participant it's important that you continuously monitor the health of your node, this includes monitoring system +metrics, node health as well as ensuring participation keys are up-to-date. + +| Metrics | Description | How to Monitor | Feature in Voi Swarm | +|--------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| Compute platform metrics | CPU load, disk usage, network bandwidth, etc. | Use cloud / system monitoring tools, [Voi Checker](https://github.com/crypto-morph/voi-checker) | :material-minus: | +| Node health | Node status, participation status, etc. | Use [Voi Checker](https://github.com/crypto-morph/voi-checker) and [Voi Proposer Data](https://cswenor.github.io/voi-proposer-data/health.html) | :material-minus: | +| Participation keys | Participation key status and expiration | Use [CLI tools](../cli-tools.md) to check participation status and setup. Voi Swarm offers [notifications on key expiration](../setup-notifications) | :material-plus: | + +Contributions to improve the health monitoring of the Voi node are welcome. +Please join the [Voi Network Discord server](https://discord.com/invite/vnFbrJrHeW) to discuss with other community members and contributors. You can also open an issue or a pull request on GitHub. diff --git a/docs/operating/setup-notifications.md b/docs/operating/setup-notifications.md new file mode 100644 index 0000000..378a83d --- /dev/null +++ b/docs/operating/setup-notifications.md @@ -0,0 +1,58 @@ +# Setup notifications + +## Enabling Notifications + +Voi Swarm offers the ability to receive notifications when the participation key is about to expire, helping you to keep +your node healthy and active. + +## Get Started + +The notification.yml file is an example file that you can use to set up notifications. +Start by copying the example `~/voi/docker/notification.yml.example` file to the `~/voi/docker` directory +without the .example extension + +```bash +cp ~/voi/docker/notification.yml.example ~/voi/docker/notification.yml` +``` + +## Adding Your Notification Choices + +Update the notification.yml file with your preferred notification mechanism by updating the **NOTIFICATION_URLS** +environment variable. The notification mechanism can be a webhook, email, push, or any other notification mechanism that +is available via [Apprise notifications](https://github.com/caronc/apprise?tab=readme-ov-file#supported-notifications) + +If you want to use multiple mechanisms, separate them with a comma. For example, to use both Discord and Pushbullet for +notification, you would set the **NOTIFICATION_URLS** value in the **notification.yml** file to: + +```yaml +NOTIFICATION_URLS="discord:///,pbul://" +``` + +## Updating Participation Key Checker Schedule + +To modify the participation key notification schedule, adjust the labels in the notification.yml file. + +| Label | Description | +|--------------------------|------------------------| +| `swarm.cronjob.schedule` | `0 16 * * *` (default) | + +This is by default set to run daily at 4 PM UTC. Adjust this to your preferred time, accounting for your +timezone's UTC offset. Use a resource like [dateful.com](https://dateful.com/time-zone-converter) for timezone conversion. + +The format of the schedule is following the [CRON format](https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format). + +## Applying Notification Configuration to the Stack + +To apply your notification configuration to the stack, rerun the installation script: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` + +## Testing Your Notification Configuration + +To test your notification configuration, you can manually trigger the notification service by running the following command: + +```bash +~/voi/bin/notification-test +``` diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..3abed4d --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,5 @@ +:root { + --md-primary-fg-color: #702AE2; + --md-primary-fg-color--light: #702AE2; + --md-primary-fg-color--dark: #702AE2; +} \ No newline at end of file diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md new file mode 100644 index 0000000..7d3ae72 --- /dev/null +++ b/docs/troubleshooting.md @@ -0,0 +1,33 @@ +# Troubleshooting + +## Startup State for Services in Stack + +```bash +docker stack ps --no-trunc voinetwork` +``` + +## Replication State for Services in a Stack + +```bash +docker service ls +``` + +## Pull Log Files for a Service + +```bash +docker service logs voinetwork_algod +``` + +## Inspect Service + +```bash +docker inspect voinetwork_algod +``` + +## Testing Notifications + +To test notifications execute the following command: + +```bash +~/voi/bin/notification-test +``` diff --git a/docs/updating/swarm-update.md b/docs/updating/swarm-update.md new file mode 100644 index 0000000..1785f49 --- /dev/null +++ b/docs/updating/swarm-update.md @@ -0,0 +1,10 @@ +# Updating Voi Swarm + +## Updating the Voi Swarm Package + +To update the Voi Swarm package, you can run the installation script again. This will update the Voi Swarm package to the +latest version, including Docker configuration and utility commands. + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/VoiNetwork/voi-swarm/main/install.sh)" +``` diff --git a/docs/updating/telemetry.md b/docs/updating/telemetry.md new file mode 100644 index 0000000..70d003e --- /dev/null +++ b/docs/updating/telemetry.md @@ -0,0 +1,9 @@ +# Setting Up Telemetry + +## Updating Your Telemetry Name After Installation + +To update your telemetry name after installation, or to opt-out, you can run the following command: + +```bash +~/voi/bin/update-telemetry-name +``` diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..68d446b --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json +site_name: Voi Swarm +site_description: Create and run a Voi Network Participation Node +site_url: https://voinetwork.github.io/voi-swarm/ +repo_url: https://github.com/VoiNetwork/voi-swarm +edit_uri: edit/main/docs/ + +theme: + name: material + language: en + logo: assets/Voi_Logo_White_on_Purple_Background.png + favicon: assets/favicon.ico + palette: + primary: custom + features: + - navigation.instant + - navigation.instant.progress + - content.action.edit + - content.code.copy + - search.suggest + - search.highlight + +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/VoiNetwork/voi-swarm + - icon: fontawesome/brands/discord + link: https://discord.com/invite/vnFbrJrHeW + consent: + title: Cookie consent + description: >- + We use cookies to recognize your repeated visits and preferences, as well + as to measure the effectiveness of our documentation and whether users + find what they're searching for. With your consent, you're helping us to + make our documentation better. + actions: + - accept + - reject + - manage + analytics: + provider: google + property: G-FXJF968XD5 + feedback: + title: Was this page helpful? + ratings: + - icon: material/emoticon-happy-outline + name: This page was helpful + data: 1 + note: >- + Thanks for your feedback! + - icon: material/emoticon-sad-outline + name: This page could be improved + data: 0 + note: >- + Thanks for your feedback! Help us improve this page by + joining our Discord. + +copyright: + Change cookie settings + +markdown_extensions: + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - admonition + - pymdownx.details + - pymdownx.superfences + +plugins: + - search + - social + - git-revision-date-localized: + enabled: true + enable_creation_date: true + - git-authors + +extra_css: + - stylesheets/extra.css + +nav: + - Home: index.md + - Installation: + - Prerequisites: installation/prerequisites.md + - Installation: installation/installation.md + - Uninstall: installation/uninstall.md + - Updating: + - Updating package: updating/swarm-update.md + - Telemetry name: updating/telemetry.md + - Operating: + - Running your node: operating/running-your-node.md + - Participation keys: operating/participation-keys.md + - Setup notifications: operating/setup-notifications.md + - Notification Guides: + - Pushbullet: notification-guides/pushbullet.md + - CLI Tools: cli-tools.md + - Troubleshooting: troubleshooting.md