mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
💫 Rebranding to embassyOS (#1851)
* name change to embassyOS * filename change * motd ASCII update * some leftovers
This commit is contained in:
6
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
6
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: 🐛 Bug Report
|
||||
description: Create a report to help us improve EmbassyOS
|
||||
description: Create a report to help us improve embassyOS
|
||||
title: '[bug]: '
|
||||
labels: [Bug, Needs Triage]
|
||||
assignees:
|
||||
@@ -14,8 +14,8 @@ body:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: EmbassyOS Version
|
||||
description: What version of EmbassyOS are you running?
|
||||
label: embassyOS Version
|
||||
description: What version of embassyOS are you running?
|
||||
placeholder: e.g. 0.3.0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
4
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: 💡 Feature Request
|
||||
description: Suggest an idea for EmbassyOS
|
||||
description: Suggest an idea for embassyOS
|
||||
title: '[feat]: '
|
||||
labels: [Enhancement]
|
||||
assignees:
|
||||
@@ -27,7 +27,7 @@ body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe Preferred Solution
|
||||
description: How you want this feature added to EmbassyOS?
|
||||
description: How you want this feature added to embassyOS?
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe Alternatives
|
||||
|
||||
@@ -136,21 +136,21 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/Start9
|
||||
|
||||
### Project Structure
|
||||
|
||||
EmbassyOS is composed of the following components. Please visit the README for each component to understand the dependency requirements and installation instructions.
|
||||
- [`ui`](frontend/README.md) (Typescript Ionic Angular) is the code that is deployed to the browser to provide the user interface for EmbassyOS.
|
||||
- [`backend`](backend/README.md) (Rust) is a command line utility, daemon, and software development kit that sets up and manages services and their environments, provides the interface for the ui, manages system state, and provides utilities for packaging services for EmbassyOS.
|
||||
embassyOS is composed of the following components. Please visit the README for each component to understand the dependency requirements and installation instructions.
|
||||
- [`ui`](frontend/README.md) (Typescript Ionic Angular) is the code that is deployed to the browser to provide the user interface for embassyOS.
|
||||
- [`backend`](backend/README.md) (Rust) is a command line utility, daemon, and software development kit that sets up and manages services and their environments, provides the interface for the ui, manages system state, and provides utilities for packaging services for embassyOS.
|
||||
- `patch-db` - A diff based data store that is used to synchronize data between the front and backend.
|
||||
- Notably, `patch-db` has a [client](https://github.com/Start9Labs/patch-db/tree/master/client) with its own dependency and installation requirements.
|
||||
- `rpc-toolkit` - A library for generating an rpc server with cli bindings from Rust functions.
|
||||
- `system-images` - (Docker, Rust) A suite of utility Docker images that are preloaded with EmbassyOS to assist with functions relating to services (eg. configuration, backups, health checks).
|
||||
- [`setup-wizard`](frontend/README.md)- Code for the user interface that is displayed during the setup and recovery process for EmbassyOS.
|
||||
- [`diagnostic-ui`](frontend/README.md) - Code for the user interface that is displayed when something has gone wrong with starting up EmbassyOS, which provides helpful debugging tools.
|
||||
- `system-images` - (Docker, Rust) A suite of utility Docker images that are preloaded with embassyOS to assist with functions relating to services (eg. configuration, backups, health checks).
|
||||
- [`setup-wizard`](frontend/README.md)- Code for the user interface that is displayed during the setup and recovery process for embassyOS.
|
||||
- [`diagnostic-ui`](frontend/README.md) - Code for the user interface that is displayed when something has gone wrong with starting up embassyOS, which provides helpful debugging tools.
|
||||
|
||||
### Your First Code Contribution
|
||||
|
||||
#### Setting Up Your Development Environment
|
||||
|
||||
First, clone the EmbassyOS repository and from the project root, pull in the submodules for dependent libraries.
|
||||
First, clone the embassyOS repository and from the project root, pull in the submodules for dependent libraries.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/Start9Labs/embassy-os.git
|
||||
@@ -160,7 +160,7 @@ git submodule update --init --recursive
|
||||
Depending on which component of the ecosystem you are interested in contributing to, follow the installation requirements listed in that component's README (linked [above](#project-structure))
|
||||
|
||||
#### Building The Image
|
||||
This step is for setting up an environment in which to test your code changes if you do not yet have a EmbassyOS.
|
||||
This step is for setting up an environment in which to test your code changes if you do not yet have a embassyOS.
|
||||
|
||||
- Requirements
|
||||
- `ext4fs` (available if running on the Linux kernel)
|
||||
@@ -177,7 +177,7 @@ Contributions in the form of setup guides for integrations with external applica
|
||||
|
||||
## Styleguides
|
||||
### Formatting
|
||||
Each component of EmbassyOS contains its own style guide. Code must be formatted with the formatter designated for each component. These are outlined within each component folder's README.
|
||||
Each component of embassyOS contains its own style guide. Code must be formatted with the formatter designated for each component. These are outlined within each component folder's README.
|
||||
|
||||
### Atomic Commits
|
||||
Commits [should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention) and diffs should be easy to read.
|
||||
|
||||
16
README.md
16
README.md
@@ -1,4 +1,4 @@
|
||||
# EmbassyOS
|
||||
# embassyOS
|
||||
[](https://github.com/Start9Labs/embassy-os/releases)
|
||||
[](https://github.com/Start9Labs/embassy-os/actions/workflows/product.yaml)
|
||||
[](https://matrix.to/#/#community:matrix.start9labs.com)
|
||||
@@ -12,10 +12,10 @@
|
||||
|
||||
### _Welcome to the era of Sovereign Computing_ ###
|
||||
|
||||
EmbassyOS is a browser-based, graphical operating system for a personal server. EmbassyOS facilitates the discovery, installation, network configuration, service configuration, data backup, dependency management, and health monitoring of self-hosted software services. It is the most advanced, secure, reliable, and user friendly personal server OS in the world.
|
||||
embassyOS is a browser-based, graphical operating system for a personal server. embassyOS facilitates the discovery, installation, network configuration, service configuration, data backup, dependency management, and health monitoring of self-hosted software services. It is the most advanced, secure, reliable, and user friendly personal server OS in the world.
|
||||
|
||||
## Running EmbassyOS
|
||||
There are multiple ways to get your hands on EmbassyOS.
|
||||
## Running embassyOS
|
||||
There are multiple ways to get your hands on embassyOS.
|
||||
|
||||
### :moneybag: Buy an Embassy
|
||||
This is the most convenient option. Simply [buy an Embassy](https://start9.com) from Start9 and plug it in. Depending on where you live, shipping costs and import duties will vary.
|
||||
@@ -29,17 +29,17 @@ While not as convenient as buying an Embassy, this option is easier than you mig
|
||||
|
||||
To pursue this option, follow this [guide](https://start9.com/latest/diy).
|
||||
|
||||
### :hammer_and_wrench: Build EmbassyOS from Source
|
||||
### :hammer_and_wrench: Build embassyOS from Source
|
||||
|
||||
EmbassyOS can be built from source, for personal use, for free.
|
||||
embassyOS can be built from source, for personal use, for free.
|
||||
A detailed guide for doing so can be found [here](https://github.com/Start9Labs/embassy-os/blob/master/build/README.md).
|
||||
|
||||
## :heart: Contributing
|
||||
There are multiple ways to contribute: work directly on EmbassyOS, package a service for the marketplace, or help with documentation and guides. To learn more about contributing, see [here](https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md).
|
||||
There are multiple ways to contribute: work directly on embassyOS, package a service for the marketplace, or help with documentation and guides. To learn more about contributing, see [here](https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md).
|
||||
|
||||
## UI Screenshots
|
||||
<p align="center">
|
||||
<img src="assets/EmbassyOS.png" alt="EmbassyOS" width="65%">
|
||||
<img src="assets/embassyOS.png" alt="embassyOS" width="65%">
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="assets/eos-services.png" alt="Embassy Services" width="45%">
|
||||
|
||||
|
Before Width: | Height: | Size: 285 KiB After Width: | Height: | Size: 285 KiB |
@@ -1,4 +1,4 @@
|
||||
# EmbassyOS Backend
|
||||
# embassyOS Backend
|
||||
|
||||
- Requirements:
|
||||
- [Install Rust](https://rustup.rs)
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
## Structure
|
||||
|
||||
The EmbassyOS backend is broken up into 4 different binaries:
|
||||
The embassyOS backend is broken up into 4 different binaries:
|
||||
|
||||
- embassyd: This is the main workhorse of EmbassyOS - any new functionality you want will likely go here
|
||||
- embassyd: This is the main workhorse of embassyOS - any new functionality you want will likely go here
|
||||
- embassy-init: This is the component responsible for allowing you to set up your device, and handles system initialization on startup
|
||||
- embassy-cli: This is a CLI tool that will allow you to issue commands to embassyd and control it similarly to the UI
|
||||
- embassy-sdk: This is a CLI tool that aids in building and packaging services you wish to deploy to the Embassy
|
||||
@@ -25,7 +25,7 @@ See [here](/backend/Cargo.toml) for details.
|
||||
|
||||
## Building
|
||||
|
||||
You can build the entire operating system image using `make` from the root of the EmbassyOS project. This will subsequently invoke the build scripts above to actually create the requisite binaries and put them onto the final operating system image.
|
||||
You can build the entire operating system image using `make` from the root of the embassyOS project. This will subsequently invoke the build scripts above to actually create the requisite binaries and put them onto the final operating system image.
|
||||
|
||||
## Questions
|
||||
|
||||
|
||||
@@ -767,7 +767,7 @@ pub async fn download_install_s9pk(
|
||||
for (p, lan) in cfg {
|
||||
if p.0 == 80 && lan.ssl || p.0 == 443 && !lan.ssl {
|
||||
return Err(Error::new(
|
||||
eyre!("SSL Conflict with EmbassyOS"),
|
||||
eyre!("SSL Conflict with embassyOS"),
|
||||
ErrorKind::LanPortConflict,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -484,7 +484,7 @@ async fn recover(
|
||||
.await?
|
||||
} else {
|
||||
return Err(Error::new(
|
||||
eyre!("Unsupported version of EmbassyOS: {}", recovery_version),
|
||||
eyre!("Unsupported version of embassyOS: {}", recovery_version),
|
||||
crate::ErrorKind::VersionIncompatible,
|
||||
));
|
||||
};
|
||||
|
||||
@@ -17,7 +17,7 @@ pub struct LatestInformation {
|
||||
/// Captured from https://beta-registry-0-3.start9labs.com/eos/latest 2021-09-24
|
||||
#[test]
|
||||
fn latest_information_from_server() {
|
||||
let data_from_server = r#"{"release-notes":{"0.3.0":"This major software release encapsulates the optimal performance, security, and management enhancments to the EmbassyOS experience."},"headline":"Major EmbassyOS release","version":"0.3.0"}"#;
|
||||
let data_from_server = r#"{"release-notes":{"0.3.0":"This major software release encapsulates the optimal performance, security, and management enhancments to the embassyOS experience."},"headline":"Major embassyOS release","version":"0.3.0"}"#;
|
||||
let latest_information: LatestInformation = serde_json::from_str(data_from_server).unwrap();
|
||||
assert_eq!(latest_information.version.minor(), 3);
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ async fn maybe_do_update(
|
||||
&mut db,
|
||||
None,
|
||||
NotificationLevel::Error,
|
||||
"EmbassyOS Update Failed".to_owned(),
|
||||
"embassyOS Update Failed".to_owned(),
|
||||
format!("Update was not successful because of {}", e),
|
||||
(),
|
||||
None,
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
printf "\n"
|
||||
printf "Welcome to\n"
|
||||
cat << "ASCII"
|
||||
,---. | ,---.,---.
|
||||
|--- ,-.-.|---.,---.,---.,---., .| |`---.
|
||||
| | | || |,---|`---.`---.| || | |
|
||||
| ,---.,---.
|
||||
,---.,-.-.|---.,---.,---.,---., .| |`---.
|
||||
|---'| | || |,---|`---.`---.| || | |
|
||||
`---'` ' '`---'`---^`---'`---'`---|`---'`---'
|
||||
`---'
|
||||
ASCII
|
||||
printf " %s (%s %s)\n" "$(uname -o)" "$(uname -r)" "$(uname -m)"
|
||||
printf " $(embassy-cli --version | sed 's/Embassy CLI /EmbassyOS v/g') - $(embassy-cli git-info)\n"
|
||||
printf " $(embassy-cli --version | sed 's/Embassy CLI /embassyOS v/g') - $(embassy-cli git-info)\n"
|
||||
|
||||
printf "\n"
|
||||
printf " * Documentation: https://start9.com\n"
|
||||
|
||||
@@ -55,7 +55,7 @@ sudo sed -i 's/raspberrypi/embassy/g' /tmp/eos-mnt/etc/hosts
|
||||
# copy over cargo dependencies
|
||||
sudo cp cargo-deps/aarch64-unknown-linux-gnu/release/nc-broadcast /tmp/eos-mnt/usr/local/bin
|
||||
|
||||
# Enter the backend directory, copy over the built EmbassyOS binaries and systemd services, edit the nginx config, then create the .ssh directory
|
||||
# Enter the backend directory, copy over the built embassyOS binaries and systemd services, edit the nginx config, then create the .ssh directory
|
||||
cd backend/
|
||||
|
||||
sudo cp target/aarch64-unknown-linux-gnu/release/embassy-init /tmp/eos-mnt/usr/local/bin
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# EmbassyOS Frontend
|
||||
# embassyOS Frontend
|
||||
|
||||
EmbassyOS has three user interfaces and a shared library, all written in Ionic/Angular/Typescript using an Angular workspace environment:
|
||||
embassyOS has three user interfaces and a shared library, all written in Ionic/Angular/Typescript using an Angular workspace environment:
|
||||
|
||||
1. **ui**: the main user interface
|
||||
1. **setup-wizard**: used to facilitate initial setup
|
||||
1. **diagnostic-ui**: used to display certain diagnostic information in the event EmbassyOS fails to initialize
|
||||
1. **diagnostic-ui**: used to display certain diagnostic information in the event embassyOS fails to initialize
|
||||
1. **marketplace**: abstracted ui elements to search for, list and display details for packages and their dependencies
|
||||
1. **shared**: contains components, types, and functions shared amongst all of the UIs.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
class="ion-text-center"
|
||||
style="padding-bottom: 36px; font-size: calc(2vw + 14px)"
|
||||
>
|
||||
EmbassyOS - Diagnostic Mode
|
||||
embassyOS - Diagnostic Mode
|
||||
</h1>
|
||||
<h2
|
||||
style="
|
||||
@@ -14,7 +14,7 @@
|
||||
font-weight: bold;
|
||||
"
|
||||
>
|
||||
EmbassyOS launch error:
|
||||
embassyOS launch error:
|
||||
</h2>
|
||||
<div class="code-block">
|
||||
<code>
|
||||
|
||||
@@ -41,7 +41,7 @@ export class HomePage {
|
||||
code: 20,
|
||||
problem: 'Storage drive not found',
|
||||
solution:
|
||||
'Insert your EmbassyOS storage drive and click RESTART EMBASSY below.',
|
||||
'Insert your embassyOS storage drive and click RESTART EMBASSY below.',
|
||||
details: error.data?.details,
|
||||
}
|
||||
// drive corrupted
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>EmbassyOS Diagnostic UI</title>
|
||||
<title>embassyOS Diagnostic UI</title>
|
||||
|
||||
<base href="/" />
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</p>
|
||||
<p *ngIf="option['newer-eos']">
|
||||
<ion-text color="danger">
|
||||
Unavailable. Backup was made on a newer version of EmbassyOS.
|
||||
Unavailable. Backup was made on a newer version of embassyOS.
|
||||
</ion-text>
|
||||
</p>
|
||||
</ion-label>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<ion-toolbar>
|
||||
<div style="padding: 10px 0">
|
||||
<ion-title style="font-size: 32px"
|
||||
>EmbassyOS {{ versions[0].version }}</ion-title
|
||||
>embassyOS {{ versions[0].version }}</ion-title
|
||||
>
|
||||
<div class="underline"></div>
|
||||
<ion-title>
|
||||
|
||||
@@ -46,7 +46,7 @@ export function getBasicInfoSpec(devData: DevProjectData): ConfigSpec {
|
||||
type: 'string',
|
||||
name: 'Service Version',
|
||||
description:
|
||||
'Service version - accepts up to four digits, where the last confirms to revisions necessary for EmbassyOS - see documentation: https://github.com/Start9Labs/emver-rs. This value will change with each release of the service',
|
||||
'Service version - accepts up to four digits, where the last confirms to revisions necessary for embassyOS - see documentation: https://github.com/Start9Labs/emver-rs. This value will change with each release of the service',
|
||||
placeholder: 'e.g. 0.1.2.3',
|
||||
nullable: false,
|
||||
masked: false,
|
||||
|
||||
@@ -63,7 +63,7 @@ export class ServerShowPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Cannot Update',
|
||||
message:
|
||||
'You cannot update EmbassyOS when you have unresolved recovered services.',
|
||||
'You cannot update embassyOS when you have unresolved recovered services.',
|
||||
buttons: ['OK'],
|
||||
})
|
||||
await alert.present()
|
||||
@@ -283,7 +283,7 @@ export class ServerShowPage {
|
||||
private async presentAlertLatest() {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Up to date!',
|
||||
message: 'You are on the latest version of EmbassyOS.',
|
||||
message: 'You are on the latest version of embassyOS.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'OK',
|
||||
@@ -335,7 +335,7 @@ export class ServerShowPage {
|
||||
Settings: [
|
||||
{
|
||||
title: 'Software Update',
|
||||
description: 'Get the latest version of EmbassyOS',
|
||||
description: 'Get the latest version of embassyOS',
|
||||
icon: 'cog-outline',
|
||||
action: () =>
|
||||
this.eosService.updateAvailable$.getValue()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<ion-item-group *ngIf="server$ | async as server">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2>EmbassyOS Version</h2>
|
||||
<h2>embassyOS Version</h2>
|
||||
<p>{{ server.version | displayEmver }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -131,7 +131,7 @@ export class LiveApiService extends ApiService {
|
||||
return this.rpcRequest({ method: 'server.update', params })
|
||||
// const res = await this.updateServer(params)
|
||||
// if (res.response === 'no-updates') {
|
||||
// throw new Error('Could not find a newer version of EmbassyOS')
|
||||
// throw new Error('Could not find a newer version of embassyOS')
|
||||
// }
|
||||
// return res
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ export const serverConfig: ConfigSpec = {
|
||||
type: 'boolean',
|
||||
name: 'Auto Check for Updates',
|
||||
description:
|
||||
'If enabled, EmbassyOS will automatically check for updates of itself and installed services. Updating will still require your approval and action. Updates will never be performed automatically.',
|
||||
'If enabled, embassyOS will automatically check for updates of itself and installed services. Updating will still require your approval and action. Updates will never be performed automatically.',
|
||||
default: true,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2 style="color: #e0e0e0; text-align: center; padding-top: 20px;">EmbassyOS is initializing...</h2>
|
||||
<h2 style="color: #e0e0e0; text-align: center; padding-top: 20px;">embassyOS is initializing...</h2>
|
||||
<p style="color: #e0e0e0; text-align: center;">This process can take up to several minutes to complete. Please wait to refresh the page.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user