mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
external rename (#2265)
* backend rename * rename embassy and closes #2179 * update root ca name on disk * update MOTD * update readmes * your server typo * another tiny typo * fix png name * Update backend/src/net/wifi.rs Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com> * changes needed due to rebase --------- Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com> Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
class="ion-text-center"
|
||||
style="padding-bottom: 36px; font-size: calc(2vw + 14px)"
|
||||
>
|
||||
embassyOS - Diagnostic Mode
|
||||
StartOS - Diagnostic Mode
|
||||
</h1>
|
||||
|
||||
<ng-container *ngIf="error">
|
||||
@@ -16,7 +16,7 @@
|
||||
font-weight: bold;
|
||||
"
|
||||
>
|
||||
embassyOS launch error:
|
||||
StartOS launch error:
|
||||
</h2>
|
||||
<div class="code-block">
|
||||
<code>
|
||||
@@ -28,7 +28,7 @@
|
||||
</span>
|
||||
</code>
|
||||
</div>
|
||||
<ion-button routerLink="logs"> View Logs </ion-button>
|
||||
<ion-button routerLink="logs">View Logs</ion-button>
|
||||
<h2
|
||||
style="
|
||||
padding: 32px 0 16px 0;
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="code-block">
|
||||
<code><ion-text color="success">{{ error.solution }}</ion-text></code>
|
||||
</div>
|
||||
<ion-button (click)="restart()"> Restart Embassy </ion-button>
|
||||
<ion-button (click)="restart()">Restart Server</ion-button>
|
||||
<ion-button
|
||||
class="ion-padding-start"
|
||||
*ngIf="error.code === 15 || error.code === 25"
|
||||
@@ -52,15 +52,15 @@
|
||||
</ion-button>
|
||||
|
||||
<div class="ion-padding-top">
|
||||
<ion-button (click)="presentAlertSystemRebuild()" color="warning"
|
||||
>System Rebuild</ion-button
|
||||
>
|
||||
<ion-button (click)="presentAlertSystemRebuild()" color="warning">
|
||||
System Rebuild
|
||||
</ion-button>
|
||||
</div>
|
||||
|
||||
<div class="ion-padding-top">
|
||||
<ion-button (click)="presentAlertRepairDisk()" color="danger"
|
||||
>Repair Drive</ion-button
|
||||
>
|
||||
<ion-button (click)="presentAlertRepairDisk()" color="danger">
|
||||
Repair Drive
|
||||
</ion-button>
|
||||
</div>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
@@ -70,12 +70,12 @@
|
||||
class="ion-text-center"
|
||||
style="padding-bottom: 36px; font-size: calc(2vw + 12px)"
|
||||
>
|
||||
Embassy is restarting
|
||||
Server is restarting
|
||||
</h1>
|
||||
<h2 style="padding-bottom: 16px; font-size: calc(1vw + 12px)">
|
||||
Wait for Embassy restart, then refresh this page or click REFRESH below.
|
||||
Wait for the server to restart, then refresh this page.
|
||||
</h2>
|
||||
<ion-button (click)="refreshPage()"> Refresh </ion-button>
|
||||
<ion-button (click)="refreshPage()">Refresh</ion-button>
|
||||
</ng-template>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
@@ -32,7 +32,7 @@ export class HomePage {
|
||||
code: 15,
|
||||
problem: 'Unknown storage drive detected',
|
||||
solution:
|
||||
'To use a different storage drive, replace the current one and click RESTART EMBASSY below. To use the current storage drive, click USE CURRENT DRIVE below, then follow instructions. No data will be erased during this process.',
|
||||
'To use a different storage drive, replace the current one and click RESTART SERVER below. To use the current storage drive, click USE CURRENT DRIVE below, then follow instructions. No data will be erased during this process.',
|
||||
details: error.data?.details,
|
||||
}
|
||||
// no drive
|
||||
@@ -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 StartOS storage drive and click RESTART SERVER below.',
|
||||
details: error.data?.details,
|
||||
}
|
||||
// drive corrupted
|
||||
@@ -60,7 +60,7 @@ export class HomePage {
|
||||
code: 2,
|
||||
problem: 'Filesystem I/O error.',
|
||||
solution:
|
||||
'Repairing the disk could help resolve this issue. Please DO NOT unplug the drive or Embassy during this time or the situation will become worse.',
|
||||
'Repairing the disk could help resolve this issue. Please DO NOT unplug the drive or server during this time or the situation will become worse.',
|
||||
details: error.data?.details,
|
||||
}
|
||||
// disk management error - disk needs repair
|
||||
@@ -69,7 +69,7 @@ export class HomePage {
|
||||
code: 48,
|
||||
problem: 'Disk management error.',
|
||||
solution:
|
||||
'Repairing the disk could help resolve this issue. Please DO NOT unplug the drive or Embassy during this time or the situation will become worse.',
|
||||
'Repairing the disk could help resolve this issue. Please DO NOT unplug the drive or server during this time or the situation will become worse.',
|
||||
details: error.data?.details,
|
||||
}
|
||||
} else {
|
||||
@@ -122,7 +122,7 @@ export class HomePage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Warning',
|
||||
message:
|
||||
'<p>This action will tear down all service containers and rebuild them from scratch. No data will be deleted.</p><p>A system rebuild can be useful if your system gets into a bad state, and it should only be performed if you are experiencing general performance or reliability issues.</p><p>It may take up to an hour to complete. During this time, you will lose all connectivity to your Embassy.</p>',
|
||||
'<p>This action will tear down all service containers and rebuild them from scratch. No data will be deleted.</p><p>A system rebuild can be useful if your system gets into a bad state, and it should only be performed if you are experiencing general performance or reliability issues.</p><p>It may take up to an hour to complete. During this time, you will lose all connectivity to your Start9 server.</p>',
|
||||
buttons: [
|
||||
{
|
||||
text: 'Cancel',
|
||||
|
||||
@@ -9,7 +9,7 @@ export class MockApiService implements ApiService {
|
||||
await pauseFor(1000)
|
||||
return {
|
||||
code: 15,
|
||||
message: 'Unknown Embassy',
|
||||
message: 'Unknown server',
|
||||
data: { details: 'Some details about the error here' },
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>StartOS Diagnostic UI</title>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>embassyOS Diagnostic UI</title>
|
||||
<base href="/" />
|
||||
|
||||
<base href="/" />
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
|
||||
/>
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="msapplication-tap-highlight" content="no" />
|
||||
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="msapplication-tap-highlight" content="no" />
|
||||
|
||||
<link rel="icon" type="image/png" href="assets/icon/favicon.ico" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
<link rel="icon" type="image/png" href="assets/icon/favicon.ico" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -70,11 +70,9 @@
|
||||
></ion-icon>
|
||||
<ion-label>
|
||||
<h1>
|
||||
<ion-text color="success"
|
||||
>Re-Install embassyOS</ion-text
|
||||
>
|
||||
<ion-text color="success">Re-Install StartOS</ion-text>
|
||||
</h1>
|
||||
<h2>Will preserve existing embassyOS data</h2>
|
||||
<h2>Will preserve existing StartOS data</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -92,7 +90,7 @@
|
||||
[color]="(selectedDisk | guid) ? 'danger' : 'success'"
|
||||
>
|
||||
{{ (selectedDisk | guid) ? 'Factory Reset' : 'Install
|
||||
embassyOS' }}
|
||||
StartOS' }}
|
||||
</ion-text>
|
||||
</h1>
|
||||
<h2>Will delete existing data on disk</h2>
|
||||
|
||||
@@ -56,7 +56,7 @@ export class HomePage {
|
||||
|
||||
private async install(overwrite: boolean) {
|
||||
const loader = await this.loadingCtrl.create({
|
||||
message: 'Installing embassyOS...',
|
||||
message: 'Installing StartOS...',
|
||||
})
|
||||
await loader.present()
|
||||
|
||||
@@ -80,7 +80,7 @@ export class HomePage {
|
||||
header: 'Warning',
|
||||
message: `This action will COMPLETELY erase the disk ${
|
||||
vendor || 'Unknown Vendor'
|
||||
} - ${model || 'Unknown Model'} and install embassyOS in its place`,
|
||||
} - ${model || 'Unknown Model'} and install StartOS in its place`,
|
||||
buttons: [
|
||||
{
|
||||
text: 'Cancel',
|
||||
@@ -102,7 +102,7 @@ export class HomePage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Install Success',
|
||||
message:
|
||||
'Remove the USB stick and reboot your device to begin using your new Embassy',
|
||||
'Remove the USB stick and reboot your device to begin using your new Start9 server',
|
||||
buttons: [
|
||||
{
|
||||
text: 'Reboot',
|
||||
@@ -133,7 +133,7 @@ export class HomePage {
|
||||
private async presentAlertComplete() {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Rebooting',
|
||||
message: 'Please wait for embassyOS to restart, then refresh this page',
|
||||
message: 'Please wait for StartOS to restart, then refresh this page',
|
||||
buttons: ['OK'],
|
||||
})
|
||||
await alert.present()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>embassyOS Install Wizard</title>
|
||||
<title>StartOS Install Wizard</title>
|
||||
|
||||
<base href="/" />
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ const routes: Routes = [
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'embassy',
|
||||
path: 'storage',
|
||||
loadChildren: () =>
|
||||
import('./pages/embassy/embassy.module').then(m => m.EmbassyPageModule),
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
ModalController,
|
||||
} from '@ionic/angular'
|
||||
import { ApiService, CifsBackupTarget } from 'src/app/services/api/api.service'
|
||||
import { EmbassyOSDiskInfo } from '@start9labs/shared'
|
||||
import { StartOSDiskInfo } from '@start9labs/shared'
|
||||
import { PasswordPage } from '../password/password.page'
|
||||
|
||||
@Component({
|
||||
@@ -41,7 +41,7 @@ export class CifsModal {
|
||||
await loader.present()
|
||||
|
||||
try {
|
||||
const embassyOS = await this.api.verifyCifs({
|
||||
const diskInfo = await this.api.verifyCifs({
|
||||
...this.cifs,
|
||||
password: this.cifs.password
|
||||
? await this.api.encrypt(this.cifs.password)
|
||||
@@ -50,20 +50,18 @@ export class CifsModal {
|
||||
|
||||
await loader.dismiss()
|
||||
|
||||
this.presentModalPassword(embassyOS)
|
||||
this.presentModalPassword(diskInfo)
|
||||
} catch (e) {
|
||||
await loader.dismiss()
|
||||
this.presentAlertFailed()
|
||||
}
|
||||
}
|
||||
|
||||
private async presentModalPassword(
|
||||
embassyOS: EmbassyOSDiskInfo,
|
||||
): Promise<void> {
|
||||
private async presentModalPassword(diskInfo: StartOSDiskInfo): Promise<void> {
|
||||
const target: CifsBackupTarget = {
|
||||
...this.cifs,
|
||||
mountable: true,
|
||||
'embassy-os': embassyOS,
|
||||
'embassy-os': diskInfo,
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>
|
||||
{{ storageDrive ? 'Set Password' : 'Unlock Drive' }}
|
||||
</ion-title>
|
||||
<ion-title>{{ storageDrive ? 'Set Password' : 'Unlock Drive' }}</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
@@ -13,7 +11,7 @@
|
||||
</p>
|
||||
<ng-template #choose>
|
||||
<p>
|
||||
Choose a password for your Embassy.
|
||||
Choose a password for your server.
|
||||
<i>Make it good. Write it down.</i>
|
||||
</p>
|
||||
</ng-template>
|
||||
|
||||
@@ -6,10 +6,9 @@
|
||||
<ion-card-header class="ion-text-center">
|
||||
<ion-card-title>Use existing drive</ion-card-title>
|
||||
<div class="center-wrapper">
|
||||
<ion-card-subtitle
|
||||
>Select the physical drive containing your Embassy
|
||||
data</ion-card-subtitle
|
||||
>
|
||||
<ion-card-subtitle>
|
||||
Select the physical drive containing your StartOS data
|
||||
</ion-card-subtitle>
|
||||
</div>
|
||||
</ion-card-header>
|
||||
|
||||
@@ -24,8 +23,8 @@
|
||||
<ion-item-group *ngIf="!loading" class="ion-text-center">
|
||||
<!-- drives -->
|
||||
<p *ngIf="!drives.length">
|
||||
No valid Embassy data drives found. Please make sure the drive
|
||||
is a valid Embassy data drive (not a backup) and is firmly
|
||||
No valid StartOS data drives found. Please make sure the drive
|
||||
is a valid StartOS data drive (not a backup) and is firmly
|
||||
connected, then refresh the page.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<ion-card-title>Select storage drive</ion-card-title>
|
||||
<div class="center-wrapper">
|
||||
<ion-card-subtitle>
|
||||
This is the drive where your Embassy data will be stored.
|
||||
This is the drive where your StartOS data will be stored.
|
||||
</ion-card-subtitle>
|
||||
</div>
|
||||
</ion-card-header>
|
||||
@@ -23,8 +23,8 @@
|
||||
<ion-card-title>No drives found</ion-card-title>
|
||||
<div class="center-wrapper">
|
||||
<ion-card-subtitle>
|
||||
Please connect an external storage drive to your Embassy, if
|
||||
applicable. Next, click "Refresh".
|
||||
Please connect a storage drive to your server. Then click
|
||||
"Refresh".
|
||||
</ion-card-subtitle>
|
||||
</div>
|
||||
</ion-card-header>
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
<ion-icon slot="icon-only" name="arrow-back"></ion-icon>
|
||||
</ion-button>
|
||||
<ion-card-title>
|
||||
{{ swiper?.activeIndex === 0 ? 'embassyOS Setup' : 'Recover
|
||||
Options' }}
|
||||
{{ swiper?.activeIndex === 0 ? 'StartOS Setup' : 'Recover Options'
|
||||
}}
|
||||
</ion-card-title>
|
||||
</ion-card-header>
|
||||
<ion-card-content class="ion-margin-bottom">
|
||||
@@ -39,12 +39,12 @@
|
||||
[disabled]="error"
|
||||
detail="false"
|
||||
lines="none"
|
||||
routerLink="/embassy"
|
||||
routerLink="/storage"
|
||||
>
|
||||
<ion-icon slot="start" name="add"></ion-icon>
|
||||
<ion-label>
|
||||
<h2><ion-text color="success">Start Fresh</ion-text></h2>
|
||||
<p>Get started with a brand new Embassy</p>
|
||||
<p>Get started with a brand new Start9 server</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
<ion-icon slot="start" name="reload"></ion-icon>
|
||||
<ion-label>
|
||||
<h2><ion-text color="danger">Recover</ion-text></h2>
|
||||
<p>Recover, restore, or transfer Embassy data</p>
|
||||
<p>Recover, restore, or transfer StartOS data</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ng-template>
|
||||
@@ -78,7 +78,11 @@
|
||||
<h2>
|
||||
<ion-text color="success">Use Existing Drive</ion-text>
|
||||
</h2>
|
||||
<p>Attach an existing embassyOS data drive (<b>not</b> a backup)</p>
|
||||
<p>
|
||||
Attach an existing StartOS data drive (
|
||||
<b>not</b>
|
||||
a backup)
|
||||
</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -95,7 +99,7 @@
|
||||
<ion-text color="primary">Transfer</ion-text>
|
||||
</h2>
|
||||
<p>
|
||||
Transfer data from an existing embassyOS data drive (not a
|
||||
Transfer data from an existing StartOS data drive (not a
|
||||
backup) to a new, preferred drive
|
||||
<br />
|
||||
</p>
|
||||
@@ -116,7 +120,7 @@
|
||||
Restore From Backup (Disaster Recovery)
|
||||
</ion-text>
|
||||
</h2>
|
||||
<p>Restore embassyOS data from an encrypted backup</p>
|
||||
<p>Restore StartOS data from an encrypted backup</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ng-template>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
color="dark"
|
||||
>
|
||||
<ion-card-header>
|
||||
<ion-card-title>Initializing Embassy</ion-card-title>
|
||||
<ion-card-title>Initializing StartOS</ion-card-title>
|
||||
<div class="center-wrapper">
|
||||
<ion-card-subtitle *ngIf="progress.decimal as decimal">
|
||||
Progress: {{ (decimal * 100).toFixed(0)}}%
|
||||
|
||||
@@ -37,7 +37,7 @@ export class ToMessagePipe implements PipeTransform {
|
||||
|
||||
transform(progress: number | null): string {
|
||||
if (['fresh', 'attach'].includes(this.stateService.setupType || '')) {
|
||||
return 'Setting up your Embassy'
|
||||
return 'Setting up your server'
|
||||
}
|
||||
|
||||
if (!progress) {
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<!-- has backup -->
|
||||
<h2 *ngIf="hasValidBackup; else noBackup">
|
||||
<ion-icon name="cloud-done" color="success"></ion-icon>
|
||||
Embassy backup detected
|
||||
StartOS backup detected
|
||||
</h2>
|
||||
<!-- no backup -->
|
||||
<ng-template #noBackup>
|
||||
<h2>
|
||||
<ion-icon name="cloud-offline" color="danger"></ion-icon>
|
||||
No Embassy backup
|
||||
No StartOS backup
|
||||
</h2>
|
||||
</ng-template>
|
||||
</div>
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
<!-- cifs -->
|
||||
<h2 class="target-label">Network Folder</h2>
|
||||
<p class="ion-padding-bottom ion-text-left">
|
||||
Restore your Embassy from a folder on another computer that is
|
||||
connected to the same network as your Embassy.
|
||||
Restore StartOS data from a folder on another computer that is
|
||||
connected to the same network as your server.
|
||||
</p>
|
||||
|
||||
<!-- connect -->
|
||||
@@ -42,8 +42,8 @@
|
||||
<h2 class="target-label">Physical Drive</h2>
|
||||
<div class="ion-text-left ion-padding-bottom">
|
||||
<p>
|
||||
Restore your Embassy from a physical drive that is plugged
|
||||
directly into your Embassy.
|
||||
Restore StartOS data from a physical drive that is plugged
|
||||
directly into your server.
|
||||
</p>
|
||||
<br />
|
||||
<b>
|
||||
|
||||
@@ -86,7 +86,7 @@ export class RecoverPage {
|
||||
},
|
||||
}
|
||||
this.stateService.recoveryPassword = res.data.recoveryPassword
|
||||
this.navCtrl.navigateForward('/embassy')
|
||||
this.navCtrl.navigateForward('/storage')
|
||||
}
|
||||
})
|
||||
await modal.present()
|
||||
@@ -119,7 +119,7 @@ export class RecoverPage {
|
||||
},
|
||||
}
|
||||
this.stateService.recoveryPassword = password
|
||||
this.navCtrl.navigateForward(`/embassy`)
|
||||
this.navCtrl.navigateForward(`/storage`)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Embassy Address Info</title>
|
||||
<title>StartOS Address Info</title>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
@@ -21,7 +21,7 @@
|
||||
padding: 1rem;
|
||||
"
|
||||
>
|
||||
Embassy Address Info
|
||||
StartOS Address Info
|
||||
</h1>
|
||||
|
||||
<section
|
||||
@@ -36,7 +36,7 @@
|
||||
</h2>
|
||||
<p>
|
||||
Visit the address below when you are connected to the same WiFi or
|
||||
Local Area Network (LAN) as your Embassy:
|
||||
Local Area Network (LAN) as your server:
|
||||
</p>
|
||||
<p
|
||||
style="
|
||||
@@ -60,15 +60,15 @@
|
||||
>
|
||||
follow the instructions
|
||||
</a>
|
||||
to establish a secure connection by installing your Embassy's
|
||||
certificate.
|
||||
to establish a secure connection by installing your server's root
|
||||
certificate authority.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="padding: 2rem; text-align: center">
|
||||
<a
|
||||
id="cert"
|
||||
download="embassy.crt"
|
||||
[download]="crtName"
|
||||
style="
|
||||
display: inline-block;
|
||||
padding: 1em 1.2em;
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
import { Component } from '@angular/core'
|
||||
import { Component, Input } from '@angular/core'
|
||||
|
||||
@Component({
|
||||
selector: 'download-doc',
|
||||
templateUrl: 'download-doc.component.html',
|
||||
})
|
||||
export class DownloadDocComponent {}
|
||||
export class DownloadDocComponent {
|
||||
@Input() lanAddress!: string
|
||||
|
||||
get crtName(): string {
|
||||
const hostname = new URL(this.lanAddress).hostname
|
||||
return `${hostname}.crt`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,17 +46,17 @@
|
||||
You can now safely unplug your backup drive
|
||||
</h3>
|
||||
<h3 *ngIf="setupType === 'transfer'">
|
||||
You can now safely unplug your old Embassy drive
|
||||
You can now safely unplug your old StartOS data drive
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<ion-card id="information" (click)="download()">
|
||||
<ion-card-content>
|
||||
<ion-card-title
|
||||
>Download permanent address info</ion-card-title
|
||||
>
|
||||
<ion-card-title>
|
||||
Download permanent address info
|
||||
</ion-card-title>
|
||||
<p>
|
||||
embassy.local was for setup purposes only. It will no
|
||||
start.local was for setup purposes only. It will no
|
||||
longer work.
|
||||
</p>
|
||||
</ion-card-content>
|
||||
@@ -77,7 +77,7 @@
|
||||
>
|
||||
<div class="container">
|
||||
<div class="inline">
|
||||
<p>Go to Embassy login</p>
|
||||
<p>Login to StartOS</p>
|
||||
<ion-icon name="open-outline"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
@@ -86,7 +86,11 @@
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<!-- download elem -->
|
||||
<download-doc hidden id="downloadable"></download-doc>
|
||||
<download-doc
|
||||
hidden
|
||||
id="downloadable"
|
||||
[lanAddress]="lanAddress"
|
||||
></download-doc>
|
||||
</ion-card>
|
||||
</ng-template>
|
||||
</ion-col>
|
||||
|
||||
@@ -84,7 +84,7 @@ export class SuccessPage {
|
||||
encodeURIComponent(this.cert),
|
||||
)
|
||||
let html = this.document.getElementById('downloadable')?.innerHTML || ''
|
||||
this.downloadHtml.download('embassy-info.html', html).then(_ => {
|
||||
this.downloadHtml.download('StartOS-info.html', html).then(_ => {
|
||||
this.disableLogin = false
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<ion-card-title>Transfer</ion-card-title>
|
||||
<div class="center-wrapper">
|
||||
<ion-card-subtitle>
|
||||
Select the physical drive containing your Embassy data
|
||||
Select the physical drive containing your StartOS data
|
||||
</ion-card-subtitle>
|
||||
</div>
|
||||
</ion-card-header>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import * as jose from 'node-jose'
|
||||
import { DiskListResponse, EmbassyOSDiskInfo } from '@start9labs/shared'
|
||||
import { DiskListResponse, StartOSDiskInfo } from '@start9labs/shared'
|
||||
export abstract class ApiService {
|
||||
pubkey?: jose.JWK.Key
|
||||
|
||||
abstract getStatus(): Promise<StatusRes> // setup.status
|
||||
abstract getPubKey(): Promise<void> // setup.get-pubkey
|
||||
abstract getDrives(): Promise<DiskListResponse> // setup.disk.list
|
||||
abstract verifyCifs(cifs: CifsRecoverySource): Promise<EmbassyOSDiskInfo> // setup.cifs.verify
|
||||
abstract verifyCifs(cifs: CifsRecoverySource): Promise<StartOSDiskInfo> // setup.cifs.verify
|
||||
abstract attach(importInfo: AttachReq): Promise<void> // setup.attach
|
||||
abstract execute(setupInfo: ExecuteReq): Promise<void> // setup.execute
|
||||
abstract complete(): Promise<CompleteRes> // setup.complete
|
||||
@@ -58,7 +58,7 @@ export type DiskBackupTarget = {
|
||||
label: string | null
|
||||
capacity: number
|
||||
used: number | null
|
||||
'embassy-os': EmbassyOSDiskInfo | null
|
||||
'embassy-os': StartOSDiskInfo | null
|
||||
}
|
||||
|
||||
export type CifsBackupTarget = {
|
||||
@@ -66,7 +66,7 @@ export type CifsBackupTarget = {
|
||||
path: string
|
||||
username: string
|
||||
mountable: boolean
|
||||
'embassy-os': EmbassyOSDiskInfo | null
|
||||
'embassy-os': StartOSDiskInfo | null
|
||||
}
|
||||
|
||||
export type DiskRecoverySource = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import {
|
||||
DiskListResponse,
|
||||
EmbassyOSDiskInfo,
|
||||
StartOSDiskInfo,
|
||||
encodeBase64,
|
||||
HttpService,
|
||||
isRpcError,
|
||||
@@ -59,7 +59,7 @@ export class LiveApiService extends ApiService {
|
||||
|
||||
async verifyCifs(source: CifsRecoverySource) {
|
||||
source.path = source.path.replace('/\\/g', '/')
|
||||
return this.rpcRequest<EmbassyOSDiskInfo>({
|
||||
return this.rpcRequest<StartOSDiskInfo>({
|
||||
method: 'setup.cifs.verify',
|
||||
params: source,
|
||||
})
|
||||
|
||||
@@ -150,7 +150,7 @@ export class MockApiService extends ApiService {
|
||||
await pauseFor(1000)
|
||||
return {
|
||||
'tor-address': 'http://asdafsadasdasasdasdfasdfasdf.onion',
|
||||
'lan-address': 'https://embassy-abcdefgh.local',
|
||||
'lan-address': 'https://adjective-noun.local',
|
||||
'root-ca': encodeBase64(rootCA),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>StartOS Setup</title>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Embassy Setup</title>
|
||||
<base href="/" />
|
||||
|
||||
<base href="/" />
|
||||
|
||||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="msapplication-tap-highlight" content="no" />
|
||||
<script>
|
||||
var global = window;
|
||||
</script>
|
||||
<link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
<meta
|
||||
name="viewport"
|
||||
content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
|
||||
/>
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="msapplication-tap-highlight" content="no" />
|
||||
<script>
|
||||
var global = window
|
||||
</script>
|
||||
<link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -31,11 +31,11 @@ export interface PartitionInfo {
|
||||
label: string | null
|
||||
capacity: number
|
||||
used: number | null
|
||||
'embassy-os': EmbassyOSDiskInfo | null
|
||||
'embassy-os': StartOSDiskInfo | null
|
||||
guid: string | null
|
||||
}
|
||||
|
||||
export type EmbassyOSDiskInfo = {
|
||||
export type StartOSDiskInfo = {
|
||||
version: string
|
||||
full: boolean
|
||||
'password-hash': string | null
|
||||
|
||||
@@ -41,7 +41,7 @@ export class AppComponent implements OnDestroy {
|
||||
ngOnInit() {
|
||||
this.patch
|
||||
.watch$('ui', 'name')
|
||||
.subscribe(name => this.titleService.setTitle(name || 'embassyOS'))
|
||||
.subscribe(name => this.titleService.setTitle(name || 'StartOS'))
|
||||
}
|
||||
|
||||
splitPaneVisible({ detail }: any) {
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
<div class="inline">
|
||||
<h2 *ngIf="type === 'create'; else restore">
|
||||
<ion-icon name="cloud-outline" color="success"></ion-icon>
|
||||
{{ hasValidBackup ? 'Available, contains existing backup' : 'Available for fresh backup' }}
|
||||
{{
|
||||
hasValidBackup
|
||||
? 'Available, contains existing backup'
|
||||
: 'Available for fresh backup'
|
||||
}}
|
||||
</h2>
|
||||
<ng-template #restore>
|
||||
<h2 *ngIf="hasValidBackup">
|
||||
<ion-icon name="cloud-done-outline" color="success"></ion-icon>
|
||||
Embassy backup detected
|
||||
StartOS backup detected
|
||||
</h2>
|
||||
<h2 *ngIf="!hasValidBackup">
|
||||
<ion-icon name="cloud-offline-outline" color="danger"></ion-icon>
|
||||
No Embassy backup
|
||||
No StartOS backup
|
||||
</h2>
|
||||
</ng-template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
<h2>
|
||||
{{
|
||||
type === 'create'
|
||||
? 'Backup your Embassy to'
|
||||
? 'Backup server to'
|
||||
: 'Restore your services from'
|
||||
}}
|
||||
a folder on another computer that is connected to the same network
|
||||
as your Embassy. View the
|
||||
as your Start9 server. View the
|
||||
<a
|
||||
href="https://docs.start9.com/latest/user-manual/backups/backup-create"
|
||||
target="_blank"
|
||||
@@ -103,11 +103,11 @@
|
||||
<h2>
|
||||
{{
|
||||
type === 'create'
|
||||
? 'Backup your Embassy to'
|
||||
? 'Backup server to'
|
||||
: 'Restore your services from'
|
||||
}}
|
||||
a physcial drive that is plugged directly into your Embassy. View
|
||||
the
|
||||
a physical drive that is plugged directly into your Start9 Server.
|
||||
View the
|
||||
<a
|
||||
href="https://docs.start9.com/latest/user-manual/backups/backup-setup/backup-physical"
|
||||
target="_blank"
|
||||
@@ -118,12 +118,12 @@
|
||||
<ion-icon name="open-outline" size="small"></ion-icon>
|
||||
</a>
|
||||
.
|
||||
<ion-text color="warning"
|
||||
>Warning. Do not use this option if you are using a Raspberry Pi
|
||||
<ion-text color="warning">
|
||||
Warning. Do not use this option if you are using a Raspberry Pi
|
||||
with an external SSD. The Raspberry Pi does not support more
|
||||
than one external drive without additional power and can cause
|
||||
data corruption.</ion-text
|
||||
>
|
||||
data corruption.
|
||||
</ion-text>
|
||||
</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
@@ -136,9 +136,10 @@
|
||||
<br />
|
||||
<p>
|
||||
No drives detected.
|
||||
<a style="cursor: pointer" (click)="refresh()"
|
||||
>Refresh<ion-icon name="refresh"></ion-icon
|
||||
></a>
|
||||
<a style="cursor: pointer" (click)="refresh()">
|
||||
Refresh
|
||||
<ion-icon name="refresh"></ion-icon>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<!-- drives detected -->
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<toast
|
||||
*ngIf="visible$ | async as message"
|
||||
header="Embassy"
|
||||
header="StartOS"
|
||||
[duration]="4000"
|
||||
(dismiss)="onDismiss()"
|
||||
>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<toast
|
||||
*ngIf="visible$ | async as message"
|
||||
class="success-toast"
|
||||
header="embassyOS download complete!"
|
||||
header="StartOS download complete!"
|
||||
(dismiss)="onDismiss()"
|
||||
>
|
||||
Restart your Embassy for these updates to take effect. It can take several
|
||||
Restart your server for these updates to take effect. It can take several
|
||||
minutes to come back online.
|
||||
<button toastButton icon="close" side="start" (click)="onDismiss()"></button>
|
||||
<button toastButton side="end" (click)="restart()">Restart</button>
|
||||
|
||||
@@ -49,28 +49,28 @@ export class WidgetListComponent {
|
||||
title: 'Secure LAN',
|
||||
icon: 'home-outline',
|
||||
color: 'var(--alt-orange)',
|
||||
description: `Download and trust your Embassy's certificate`,
|
||||
description: `Download and trust your server's certificate`,
|
||||
link: '/system/lan',
|
||||
},
|
||||
{
|
||||
title: 'Create Backup',
|
||||
icon: 'duplicate-outline',
|
||||
color: 'var(--alt-purple)',
|
||||
description: 'Back up your Embassy and service data',
|
||||
description: 'Back up StartOS and service data',
|
||||
link: '/system/backup',
|
||||
},
|
||||
{
|
||||
title: 'Embassy Info',
|
||||
title: 'Server Info',
|
||||
icon: 'information-circle-outline',
|
||||
color: 'var(--alt-green)',
|
||||
description: 'View basic information about your Embassy',
|
||||
description: 'View basic information about your server',
|
||||
link: '/system/specs',
|
||||
},
|
||||
{
|
||||
title: 'User Manual',
|
||||
icon: 'map-outline',
|
||||
color: 'var(--alt-yellow)',
|
||||
description: 'Discover what your Embassy can do',
|
||||
description: 'Discover what StartOS can do',
|
||||
link: 'https://docs.start9.com/latest/user-manual/index',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -29,7 +29,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 StartOS.
|
||||
</ion-text>
|
||||
</p>
|
||||
</ion-label>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<div style="padding: 10px 0">
|
||||
<ion-title style="font-size: 32px"
|
||||
>embassyOS {{ versions[0].version }}</ion-title
|
||||
>
|
||||
<ion-title style="font-size: 32px">
|
||||
StartOS {{ versions[0].version }}
|
||||
</ion-title>
|
||||
<div class="underline"></div>
|
||||
<ion-title>
|
||||
<i>Release Notes</i>
|
||||
|
||||
@@ -12,11 +12,35 @@
|
||||
<ion-content class="ion-padding">
|
||||
<h2>This Release</h2>
|
||||
|
||||
<h4>0.3.4.2</h4>
|
||||
<p class="note-padding">
|
||||
View the complete
|
||||
<a
|
||||
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.4.2"
|
||||
target="_blank"
|
||||
noreferrer
|
||||
>
|
||||
release notes
|
||||
</a>
|
||||
for more details.
|
||||
</p>
|
||||
<h6>Highlights</h6>
|
||||
<ul class="spaced-list">
|
||||
<li>Update build system for Server Lite and NUC-based Server One</li>
|
||||
<li>Rename embassyOS to StartOS</li>
|
||||
<li>
|
||||
PWA support for StartOS web interface. You can now save StartOS to your
|
||||
phone as an app!
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Previous Releases</h2>
|
||||
|
||||
<h4>0.3.4.1</h4>
|
||||
<p class="note-padding">
|
||||
View the complete
|
||||
<a
|
||||
href="https://github.com/Start9Labs/embassy-os/releases/tag/v0.3.4.1"
|
||||
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.4.1"
|
||||
target="_blank"
|
||||
noreferrer
|
||||
>
|
||||
@@ -29,13 +53,11 @@
|
||||
<li>0.3.4 bug fixes</li>
|
||||
</ul>
|
||||
|
||||
<h2>Previous Releases</h2>
|
||||
|
||||
<h4>0.3.4</h4>
|
||||
<p class="note-padding">
|
||||
View the complete
|
||||
<a
|
||||
href="https://github.com/Start9Labs/embassy-os/releases/tag/v0.3.4"
|
||||
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.4"
|
||||
target="_blank"
|
||||
noreferrer
|
||||
>
|
||||
|
||||
@@ -14,17 +14,16 @@
|
||||
<app-actions-item
|
||||
[action]="{
|
||||
name: 'Uninstall',
|
||||
description: 'This will uninstall the service from your Embassy and delete all data permanently.',
|
||||
description: 'This will uninstall the service from StartOS and delete all data permanently.',
|
||||
icon: 'trash-outline'
|
||||
}"
|
||||
(click)="tryUninstall(pkg)"
|
||||
>
|
||||
</app-actions-item>
|
||||
></app-actions-item>
|
||||
|
||||
<!-- ** specific actions ** -->
|
||||
<ion-item-divider *ngIf="!(pkg.manifest.actions | empty)"
|
||||
>Actions for {{ pkg.manifest.title }}</ion-item-divider
|
||||
>
|
||||
<ion-item-divider *ngIf="!(pkg.manifest.actions | empty)">
|
||||
Actions for {{ pkg.manifest.title }}
|
||||
</ion-item-divider>
|
||||
<app-actions-item
|
||||
*ngFor="let action of pkg.manifest.actions | keyvalue: asIsOrder"
|
||||
[action]="{
|
||||
@@ -33,7 +32,6 @@
|
||||
icon: 'play-circle-outline'
|
||||
}"
|
||||
(click)="handleAction(pkg, action)"
|
||||
>
|
||||
</app-actions-item>
|
||||
></app-actions-item>
|
||||
</ion-item-group>
|
||||
</ion-content>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<ng-container *ngIf="pkgs$ | async as pkgs; else loading">
|
||||
<ng-container *ngIf="!pkgs.length; else list">
|
||||
<div class="welcome-header">
|
||||
<h1>Welcome to embassyOS</h1>
|
||||
<h1>Welcome to StartOS</h1>
|
||||
</div>
|
||||
<widget-list></widget-list>
|
||||
</ng-container>
|
||||
@@ -38,6 +38,6 @@
|
||||
|
||||
<!-- loading -->
|
||||
<ng-template #loading>
|
||||
<text-spinner text="Connecting to Embassy"></text-spinner>
|
||||
<text-spinner text="Connecting to server"></text-spinner>
|
||||
</ng-template>
|
||||
</ion-content>
|
||||
|
||||
@@ -63,8 +63,10 @@
|
||||
<a
|
||||
[routerLink]="['/system', 'lan']"
|
||||
style="color: var(--ion-color-dark)"
|
||||
>download and trust your Embassy's certificate</a
|
||||
>.
|
||||
>
|
||||
download and trust your server's certificate
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
<ion-button (click)="launchHttps()">
|
||||
Open https
|
||||
|
||||
@@ -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 StartOS - 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,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<ion-card class="card">
|
||||
<ion-card-header>
|
||||
<ion-card-title class="title">Embassy Login</ion-card-title>
|
||||
<ion-card-title class="title">StartOS Login</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content class="ion-margin">
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
name="mail-outline"
|
||||
></ion-icon>
|
||||
<h4 style="color: #767676; margin-top: 0px; font-weight: 600">
|
||||
Important system alerts and notifications from your Embassy will
|
||||
display here
|
||||
Important system alerts and notifications from StartOS will display
|
||||
here
|
||||
</h4>
|
||||
</div>
|
||||
</ion-item-group>
|
||||
|
||||
@@ -18,14 +18,15 @@
|
||||
href="https://docs.start9.com/latest/user-manual/connecting/connecting-lan"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>follow instructions</a
|
||||
>
|
||||
to download and trust your Embassy's Root Certificate Authority
|
||||
follow instructions
|
||||
</a>
|
||||
to download and trust your server's Root Certificate Authority
|
||||
</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
<ion-item button (click)="installCert()">
|
||||
<ion-item button (click)="installCert()" [disabled]="!(crtName$ | async)">
|
||||
<ion-icon slot="start" name="download-outline" size="large"></ion-icon>
|
||||
<ion-label>
|
||||
<h1>Download Certificate</h1>
|
||||
@@ -37,6 +38,6 @@
|
||||
<a
|
||||
id="install-cert"
|
||||
href="/public/eos/local.crt"
|
||||
download="Embassy Local CA.crt"
|
||||
[download]="crtName$ | async"
|
||||
></a>
|
||||
</ion-content>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core'
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
|
||||
import { PatchDB } from 'patch-db-client'
|
||||
import { map } from 'rxjs'
|
||||
import { DataModel } from 'src/app/services/patch-db/data-model'
|
||||
|
||||
@Component({
|
||||
selector: 'lan',
|
||||
@@ -7,6 +10,12 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class LANPage {
|
||||
readonly crtName$ = this.patch
|
||||
.watch$('server-info', 'lan-address')
|
||||
.pipe(map(addr => `${new URL(addr).hostname}.crt`))
|
||||
|
||||
constructor(private readonly patch: PatchDB<DataModel>) {}
|
||||
|
||||
installCert(): void {
|
||||
document.getElementById('install-cert')?.click()
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ export class ServerBackupPage {
|
||||
.pipe(skip(1), takeUntil(this.destroy$))
|
||||
.subscribe(isBackingUp => {
|
||||
if (!isBackingUp) {
|
||||
this.navCtrl.navigateRoot('/embassy')
|
||||
this.navCtrl.navigateRoot('/system')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title> System </ion-title>
|
||||
<ion-title>System</ion-title>
|
||||
<ion-buttons slot="end">
|
||||
<badge-menu-button></badge-menu-button>
|
||||
</ion-buttons>
|
||||
@@ -10,7 +10,7 @@
|
||||
<ion-content class="ion-padding with-widgets">
|
||||
<!-- loading -->
|
||||
<ng-template #loading>
|
||||
<text-spinner text="Connecting to Embassy"></text-spinner>
|
||||
<text-spinner text="Connecting to server"></text-spinner>
|
||||
</ng-template>
|
||||
|
||||
<!-- loaded -->
|
||||
@@ -22,7 +22,7 @@
|
||||
<p style="font-weight: 600">
|
||||
Click the button on the right to switch to https. Your browser may
|
||||
warn you that the page is insecure. You can safely bypass this
|
||||
warning. It will go away after you download and trust your Embassy's
|
||||
warning. It will go away after you download and trust your server's
|
||||
certificate
|
||||
</p>
|
||||
</ion-label>
|
||||
|
||||
@@ -65,7 +65,7 @@ export class ServerShowPage {
|
||||
message: `This value will be displayed as the title of your browser tab.`,
|
||||
label: 'Device Name',
|
||||
useMask: false,
|
||||
placeholder: 'embassyOS',
|
||||
placeholder: 'StartOS',
|
||||
nullable: true,
|
||||
initialValue: chosenName,
|
||||
buttonText: 'Save',
|
||||
@@ -113,7 +113,7 @@ export class ServerShowPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Restart',
|
||||
message:
|
||||
'Are you sure you want to restart your Embassy? It can take several minutes to come back online.',
|
||||
'Are you sure you want to restart your server? It can take several minutes to come back online.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'Cancel',
|
||||
@@ -135,7 +135,7 @@ export class ServerShowPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Warning',
|
||||
message:
|
||||
'Are you sure you want to power down your Embassy? This can take several minutes, and your Embassy will not come back online automatically. To power on again, You will need to physically unplug your Embassy and plug it back in',
|
||||
'Are you sure you want to power down your server? This can take several minutes, and your server will not come back online automatically. To power on again, You will need to physically unplug your server and plug it back in',
|
||||
buttons: [
|
||||
{
|
||||
text: 'Cancel',
|
||||
@@ -159,7 +159,7 @@ export class ServerShowPage {
|
||||
const minutes = Object.keys(localPkgs).length * 2
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Warning',
|
||||
message: `This action will tear down all service containers and rebuild them from scratch. No data will be deleted. This action is useful if your system gets into a bad state, and it should only be performed if you are experiencing general performance or reliability issues. It may take up to ${minutes} minutes to complete. During this time, you will lose all connectivity to your Embassy.`,
|
||||
message: `This action will tear down all service containers and rebuild them from scratch. No data will be deleted. This action is useful if your system gets into a bad state, and it should only be performed if you are experiencing general performance or reliability issues. It may take up to ${minutes} minutes to complete. During this time, you will lose all connectivity to your server.`,
|
||||
buttons: [
|
||||
{
|
||||
text: 'Cancel',
|
||||
@@ -325,7 +325,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 StartOS.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'OK',
|
||||
@@ -341,7 +341,7 @@ export class ServerShowPage {
|
||||
private async presentAlertInProgress(verb: string, message: string) {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: `${verb} In Progress...`,
|
||||
message: `Stopping all services gracefully. This can take a while.<br /><br />If you have a speaker, your Embassy will <b>♫ play a melody ♫</b> before shutting down. Your Embassy will then become unreachable${message}`,
|
||||
message: `Stopping all services gracefully. This can take a while.<br /><br />If you have a speaker, your server will <b>♫ play a melody ♫</b> before shutting down. Your server will then become unreachable${message}`,
|
||||
buttons: [
|
||||
{
|
||||
text: 'OK',
|
||||
@@ -357,7 +357,7 @@ export class ServerShowPage {
|
||||
Backups: [
|
||||
{
|
||||
title: 'Create Backup',
|
||||
description: 'Back up your Embassy and service data',
|
||||
description: 'Back up StartOS and service data',
|
||||
icon: 'duplicate-outline',
|
||||
action: () =>
|
||||
this.navCtrl.navigateForward(['backup'], { relativeTo: this.route }),
|
||||
@@ -380,7 +380,7 @@ export class ServerShowPage {
|
||||
Manage: [
|
||||
{
|
||||
title: 'Software Update',
|
||||
description: 'Get the latest version of embassyOS',
|
||||
description: 'Get the latest version of StartOS',
|
||||
icon: 'cloud-download-outline',
|
||||
action: () =>
|
||||
this.eosService.updateAvailable$.getValue()
|
||||
@@ -399,7 +399,7 @@ export class ServerShowPage {
|
||||
},
|
||||
{
|
||||
title: 'LAN',
|
||||
description: `Download and trust your Embassy's certificate for a secure local connection`,
|
||||
description: `Download and trust your server's certificate for a secure local connection`,
|
||||
icon: 'home-outline',
|
||||
action: () =>
|
||||
this.navCtrl.navigateForward(['lan'], { relativeTo: this.route }),
|
||||
@@ -409,7 +409,7 @@ export class ServerShowPage {
|
||||
{
|
||||
title: 'SSH',
|
||||
description:
|
||||
'Manage your SSH keys to access your Embassy from the command line',
|
||||
'Manage your SSH keys to access your server from the command line',
|
||||
icon: 'terminal-outline',
|
||||
action: () =>
|
||||
this.navCtrl.navigateForward(['ssh'], { relativeTo: this.route }),
|
||||
@@ -440,7 +440,7 @@ export class ServerShowPage {
|
||||
Insights: [
|
||||
{
|
||||
title: 'About',
|
||||
description: 'Basic information about your Embassy',
|
||||
description: 'Basic information about your server',
|
||||
icon: 'information-circle-outline',
|
||||
action: () =>
|
||||
this.navCtrl.navigateForward(['specs'], { relativeTo: this.route }),
|
||||
@@ -492,7 +492,7 @@ export class ServerShowPage {
|
||||
Support: [
|
||||
{
|
||||
title: 'User Manual',
|
||||
description: 'Discover what your Embassy can do',
|
||||
description: 'Discover what StartOS can do',
|
||||
icon: 'map-outline',
|
||||
action: () =>
|
||||
window.open(
|
||||
@@ -518,7 +518,7 @@ export class ServerShowPage {
|
||||
},
|
||||
{
|
||||
title: 'Donate to Start9',
|
||||
description: `Support embassyOS development`,
|
||||
description: `Support StartOS development`,
|
||||
icon: 'logo-bitcoin',
|
||||
action: () =>
|
||||
this.document.defaultView?.open(
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<ion-content class="with-widgets">
|
||||
<ion-item-group *ngIf="server$ | async as server">
|
||||
<ion-item-divider>embassyOS Info</ion-item-divider>
|
||||
<ion-item-divider>StartOS Info</ion-item-divider>
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2>Version</h2>
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2>
|
||||
Adding SSH keys to your Embassy is useful for command line access, as
|
||||
well as for debugging purposes.
|
||||
<a [href]="docsUrl" target="_blank" rel="noreferrer"
|
||||
>View instructions</a
|
||||
>
|
||||
Adding SSH keys to StartOS is useful for command line access, as well
|
||||
as for debugging purposes.
|
||||
<a [href]="docsUrl" target="_blank" rel="noreferrer">
|
||||
View instructions
|
||||
</a>
|
||||
</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -119,7 +119,7 @@ const sshSpec = {
|
||||
type: 'string',
|
||||
name: 'SSH Key',
|
||||
description:
|
||||
'Enter the SSH public key you would like to authorize for root access to your Embassy.',
|
||||
'Enter the SSH public key you would like to authorize for root access to your server.',
|
||||
nullable: false,
|
||||
masked: false,
|
||||
copyable: false,
|
||||
|
||||
@@ -19,15 +19,16 @@
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2>
|
||||
Adding WiFi credentials to your Embassy allows you to remove the
|
||||
Ethernet cable and move the device anywhere you want. Embassy will
|
||||
Adding WiFi credentials to your StartOS allows you to remove the
|
||||
Ethernet cable and move the device anywhere you want. StartOS will
|
||||
automatically connect to available networks.
|
||||
<a
|
||||
href="https://docs.start9.com/latest/user-manual/wifi"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>View instructions</a
|
||||
>
|
||||
View instructions
|
||||
</a>
|
||||
</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
@@ -42,9 +43,9 @@
|
||||
[disabled]="loading"
|
||||
>
|
||||
<ion-icon slot="start" name="earth-outline" size="large"></ion-icon>
|
||||
<ion-label *ngIf="wifi.country"
|
||||
>{{ wifi.country }} - {{ this.countries[wifi.country] }}</ion-label
|
||||
>
|
||||
<ion-label *ngIf="wifi.country">
|
||||
{{ wifi.country }} - {{ this.countries[wifi.country] }}
|
||||
</ion-label>
|
||||
<ion-label *ngIf="!wifi.country">Select Country</ion-label>
|
||||
</ion-item>
|
||||
|
||||
@@ -79,9 +80,9 @@
|
||||
|
||||
<!-- not loading -->
|
||||
<ng-container *ngIf="!loading && wifi.country">
|
||||
<ion-item-divider *ngIf="!(wifi.ssids | empty)"
|
||||
>Saved Networks</ion-item-divider
|
||||
>
|
||||
<ion-item-divider *ngIf="!(wifi.ssids | empty)">
|
||||
Saved Networks
|
||||
</ion-item-divider>
|
||||
<ion-item
|
||||
button
|
||||
detail="false"
|
||||
|
||||
@@ -61,7 +61,7 @@ export class WifiPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Cannot Complete Action',
|
||||
message:
|
||||
'You must be connected to your Embassy via LAN to change the country.',
|
||||
'You must be connected to your server via LAN to change the country.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'OK',
|
||||
@@ -89,7 +89,7 @@ export class WifiPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Select Country',
|
||||
subHeader:
|
||||
'Warning: Changing the country will delete all saved networks from the Embassy.',
|
||||
'Warning: Changing the country will delete all saved networks from StartOS.',
|
||||
inputs,
|
||||
buttons: [
|
||||
{
|
||||
@@ -225,7 +225,7 @@ export class WifiPage {
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: `Connected to "${ssid}"`,
|
||||
message:
|
||||
'Note. It may take several minutes to an hour for your Embassy to reconnect over Tor.',
|
||||
'Note. It may take several minutes to an hour for StartOS to reconnect over Tor.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'Ok',
|
||||
|
||||
@@ -480,7 +480,7 @@ export module Mock {
|
||||
description: 'LND needs bitcoin to live.',
|
||||
requirement: {
|
||||
type: 'opt-out',
|
||||
how: 'You can use an external node from your Embassy if you prefer.',
|
||||
how: 'You can use an external node from your server if you prefer.',
|
||||
},
|
||||
config: null,
|
||||
},
|
||||
@@ -776,7 +776,7 @@ export module Mock {
|
||||
code: 1,
|
||||
level: NotificationLevel.Success,
|
||||
title: 'Backup Complete',
|
||||
message: 'Embassy and services have been successfully backed up.',
|
||||
message: 'StartOS and services have been successfully backed up.',
|
||||
data: {
|
||||
server: {
|
||||
attempted: false,
|
||||
@@ -942,7 +942,7 @@ export module Mock {
|
||||
{
|
||||
timestamp: '2019-12-26T14:21:30.872Z',
|
||||
message:
|
||||
'\u001b[34mPOST \u001b[0;32;49m200\u001b[0m photoview.embassy/api/graphql \u001b[0;36;49m1.169406ms\u001b',
|
||||
'\u001b[34mPOST \u001b[0;32;49m200\u001b[0m photoview.startos/api/graphql \u001b[0;36;49m1.169406ms\u001b',
|
||||
},
|
||||
{
|
||||
timestamp: '2019-12-26T14:22:30.872Z',
|
||||
@@ -1047,7 +1047,7 @@ export module Mock {
|
||||
hsbdjhasbasda: {
|
||||
type: 'cifs',
|
||||
hostname: 'smb://192.169.10.0',
|
||||
path: '/Desktop/embassy-backups',
|
||||
path: '/Desktop/startos-backups',
|
||||
username: 'TestUser',
|
||||
mountable: false,
|
||||
'embassy-os': {
|
||||
@@ -1072,7 +1072,7 @@ export module Mock {
|
||||
csgashbdjkasnd: {
|
||||
type: 'cifs',
|
||||
hostname: 'smb://192.169.10.0',
|
||||
path: '/Desktop/embassy-backups-2',
|
||||
path: '/Desktop/startos-backups-2',
|
||||
username: 'TestUser',
|
||||
mountable: true,
|
||||
'embassy-os': null,
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
DependencyError,
|
||||
Manifest,
|
||||
} from 'src/app/services/patch-db/data-model'
|
||||
import { EmbassyOSDiskInfo, LogsRes, ServerLogsReq } from '@start9labs/shared'
|
||||
import { StartOSDiskInfo, LogsRes, ServerLogsReq } from '@start9labs/shared'
|
||||
|
||||
export module RR {
|
||||
// DB
|
||||
@@ -347,7 +347,7 @@ export interface DiskBackupTarget {
|
||||
label: string | null
|
||||
capacity: number
|
||||
used: number | null
|
||||
'embassy-os': EmbassyOSDiskInfo | null
|
||||
'embassy-os': StartOSDiskInfo | null
|
||||
}
|
||||
|
||||
export interface CifsBackupTarget {
|
||||
@@ -356,7 +356,7 @@ export interface CifsBackupTarget {
|
||||
path: string
|
||||
username: string
|
||||
mountable: boolean
|
||||
'embassy-os': EmbassyOSDiskInfo | null
|
||||
'embassy-os': StartOSDiskInfo | null
|
||||
}
|
||||
|
||||
export type RecoverySource = DiskRecoverySource | CifsRecoverySource
|
||||
|
||||
@@ -12,7 +12,7 @@ import { BUILT_IN_WIDGETS } from '../../pages/widgets/built-in/widgets'
|
||||
|
||||
export const mockPatchData: DataModel = {
|
||||
ui: {
|
||||
name: `Matt's Embassy`,
|
||||
name: `Matt's Server`,
|
||||
'ack-welcome': '1.0.0',
|
||||
theme: 'Dark',
|
||||
widgets: BUILT_IN_WIDGETS.filter(
|
||||
@@ -46,7 +46,7 @@ export const mockPatchData: DataModel = {
|
||||
id: 'abcdefgh',
|
||||
version: '0.3.4',
|
||||
'last-backup': new Date(new Date().valueOf() - 604800001).toISOString(),
|
||||
'lan-address': 'https://embassy-abcdefgh.local',
|
||||
'lan-address': 'https://adjective-noun.local',
|
||||
'tor-address': 'http://myveryownspecialtoraddress.onion',
|
||||
'ip-info': {
|
||||
eth0: {
|
||||
@@ -609,7 +609,7 @@ export const mockPatchData: DataModel = {
|
||||
description: 'LND needs bitcoin to live.',
|
||||
requirement: {
|
||||
type: 'opt-out',
|
||||
how: 'You can use an external node from your Embassy if you prefer.',
|
||||
how: 'You can use an external node from your server if you prefer.',
|
||||
},
|
||||
config: null,
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>embassyOS</title>
|
||||
<title>StartOS</title>
|
||||
|
||||
<base href="/" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user