Skip to content

Commit ec89dcc

Browse files
committed
Update index.md to mirror README.md
1 parent 893f486 commit ec89dcc

File tree

1 file changed

+41
-28
lines changed

1 file changed

+41
-28
lines changed

docs/index.md

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,73 @@
11
# gooseBit
22

3-
<img src="img/goosebit-logo.png" style="width: 100px; height: 100px; display: block;">
3+
<img src="docs/img/goosebit-logo.png" style="width: 100px; height: 100px; display: block;">
44

55
---
66

77
A simplistic, opinionated remote update server implementing hawkBit™'s [DDI API](https://eclipse.dev/hawkbit/apis/ddi_api/).
88

9-
## Setup
9+
## Quick Start
1010

11-
To set up, install the dependencies in `pyproject.toml` with `poetry install`. Then you can run gooseBit by running `main.py`.
11+
### Installation
1212

13-
## Initial Startup
13+
1. Install dependencies using [Poetry](https://python-poetry.org/):
14+
```bash
15+
poetry install
16+
```
17+
2. Launch gooseBit:
18+
```bash
19+
python main.py
20+
```
1421

15-
The first time you start gooseBit, you should change the default username and password inside `settings.yaml`.
16-
The default login credentials for testing are `[email protected]`, `admin`.
22+
### Initial Configuration
23+
24+
Before running gooseBit for the first time, update the default credentials in `settings.yaml`. The default login for testing purposes is:
25+
26+
- **Username:** `[email protected]`
27+
- **Password:** `admin`
1728

1829
## Assumptions
1930

20-
- [SWUpdate](https://swupdate.org) used on device side.
31+
- Devices use [SWUpdate](https://swupdate.org) for managing software updates.
32+
33+
## Features
34+
35+
### Device Registry
36+
37+
When a device connects to gooseBit for the first time, it is automatically added to the device registry. The server will then request the device's configuration data, including:
2138
22-
## Current Feature Set
39+
- `hw_model` and `hw_revision`: Used to match compatible software.
40+
- `sw_version`: Indicates the currently installed software version.
2341
24-
### Software repository
42+
The registry tracks each device's status, including the last online timestamp, installed software version, update state, and more.
2543

26-
Uploading software images through frontend. All files should follow the format `{model}_{revision}_{version}`, where
27-
`version` is either a semantic version or a datetime version in the format `YYYYMMDD-HHmmSS`.
44+
### Software Repository
2845

29-
### Automatic device registration
46+
Software packages (`*.swu` files) can be hosted directly on the gooseBit server or on an external server. gooseBit parses the software metadata to determine compatibility with specific hardware models and revisions.
3047

31-
First time a new device connects, its configuration data is requested. `hw_model` and `hw_revision` are captured from
32-
the configuration data (both fall back to `default` if not provided) which allows to distinguish different device
33-
types and their revisions.
48+
### Device Update Modes
3449

35-
### Automatically update device to newest software
50+
Devices can be configured with different update modes. The default mode is `Rollout`.
3651

37-
Once a device is registered it will get the newest available software from the repository based on model and revision.
52+
#### 1. Manual Update to Specified Software
3853

39-
### Manually update device to specific software
54+
Assign specific software to a device manually. Once installed, no further updates will be triggered.
4055

41-
Frontend allows to assign specific software to be rolled out.
56+
#### 2. Automatic Update to Latest Software
4257

43-
### Software rollout
58+
Automatically updates the device to the latest compatible software, based on the reported `hw_model` and `hw_revision`. Note: versions are interpreted as [SemVer](https://semver.org) versions.
4459

45-
Rollouts allow a fine-grained assignment of software to devices. The reported device model and revision is combined
46-
with the manually set feed value on a device to determine a matching rollout.
60+
#### 3. Software Rollout
4761

48-
The feed is meant to model either different environments (like: dev, qa, live) or update channels (like. candidate,
49-
fast, stable).
62+
Rollouts target all devices with a specified "feed" value, ensuring that the assigned software is installed on all matching devices. Rollouts also track success and error rates, with future plans for automatic aborts. If multiple rollouts exist for the same feed, the most recent rollout takes precedence.
5063

51-
### Pause updates
64+
### Pause Updates
5265

53-
Device can be pinned to its current software.
66+
Devices can be pinned to their current software version, preventing any updates from being applied.
5467

55-
### Realtime update logs
68+
### Real-time Update Logs
5669

57-
While an update is running, the update logs are captured and visualized in the frontend.
70+
While updates are in progress, gooseBit captures real-time logs, which are accessible through the device repository.
5871

5972
## Development
6073

0 commit comments

Comments
 (0)