Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/link-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@ jobs:
key: cache-lychee-${{ github.sha }}
restore-keys: cache-lychee-

# Run link checker on the generated HTML
- name: Run Link Checker
id: lychee
uses: lycheeverse/lychee-action@2b973e86fc7b1f6b36a93795fe2c9c6ae1118621 # v1.10.0
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2.8.0
with:
args: >
--config ./lychee.toml
--root-dir ${{ github.workspace }}
pages/**/*
token: ${{ secrets.GITHUB_TOKEN }}

Expand Down
24 changes: 10 additions & 14 deletions lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
# Accepts log level: "error", "warn", "info", "debug", "trace"
verbose = "error"

# Show progress
progress = false

# Path to summary output file.
# output = "report.md"

Expand Down Expand Up @@ -59,14 +56,11 @@ require_https = true
# Request method
method = "get"

# Custom request headers
headers = []

# Remap URI matching pattern to different URI.
# remap = [ "https://example.com http://example.invalid" ]

# Base URL or website root directory to check relative URLs.
# base = "https://docs.balena.io"
# Base URL for resolving root-relative links.
# base_url = "https://docs.balena.io"

# HTTP basic auth support. This will be the username and password passed to the
# authorization HTTP header. See
Expand All @@ -88,6 +82,7 @@ headers = []
# The balena/resin API urls will not respond to unauthenticated requests
# The gstatic and googleapis links go 404 and are excluded ever since we started checking HTML
# balenaCLI linux binary URLs always error out since they are generated on run time only
# admin.google.com/ac/apps/unified always redirects to login
# File URLs are excluded as they aren't checked properly and error out
exclude = [
"https://github.com/balena-io-library/base-images",
Expand Down Expand Up @@ -118,13 +113,17 @@ exclude = [
"https://www.googletagmanager.com/gtm.js?*",
"https://github.com/balena-io/docs/issues/new?*",
"https://api/",
"https://raw.githubusercontent.com/balena-os/meta-balena/$%7Bos_version_tag%7D/meta-balena-common/recipes-containers/balena-supervisor/balena-supervisor.inc",
"https://raw.githubusercontent.com/balena-os/meta-balena/[^/]+/meta-balena-common/recipes-containers/balena-supervisor/balena-supervisor.inc",
".gitbook/assets/",
"^[^http]"
"https://admin.google.com/ac/apps/unified"
]

# Exclude these filesystem paths from getting checked.
exclude_path = []
exclude_path = [
"pages/external-docs/balena-cli/v[0-9\\.]+\\.md$",
"pages/external-docs/sdk/node-sdk/v[0-9\\.]+\\.md$",
"pages/external-docs/sdk/python-sdk/v[0-9\\.]+\\.md$"
]

# Already mentioned in the GitHub action to include paths to check links
include = []
Expand All @@ -143,6 +142,3 @@ exclude_all_private = true

# # Exclude loopback IP address range and localhost from checking
# exclude_loopback = false

# Exclude all mail addresses from checking
exclude_mail = true
2 changes: 1 addition & 1 deletion pages/faq/troubleshooting/var-som-mx6.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ If you have an HDMI screen attached, you should see balena logo on the screen wh

### Detailed provisioning instructions

Currently balenaOS on the Variscite VAR-SOM-MX6 is only capable of booting from SD card, but in the future [eMMC booting will be supported](https://github.com/balena-os/resin-imx6ul-var-dart/issues/64). To provision the device, do the following:
Currently balenaOS on the Variscite VAR-SOM-MX6 is only capable of booting from SD card, but in the future [eMMC booting will be supported](https://github.com/balena-os/balena-variscite/issues/64). To provision the device, do the following:

1. Verify Switch SW5 is OFF (downwards).
2. Set Boot select switch (SW6) right to boot from microSD Card.
Expand Down
2 changes: 1 addition & 1 deletion pages/learn/develop/cloud-iot-provisioning/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Our IoT provisioning tools automate device registration to AWS IoT Core, and lev
Provisioning includes three components:

* **Service Container** like [Cloud Relay block](https://github.com/balena-io-examples/cloud-relay) on a device to request the provisioning and use the credential environment variables from balenaCloud
* **Lambda (cloud) function** to securely validate device identity and register the device with IoT Core, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/%7B%7B$cloud.provisionRepoName%7D%7D/blob/master/index.js))
* **Lambda (cloud) function** to securely validate device identity and register the device with IoT Core, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/aws-iot-provision/blob/master/index.js))
* **balenaCloud** to accept and store the generated key/certificate credentials for the device

The cloud function first validates the device UUID in the provision request with balenaCloud. Then it generates a public key certificate and registers with the IoT Core service. The function then provides the generated credentials to balenaCloud, which stores and pushes them to the device as environment variables for use by the service container.
Expand Down
2 changes: 1 addition & 1 deletion pages/learn/develop/cloud-iot-provisioning/azure.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Our IoT provisioning tools automate device registration to Azure IoT Hub, and le
Provisioning includes three components:

* **Service Container** like [Cloud Relay block](https://github.com/balena-io-examples/cloud-relay) on a device to request the provisioning and use the credential environment variables from balenaCloud
* **Azure (cloud) function** to securely validate device identity and register the device with IoT Hub, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/%7B%7B$cloud.provisionRepoName%7D%7D/blob/master/index.js))
* **Azure (cloud) function** to securely validate device identity and register the device with IoT Hub, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/azure-iot-provision/blob/master/index.js))
* **balenaCloud** to accept and store the generated key/certificate credentials for the device

The cloud function first validates the device UUID in the provision request with balenaCloud. Then it generates a public key certificate and registers with the IoT Hub service. The function then provides the generated credentials to balenaCloud, which stores and pushes them to the device as environment variables for use by the service container.
Expand Down
2 changes: 1 addition & 1 deletion pages/learn/develop/cloud-iot-provisioning/cb-gcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Our IoT provisioning tools automate device registration to ClearBlade IoT Core,
Provisioning includes three components:

* **Service Container** like [Cloud Relay block](https://github.com/balena-io-examples/cloud-relay) on a device to request the provisioning and use the credential environment variables from balenaCloud
* **Cloud function** to securely validate device identity and register the device with IoT Core, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/%7B%7B$cloud.provisionRepoName%7D%7D/blob/master/index.js))
* **Cloud function** to securely validate device identity and register the device with IoT Core, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/cb-gcp-iot-provision/blob/master/index.js))
* **balenaCloud** to accept and store the generated key/certificate credentials for the device

The cloud function first validates the device UUID in the provision request with balenaCloud. Then it generates a public key pair and registers with the IoT Core service. The function then provides the generated credentials to balenaCloud, which stores and pushes them to the device as environment variables for use by the service container.
Expand Down
2 changes: 1 addition & 1 deletion pages/learn/develop/hardware/gpio.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The appropriate method to access GPIO features is via the standard Linux libgpio

The current Raspberry Pi GPIO libraries include:

* [Libgpiod](https://libgpiod.readthedocs.io/en/latest/) is a C library and set of tools for interacting with the Linux GPIO character devices (/dev/gpiochipX).
* [Libgpiod](https://libgpiod.readthedocs.io/en/master/) is a C library and set of tools for interacting with the Linux GPIO character devices (/dev/gpiochipX).
* [Pinctrl](https://github.com/raspberrypi/utils/tree/master/pinctrl) is a more powerful replacement for raspi-gpio, a tool for displaying and modifying the GPIO and pin muxing state of a system. It accesses the hardware directly, bypassing the kernel drivers
* [Rpi-lgpio](https://rpi-lgpio.readthedocs.io/en/release-0.4/) is a compatibility package intended to provide compatibility with the rpi-gpio (aka RPi.GPIO) library, on top of kernels that only support the gpiochip device (and which have removed the deprecated sysfs GPIO interface).

Expand Down
2 changes: 1 addition & 1 deletion pages/learn/manage/actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Balena currently exposes **port 80** for web forwarding. This setting enables we

The Public Device URL feature is a tool for remote configuration, debugging, and other intermittent or periodic use cases. The feature is built on [Cloudlink](../welcome/security.md#cloudlink) and not designed for high availability. We do not recommend using the Public Device URL feature for continuous use as part of your application.

For applications that require a stable, continuously available public endpoint, we recommend using a dedicated tunneling service designed for production use. Popular services include [Cloudflare Tunnels](https://www.cloudflare.com/products/tunnel/) (See our [blog post](https://www.balena.io/blog/expose-your-balena-device-to-the-internet-with-cloudflare-tunnel/), [Tailscale](https://tailscale.com/) and [Ngrok](https://ngrok.com/).
For applications that require a stable, continuously available public endpoint, we recommend using a dedicated tunneling service designed for production use. Popular services include [Cloudflare Tunnels](https://www.cloudflare.com/products/tunnel/) (See our [blog post](https://blog.balena.io/how-to-expose-your-device-with-a-custom-url-using-cloudflare-tunnels/), [Tailscale](https://tailscale.com/) and [Ngrok](https://ngrok.com/).

<figure><img src="../../.gitbook/assets/toggle-public-url.webp" alt=""><figcaption></figcaption></figure>

Expand Down
2 changes: 1 addition & 1 deletion pages/reference/base-images/balena-base-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ The instructions for installing a language stack from the official binaries is b
* Installing Golang from source: [https://linuxhit.com/how-to-install-go-on-linux-using-official-binary-releases/](https://linuxhit.com/how-to-install-go-on-linux-using-official-binary-releases/)
* Installing OpenJDK from source: [https://openjdk.org/groups/build/doc/building.html](https://openjdk.org/groups/build/doc/building.html) And so on

Note that these instructions are not necessarily written for building a container, so you may have to adapt the steps to work in a Dockerfile. For example, if an instruction says to “download a file with wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz” the line in the Dockerfile would be: `RUN wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz`
Note that these instructions are not necessarily written for building a container, so you may have to adapt the steps to work in a Dockerfile. For example, if an instruction says to “download a file with `wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz`” the line in the Dockerfile would be: `RUN wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz`

## Installing L4T Library Stacks

Expand Down
2 changes: 1 addition & 1 deletion templates/cloud-iot-provisioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Our IoT provisioning tools automate device registration to {{ $cloud.shortName }
Provisioning includes three components:

* **Service Container** like [Cloud Relay block](https://github.com/balena-io-examples/cloud-relay) on a device to request the provisioning and use the credential environment variables from balenaCloud
* **{{ $cloud.cloudFunctionName }} {{#isnt $cloud.cloudFunctionName "Cloud"}}(cloud){{/isnt}} function** to securely validate device identity and register the device with {{ $cloud.iotCoreName }}, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/%7B%7B$cloud.provisionRepoName%7D%7D/blob/master/index.js))
* **{{ $cloud.cloudFunctionName }} {{#isnt $cloud.cloudFunctionName "Cloud"}}(cloud){{/isnt}} function** to securely validate device identity and register the device with {{ $cloud.iotCoreName }}, triggered by an HTTP request ([source code](https://github.com/balena-io-examples/{{ $cloud.provisionRepoName}}/blob/master/index.js))
* **balenaCloud** to accept and store the generated key/certificate credentials for the device

The cloud function first validates the device UUID in the provision request with balenaCloud. Then it generates a {{ $cloud.credentialType }} and registers with the {{ $cloud.iotCoreName }} service. The function then provides the generated credentials to balenaCloud, which stores and pushes them to the device as environment variables for use by the service container.
Expand Down
2 changes: 1 addition & 1 deletion templates/troubleshooting/var-som-mx6.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### Detailed provisioning instructions

Currently balenaOS on the {{ $device.name }} is only capable of booting from SD card, but in the future [eMMC booting will be supported](https://github.com/balena-os/resin-imx6ul-var-dart/issues/64). To provision the device, do the following:
Currently balenaOS on the {{ $device.name }} is only capable of booting from SD card, but in the future [eMMC booting will be supported](https://github.com/balena-os/balena-variscite/issues/64). To provision the device, do the following:

1. Verify Switch SW5 is OFF (downwards).
2. Set Boot select switch (SW6) right to boot from microSD Card.
Expand Down
Loading