repo/installer/src/types.ts
Ezequiel C. 187379de4e multistreaming: scenes/composition, installer build support, service updates
- multistreaming (new): RTMP ingest + multi-platform fan-out with pluggable providers (Twitch/YouTube/Kick/custom), zero-knowledge key vaults, Authelia OIDC auth, shared rooms with editor/streamer roles, single-use invites, per-account streaming grants, and scenes & composition (grid/PiP layouts, text/image overlays, per-output audio routing).
- installer: support Dockerfile build in metadata (not just image) and RSA key generation for the Authelia OIDC JWKS.
- authelia: add OIDC provider with portainer + multistreaming clients (public + PKCE).
- services: remove allprox; add nginx-proxy-manager and portainer; update lldap; regenerate catalog.
2026-09-02 21:18:25 +02:00

67 lines
1.3 KiB
TypeScript

export interface EnvSpec {
name: string;
label?: string;
description?: string;
default?: string;
required?: boolean;
secret?: boolean;
options?: string[];
generate?: boolean;
}
/** An RSA private key the installer generates into a file on first install (used for Authelia OIDC signing). */
export interface RsaKeySpec {
name: string;
path: string;
bits?: number;
}
export interface ServiceMetadata {
id: string;
name: string;
description: string;
version: string;
category?: string;
tags?: string[];
icon?: string;
author?: string;
license?: string;
homepage?: string;
documentation?: string;
compose: Record<string, unknown>;
volumes?: Record<string, unknown>;
networks?: Record<string, unknown>;
env?: EnvSpec[];
rsaKeys?: RsaKeySpec[];
dependsOn?: string[];
notes?: string;
}
export interface InstalledService {
id: string;
name: string;
version: string;
installedAt: string;
updatedAt: string;
}
export interface State {
version: number;
services: Record<string, InstalledService>;
}
export interface CatalogEntry {
id: string;
version: string;
path: string;
}
export interface Catalog {
generatedAt?: string;
services: CatalogEntry[];
}
export interface ActionResult {
ok: boolean;
message: string;
}