import { i18n } from './i18n' import { sdk } from './sdk' import { uiPort } from './utils' import { store } from './file-models/store.json' export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => { const uiMulti = sdk.MultiHost.of(effects, 'ui') const storeData = await store.read().const(effects) const adminPassword = storeData?.adminPassword const uiMultiOrigin = await uiMulti.bindPort(uiPort, { protocol: 'http', addSsl: { preferredExternalPort: 443, addXForwardedHeaders: true, alpn: null, auth: adminPassword ? { type: 'basic', credentials: [ { username: 'admin', password: adminPassword, }, ], realm: 'Munin Bitcoin', } : null, }, preferredExternalPort: uiPort, }) const ui = sdk.createInterface(effects, { name: i18n('Web UI'), id: 'ui', description: i18n('The web interface of Munin Bitcoin'), type: 'ui', masked: false, schemeOverride: null, username: null, path: '', query: {}, }) const uiReceipt = await uiMultiOrigin.export([ui]) return [uiReceipt] })