Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
569d349
content: development: extensions: specify register_service key versions
ES-Alexander Apr 9, 2025
4508c1b
content: development: extensions: correct old manager info
ES-Alexander Apr 9, 2025
cd4ffc6
content: usage: document blueos-ethernet mDNS option
ES-Alexander Apr 10, 2025
168a8ed
content: usage: advanced: update internet config details
ES-Alexander Apr 14, 2025
6c895f2
content: usage: advanced: vehicle-setup: update PWM Outputs
ES-Alexander Apr 14, 2025
8259c17
content: usage: advanced: add custom model creation process
ES-Alexander Apr 14, 2025
f482fe4
content: development: bootstrap: cover startup configuration
ES-Alexander Apr 14, 2025
c934c26
content: usage: advanced: vehicle-setup: update gimbal image
ES-Alexander Apr 14, 2025
26f518b
content: usage: advanced: extensions store update
ES-Alexander Apr 14, 2025
4683707
content: usage: advanced: version-chooser: cover interface updates
ES-Alexander Apr 14, 2025
74b74cf
content: usage: advanced: update system info about
ES-Alexander Apr 14, 2025
6089035
content: usage: advanced: add network usage widgets
ES-Alexander Apr 14, 2025
1bff420
content: usage: advanced: default+backup DHCP server
ES-Alexander Apr 15, 2025
bec520a
content: usage: advanced: vehicle-setup: improve Configure details
ES-Alexander Apr 15, 2025
6229eb0
content: usage: advanced: tip about param info tooltips
ES-Alexander Apr 15, 2025
2f8a360
content: usage: installation: make table of image options
ES-Alexander Apr 15, 2025
b625dd3
content: usage: advanced: update video info
ES-Alexander Apr 15, 2025
4726dbf
content: usage: overview: updates and improvements
ES-Alexander Apr 15, 2025
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
39 changes: 39 additions & 0 deletions content/development/bootstrap/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,45 @@ top = false
BlueOS-bootstrap is responsible for making sure [BlueOS-core](../core) is running as expected, as well as gracefully restarting core during BlueOS updates and if it is detected to have unexpectedly stopped/crashed.
For an update the current core image gets shut down and the newly installed image gets started in its place, whereas in the case of a crash bootstrap reverts to running a known working core image, which is currently the one tagged as `factory` (which is whatever it was first flashed with), so that it's at least possible to access the interface.

### BlueOS Startup Configuration

It is possible to view and configure how BlueOS is started via the built in [File Browser](@/usage/advanced/index.md#file-browser), in the `configs/bootstrap/startup.json` file.

The file includes a variety of relevant fields, and can be used to inject environment variables through the `environment` variable:

```json
{
"core": {
"binds": {
....
},
"enabled": true,
"environment": [
"BLUEOS_DISABLE_SERVICES='ping'"
],
"image": "bluerobotics/blueos-core",
"network": "host",
"privileged": true,
"tag": "master"
}
}
```

#### Environment Variables

The currently available environment variables include:

| Variable | Purpose |
| --- | --- |
| `BLUEOS_DISABLE_SERVICES` | A comma-separated list of [service names](https://github.com/bluerobotics/BlueOS/tree/master/core/services) to disable. |
| `BLUEOS_DISABLE_PATCHES` | A comma-separated list of [patch names](https://github.com/bluerobotics/BlueOS/blob/master/core/tools/blueos_startup_update/blueos_startup_update.py#L696-L726) to disable. |
| `BLUEOS_DISABLE_STARTUP_UPDATE` | An existence flag which prevents BlueOS from automatically starting. |
| `BLUEOS_DISABLE_MEMORY_LIMIT` | An existence flag to allow BlueOS services to run without a memory limit. |
| `SSH_USER` | An optional username as an alternative to the default `pi` user, required by some systems. |
| `SSH_PASSWORD` | An optional password as an alternative to the default `raspberry`. |
| `USER_UID` | An optional user ID for SSH key storage ownership, as an alternative to the default `1000`. |
| `USER_GID` | An optional group ID for SSH key storage ownership, as an alternative to the default `1000`. |

## Codebase

[BlueOS-bootstrap](https://github.com/bluerobotics/BlueOS/tree/master/bootstrap) is open source, and lives within the broader [BlueOS](https://github.com/bluerobotics/BlueOS) GitHub repository. [Issues](https://github.com/bluerobotics/BlueOS/issues) can be used to report bugs or suggest features, and [Pull Requests](https://github.com/bluerobotics/BlueOS/pulls) fixing bugs or adding new features are welcomed.
Expand Down
8 changes: 3 additions & 5 deletions content/development/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,15 +222,13 @@ For an Extension to be properly managed and shareable, the Dockerfile it's creat
- will likely be something like `repo/extension-name >= version`
- `LABEL type`
- Useful for broad-strokes filtering when searching for/browsing Extensions
- Not yet implemented in the Extensions Manager
- Should be one of the following strings:
- `"device-integration"`
- `"other"`
- `"tool"`
- `"example"` (for Extension examples)
- `LABEL tags`
- Useful for finer-grained filtering to help find relevant Extensions
- Not yet implemented in the Extensions Manager
- Must be alpha-numeric (no capital letters, no symbols except dashes)
- Limited to 10 tags per extension
- Some examples (focused around possible Extension functions):
Expand Down Expand Up @@ -268,19 +266,19 @@ To do so requires the Extension to run a HTTP server[^1], at which it must serve
- The official URL for the extension
- `"api"`
- The official URL for the extension's API
- `"extra_query"` (optional)
- `"extra_query"` (optional, `New in 1.4`)
- A string of extra query parameters to include when the extension is accessed through the sidebar
- `"avoid_iframes"` (optional)
- Boolean (`true`/`false`) specifying whether to avoid embedding the extension interface in an iframe.
- `"new_page"` (optional)
- Boolean (`true`/`false`) specifying whether to open the extension in a new page instead of in a BlueOS frame
- `"works_in_relative_paths"` (optional)
- `"works_in_relative_paths"` (optional, `New in 1.4`)
- Boolean (`true`/`false`) specifying whether the extension can be served at an arbitrary base URL
(i.e. it does not access its resources using absolute paths)
- This is required for extensions to be accessible remotely (e.g. via a cloud proxy), and is recommended for all extensions
- Makes the extension available at `/extensionv2/<sanitized_name>/`
- The sanitized name is the `name` field in lowercase, with all non alphanumeric characters removed
- `"extras"` (optional)
- `"extras"` (optional, `New in 1.4`)
- A dictionary of string keys and values, intended for convenience use (e.g. for simplifying integration with other extensions)

As an example:
Expand Down
Binary file added content/usage/advanced/dhcp-server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/usage/advanced/ethernet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/usage/advanced/extensions-store.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading