enabling support for wireguard and firewall (#2713)

* wip: enabling support for wireguard and firewall

* wip

* wip

* wip

* wip

* wip

* implement some things

* fix warning

* wip

* alpha.23

* misc fixes

* remove ufw since no longer required

* remove debug info

* add cli bindings

* debugging

* fixes

* individualized acme and privacy settings for domains and bindings

* sdk version bump

* migration

* misc fixes

* refactor Host::update

* debug info

* refactor webserver

* misc fixes

* misc fixes

* refactor port forwarding

* recheck interfaces every 5 min if no dbus event

* misc fixes and cleanup

* misc fixes
This commit is contained in:
Aiden McClelland
2025-01-09 16:34:34 -07:00
committed by GitHub
parent 45ca9405d3
commit 29e8210782
144 changed files with 4878 additions and 2398 deletions

View File

@@ -102,7 +102,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
| "clearServiceInterfaces"
| "bind"
| "getHostInfo"
| "getPrimaryUrl"
type MainUsedEffects = "setMainStatus" | "setHealth"
type CallbackEffects = "constRetry" | "clearCallbacks"
type AlreadyExposed = "getSslCertificate" | "getSystemSmtp"
@@ -379,7 +378,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
id: 'ui',
description: 'The primary web app for this service.',
type: 'ui',
hasPrimary: false,
masked: false,
schemeOverride: null,
username: null,
@@ -397,8 +395,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
id: string
/** The human readable description. */
description: string
/** No effect until StartOS v0.4.0. If true, forces the user to select one URL (i.e. .onion, .local, or IP address) as the primary URL. This is needed by some services to function properly. */
hasPrimary: boolean
/** Affects how the interface appears to the user. One of: 'ui', 'api', 'p2p'. If 'ui', the user will see a "Launch UI" button */
type: ServiceInterfaceType
/** (optional) prepends the provided username to all URLs. */
@@ -562,7 +558,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
id: 'primary-ui',
description: 'The primary web app for this service.',
type: 'ui',
hasPrimary: false,
masked: false,
schemeOverride: null,
username: null,
@@ -575,7 +570,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
id: 'admin-ui',
description: 'The admin web app for this service.',
type: 'ui',
hasPrimary: false,
masked: false,
schemeOverride: null,
username: null,
@@ -596,7 +590,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
id: 'api',
description: 'The advanced API for this service.',
type: 'api',
hasPrimary: false,
masked: false,
schemeOverride: null,
username: null,
@@ -688,6 +681,18 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
return Daemons.of<Manifest>({ effects, started, healthReceipts })
},
},
SubContainer: {
of(
effects: Effects,
image: {
id: T.ImageId & keyof Manifest["images"]
sharedRun?: boolean
},
name: string,
) {
return SubContainer.of(effects, image, name)
},
},
List: {
/**
* @description Create a list of text inputs.
@@ -1269,7 +1274,6 @@ export class StartSdk<Manifest extends T.SDKManifest, Store> {
* @example default: 'radio1'
*/
default: keyof Variants & string
required: boolean
/**
* @description A mapping of unique radio options to their human readable display format.
* @example