49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
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-multi')
|
|
|
|
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]
|
|
}) |