From e8a423e67b71ba9b2e1494fc844df66427d4c95b Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Sat, 20 Dec 2025 03:44:23 -0700 Subject: [PATCH] environment-based default registry --- container-runtime/update-image.sh | 1 - web/projects/shared/src/types/workspace-config.ts | 2 ++ .../marketplace/components/notification.component.ts | 5 +++-- .../portal/routes/marketplace/marketplace.component.ts | 4 +++- web/projects/ui/src/app/services/config.service.ts | 2 ++ web/projects/ui/src/app/services/marketplace.service.ts | 8 ++++---- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/container-runtime/update-image.sh b/container-runtime/update-image.sh index 0ceaf61bb..0beb90f54 100755 --- a/container-runtime/update-image.sh +++ b/container-runtime/update-image.sh @@ -13,7 +13,6 @@ mount -t tmpfs tmpfs /tmp mkdir -p /tmp/lower /tmp/upper /tmp/work /tmp/combined mount -o loop debian.${ARCH}.squashfs /tmp/lower mount -t overlay -olowerdir=/tmp/lower,upperdir=/tmp/upper,workdir=/tmp/work overlay /tmp/combined -echo mounted overlay mkdir -p /tmp/combined/usr/lib/startos/ rsync -a --copy-unsafe-links --info=progress2 dist/ /tmp/combined/usr/lib/startos/init/ diff --git a/web/projects/shared/src/types/workspace-config.ts b/web/projects/shared/src/types/workspace-config.ts index cf4cf0578..7ccd1bec4 100644 --- a/web/projects/shared/src/types/workspace-config.ts +++ b/web/projects/shared/src/types/workspace-config.ts @@ -13,6 +13,7 @@ export type WorkspaceConfig = { skipStartupAlerts: boolean } } + defaultRegistry: string } export const defaultRegistries = { @@ -24,4 +25,5 @@ export const knownRegistries = { ...defaultRegistries, start9Alpha: 'https://alpha-registry-x.start9.com/', start9Beta: 'https://beta-registry.start9.com/', + communityBeta: 'https://community-beta-registry.start9.com/', } as const diff --git a/web/projects/ui/src/app/routes/portal/routes/marketplace/components/notification.component.ts b/web/projects/ui/src/app/routes/portal/routes/marketplace/components/notification.component.ts index 8c2c8e9df..ee689598a 100644 --- a/web/projects/ui/src/app/routes/portal/routes/marketplace/components/notification.component.ts +++ b/web/projects/ui/src/app/routes/portal/routes/marketplace/components/notification.component.ts @@ -56,7 +56,8 @@ export class MarketplaceNotificationComponent { @Input() url = '' get status() { - const { start9, community, start9Beta, start9Alpha } = knownRegistries + const { start9, community, start9Beta, communityBeta, start9Alpha } = + knownRegistries if (sameUrl(this.url, start9)) { return 'success' @@ -66,7 +67,7 @@ export class MarketplaceNotificationComponent { return 'info' } - if (sameUrl(this.url, start9Beta)) { + if (sameUrl(this.url, start9Beta) || sameUrl(this.url, communityBeta)) { return 'warning' } diff --git a/web/projects/ui/src/app/routes/portal/routes/marketplace/marketplace.component.ts b/web/projects/ui/src/app/routes/portal/routes/marketplace/marketplace.component.ts index 1df60d592..43c574c0d 100644 --- a/web/projects/ui/src/app/routes/portal/routes/marketplace/marketplace.component.ts +++ b/web/projects/ui/src/app/routes/portal/routes/marketplace/marketplace.component.ts @@ -16,6 +16,7 @@ import { MarketplaceMenuComponent } from './components/menu.component' import { MarketplaceNotificationComponent } from './components/notification.component' import { MarketplaceTileComponent } from './components/tile.component' import { StorageService } from 'src/app/services/storage.service' +import { ConfigService } from 'src/app/services/config.service' @Component({ template: ` @@ -160,6 +161,7 @@ import { StorageService } from 'src/app/services/storage.service' export default class MarketplaceComponent { private readonly categoryService = inject(AbstractCategoryService) private readonly marketplaceService = inject(MarketplaceService) + private readonly configService = inject(ConfigService) private readonly router = inject(Router) private readonly storage = inject(StorageService) private readonly route = inject(ActivatedRoute) @@ -175,7 +177,7 @@ export default class MarketplaceComponent { queryParams: { registry: this.storage.get('selectedRegistry') || - defaultRegistries.start9, + this.configService.defaultRegistry, }, queryParamsHandling: 'merge', }) diff --git a/web/projects/ui/src/app/services/config.service.ts b/web/projects/ui/src/app/services/config.service.ts index ed9043b26..d28d7b157 100644 --- a/web/projects/ui/src/app/services/config.service.ts +++ b/web/projects/ui/src/app/services/config.service.ts @@ -6,6 +6,7 @@ const { gitHash, useMocks, ui: { api, mocks }, + defaultRegistry, } = require('../../../../../config.json') as WorkspaceConfig @Injectable({ @@ -26,6 +27,7 @@ export class ConfigService { api = api skipStartupAlerts = useMocks && mocks.skipStartupAlerts supportsWebSockets = !!window.WebSocket + defaultRegistry = defaultRegistry isTor(): boolean { return useMocks ? mocks.maskAs === 'tor' : this.hostname.endsWith('.onion') diff --git a/web/projects/ui/src/app/services/marketplace.service.ts b/web/projects/ui/src/app/services/marketplace.service.ts index c0d5f04ea..5f1e7ccdd 100644 --- a/web/projects/ui/src/app/services/marketplace.service.ts +++ b/web/projects/ui/src/app/services/marketplace.service.ts @@ -32,7 +32,7 @@ import { RR } from 'src/app/services/api/api.types' import { ApiService } from 'src/app/services/api/embassy-api.service' import { DataModel } from 'src/app/services/patch-db/data-model' -const { start9, community } = defaultRegistries +// const { start9, community } = defaultRegistries @Injectable({ providedIn: 'root', @@ -46,10 +46,10 @@ export class MarketplaceService { .watch$('ui', 'registries') .pipe( map(registries => [ - toStoreIdentity(start9, registries[start9]), - toStoreIdentity(community, registries[community]), + // toStoreIdentity(start9, registries[start9]), + // toStoreIdentity(community, registries[community]), ...Object.entries(registries) - .filter(([u, _]) => !sameUrl(start9, u) && !sameUrl(community, u)) + // .filter(([u, _]) => !sameUrl(start9, u) && !sameUrl(community, u)) .map(([url, name]) => toStoreIdentity(url, name)), ]), )