mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
Fix bugs (#2360)
* fix reset tor, delete http redirect, show message for tor http, update release notes * potentially fix doubel req to registries * change language arund LAN and root ca * link locally instead of docs
This commit is contained in:
@@ -155,7 +155,6 @@ export class EmbassyPage {
|
|||||||
await this.navCtrl.navigateForward(`/loading`)
|
await this.navCtrl.navigateForward(`/loading`)
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
this.errorToastService.present(e)
|
this.errorToastService.present(e)
|
||||||
console.error(e)
|
|
||||||
} finally {
|
} finally {
|
||||||
loader.dismiss()
|
loader.dismiss()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,14 +39,6 @@ export class AppComponent implements OnDestroy {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
if (location.hostname !== 'localhost' && location.protocol === 'http:') {
|
|
||||||
// see if site is available securely
|
|
||||||
const res = await fetch(window.location.href.replace(/^http:/, 'https:'))
|
|
||||||
if (res && res.status === 200) {
|
|
||||||
// redirect
|
|
||||||
window.location.protocol = 'https:'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.patch
|
this.patch
|
||||||
.watch$('ui', 'name')
|
.watch$('ui', 'name')
|
||||||
.subscribe(name => this.titleService.setTitle(name || 'StartOS'))
|
.subscribe(name => this.titleService.setTitle(name || 'StartOS'))
|
||||||
|
|||||||
@@ -40,13 +40,13 @@ const ICONS = [
|
|||||||
'file-tray-stacked-outline',
|
'file-tray-stacked-outline',
|
||||||
'finger-print-outline',
|
'finger-print-outline',
|
||||||
'flash-outline',
|
'flash-outline',
|
||||||
|
'flask-outline',
|
||||||
'flash-off-outline',
|
'flash-off-outline',
|
||||||
'folder-open-outline',
|
'folder-open-outline',
|
||||||
'globe-outline',
|
'globe-outline',
|
||||||
'grid-outline',
|
'grid-outline',
|
||||||
'help-circle-outline',
|
'help-circle-outline',
|
||||||
'hammer-outline',
|
'hammer-outline',
|
||||||
'home-outline',
|
|
||||||
'information-circle-outline',
|
'information-circle-outline',
|
||||||
'key-outline',
|
'key-outline',
|
||||||
'list-outline',
|
'list-outline',
|
||||||
@@ -74,6 +74,7 @@ const ICONS = [
|
|||||||
'remove-circle-outline',
|
'remove-circle-outline',
|
||||||
'remove-outline',
|
'remove-outline',
|
||||||
'repeat-outline',
|
'repeat-outline',
|
||||||
|
'ribbon-outline',
|
||||||
'rocket-outline',
|
'rocket-outline',
|
||||||
'save-outline',
|
'save-outline',
|
||||||
'settings-outline',
|
'settings-outline',
|
||||||
|
|||||||
@@ -46,11 +46,11 @@ export class WidgetListComponent {
|
|||||||
qp: { back: 'true' },
|
qp: { back: 'true' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Secure LAN',
|
title: 'Root CA',
|
||||||
icon: 'home-outline',
|
icon: 'ribbon-outline',
|
||||||
color: 'var(--alt-orange)',
|
color: 'var(--alt-orange)',
|
||||||
description: `Download and trust your server's certificate`,
|
description: `Download and trust your server's root certificate authority`,
|
||||||
link: '/system/lan',
|
link: '/system/root-ca',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Create Backup',
|
title: 'Create Backup',
|
||||||
|
|||||||
@@ -26,12 +26,12 @@
|
|||||||
</p>
|
</p>
|
||||||
<h6>Highlights</h6>
|
<h6>Highlights</h6>
|
||||||
<ul class="spaced-list">
|
<ul class="spaced-list">
|
||||||
<li>Enhanced performance for page load times</li>
|
<li>Https over Tor for faster UI loading times</li>
|
||||||
<li>Improved progress reporting for data transfer to new data drives</li>
|
<li>Change password through UI</li>
|
||||||
<li>Enabled use of IP address for local network backups</li>
|
<li>Use IP address for Network Folder backups</li>
|
||||||
<li>Added change password flow to the UI</li>
|
<li>
|
||||||
<li>Disabled LUKS for new Raspberry Pi setups</li>
|
Multiple bug fixes, performance enhancements, and other small features
|
||||||
<li>Fixed miscellaneous bugs</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Previous Releases</h2>
|
<h2>Previous Releases</h2>
|
||||||
|
|||||||
@@ -52,21 +52,17 @@
|
|||||||
<ion-row class="ion-align-items-center">
|
<ion-row class="ion-align-items-center">
|
||||||
<ion-col class="ion-text-center">
|
<ion-col class="ion-text-center">
|
||||||
<h2>
|
<h2>
|
||||||
<ion-text color="warning">
|
<ion-text color="warning">Http detected</ion-text>
|
||||||
You are using an unencrypted http connection
|
|
||||||
</ion-text>
|
|
||||||
</h2>
|
</h2>
|
||||||
<p class="ion-padding-bottom">
|
<p class="ion-padding-bottom">
|
||||||
Click the button below to switch to https. Your browser may warn
|
Your connection is insecure.
|
||||||
you that the page is insecure. You can safely bypass this
|
|
||||||
warning. It will go away after you
|
|
||||||
<a
|
<a
|
||||||
[routerLink]="['/system', 'lan']"
|
[routerLink]="['/system', 'root-ca']"
|
||||||
style="color: var(--ion-color-dark)"
|
style="color: var(--ion-color-dark)"
|
||||||
>
|
>
|
||||||
download and trust your server's certificate
|
Download and trust your server's Root CA
|
||||||
</a>
|
</a>
|
||||||
.
|
, then switch to https.
|
||||||
</p>
|
</p>
|
||||||
<ion-button (click)="launchHttps()">
|
<ion-button (click)="launchHttps()">
|
||||||
Open https
|
Open https
|
||||||
|
|||||||
@@ -43,9 +43,6 @@ export class ExperimentalFeaturesPage {
|
|||||||
label: 'Wipe state',
|
label: 'Wipe state',
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
value: 'wipe',
|
value: 'wipe',
|
||||||
handler: val => {
|
|
||||||
console.error(val)
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
buttons: [
|
buttons: [
|
||||||
@@ -56,8 +53,7 @@ export class ExperimentalFeaturesPage {
|
|||||||
{
|
{
|
||||||
text: 'Reset',
|
text: 'Reset',
|
||||||
handler: (value: string[]) => {
|
handler: (value: string[]) => {
|
||||||
console.error(value)
|
this.resetTor(value.some(v => v === 'wipe'))
|
||||||
this.resetTor(value.some(v => 'wipe'))
|
|
||||||
},
|
},
|
||||||
cssClass: 'enter-click',
|
cssClass: 'enter-click',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<ion-header>
|
<ion-header>
|
||||||
<ion-toolbar>
|
<ion-toolbar>
|
||||||
<ion-title>Secure LAN</ion-title>
|
<ion-title>Trust Root CA</ion-title>
|
||||||
<ion-buttons slot="start">
|
<ion-buttons slot="start">
|
||||||
<ion-back-button defaultHref="system"></ion-back-button>
|
<ion-back-button defaultHref="system"></ion-back-button>
|
||||||
</ion-buttons>
|
</ion-buttons>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<ion-item class="ion-padding-bottom">
|
<ion-item class="ion-padding-bottom">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h2>
|
<h2>
|
||||||
For a secure local connection,
|
For a secure local connection and faster Tor experience,
|
||||||
<a
|
<a
|
||||||
href="https://docs.start9.com/latest/user-manual/connecting/connecting-lan"
|
href="https://docs.start9.com/latest/user-manual/connecting/connecting-lan"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<ion-item button (click)="installCert()" [disabled]="!(crtName$ | async)">
|
<ion-item button (click)="installCert()" [disabled]="!(crtName$ | async)">
|
||||||
<ion-icon slot="start" name="download-outline" size="large"></ion-icon>
|
<ion-icon slot="start" name="download-outline" size="large"></ion-icon>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h1>Download Certificate</h1>
|
<h1>Download Root CA</h1>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-item-group>
|
</ion-item-group>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const routes: Routes = [
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'lan',
|
path: 'root-ca',
|
||||||
loadChildren: () => import('./lan/lan.module').then(m => m.LANPageModule),
|
loadChildren: () => import('./lan/lan.module').then(m => m.LANPageModule),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,15 +15,20 @@
|
|||||||
|
|
||||||
<!-- loaded -->
|
<!-- loaded -->
|
||||||
<ion-item-group *ngIf="server$ | async as server; else loading">
|
<ion-item-group *ngIf="server$ | async as server; else loading">
|
||||||
<ion-item *ngIf="!secure" color="warning">
|
<ion-item *ngIf="!secure || isTorHttp" color="warning">
|
||||||
<ion-icon slot="start" name="warning-outline"></ion-icon>
|
<ion-icon slot="start" name="warning-outline"></ion-icon>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h2 style="font-weight: bold">You are using unencrypted http</h2>
|
<h2 style="font-weight: bold">Http detected</h2>
|
||||||
<p style="font-weight: 600">
|
<p style="font-weight: 600">
|
||||||
Click the button on the right to switch to https. Your browser may
|
{{ isTorHttp ? 'Tor is faster over https.' : 'Your connection is
|
||||||
warn you that the page is insecure. You can safely bypass this
|
insecure.' }}
|
||||||
warning. It will go away after you download and trust your server's
|
<a
|
||||||
certificate
|
[routerLink]="['/system', 'root-ca']"
|
||||||
|
style="color: var(--ion-color-light)"
|
||||||
|
>
|
||||||
|
Download and trust your server's Root CA
|
||||||
|
</a>
|
||||||
|
, then switch to https.
|
||||||
</p>
|
</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<ion-button slot="end" color="light" (click)="launchHttps()">
|
<ion-button slot="end" color="light" (click)="launchHttps()">
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ export class ServerShowPage {
|
|||||||
readonly showDiskRepair$ = this.ClientStorageService.showDiskRepair$
|
readonly showDiskRepair$ = this.ClientStorageService.showDiskRepair$
|
||||||
|
|
||||||
readonly secure = this.config.isSecure()
|
readonly secure = this.config.isSecure()
|
||||||
|
readonly isTorHttp =
|
||||||
|
this.config.isTor() && this.document.location.protocol === 'http:'
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly alertCtrl: AlertController,
|
private readonly alertCtrl: AlertController,
|
||||||
@@ -499,11 +501,11 @@ export class ServerShowPage {
|
|||||||
disabled$: of(false),
|
disabled$: of(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'LAN',
|
title: 'Root CA',
|
||||||
description: `Download and trust your server's certificate for a secure local connection`,
|
description: `Download and trust your server's root certificate authority`,
|
||||||
icon: 'home-outline',
|
icon: 'ribbon-outline',
|
||||||
action: () =>
|
action: () =>
|
||||||
this.navCtrl.navigateForward(['lan'], { relativeTo: this.route }),
|
this.navCtrl.navigateForward(['root-ca'], { relativeTo: this.route }),
|
||||||
detail: true,
|
detail: true,
|
||||||
disabled$: of(false),
|
disabled$: of(false),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -280,6 +280,7 @@ export class MarketplaceService implements AbstractMarketplaceService {
|
|||||||
> = {},
|
> = {},
|
||||||
): Observable<MarketplacePkg[]> {
|
): Observable<MarketplacePkg[]> {
|
||||||
return this.patch.watch$('server-info', 'eos-version-compat').pipe(
|
return this.patch.watch$('server-info', 'eos-version-compat').pipe(
|
||||||
|
take(1),
|
||||||
switchMap(versionCompat => {
|
switchMap(versionCompat => {
|
||||||
const qp: RR.GetMarketplacePackagesReq = {
|
const qp: RR.GetMarketplacePackagesReq = {
|
||||||
...params,
|
...params,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
export const environment = {
|
export const environment = {
|
||||||
production: false,
|
production: false,
|
||||||
useServiceWorker: true,
|
useServiceWorker: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user